Monday, October 6, 2014

FR (French) - Powershell 4.0 - Active Directory management - Rename-ADObject

English - note to reader: as I'm bilingual, I wanted to write a series of blog posts about Active Directory management with Powershell (4.0) - but in French. I intend to continue blogging in English as well, perhaps with a hybrid migration to Exchange Online - Office 365 (after the staged migration that you can find in my previous posts).

In the title of the blog post, I'll add the prefix "FR (French)" to distinguish them from my posts in English.

Feel free to translate the page with Google Translate or make comments if you'd like me to clarify something (in French or in English).


***

Si nous voulons renommer un object Active Directory, il faut, comme dans l'interface graphique, le faire en plusieurs endroits. Le cas d'un utilisateur est le plus complexe.



Renommer un utilisateur

Pour cet exemple, j'ai un utilisateur nommé Salma Green. Nous allons la renommer "Salma Brown" (le prénom reste donc le même).

Voici notre point de départ :

PS C:\> Get-ADUser Salma.Green

DistinguishedName : CN=Salma.Green,OU=ExchangeUsers,DC=mynet,DC=lan
Enabled           : True
GivenName         : Salma
Name              : Salma.Green
ObjectClass       : user
ObjectGUID        : 9fc147de-7c49-4b5d-b1c4-b0b590e05acb
SamAccountName    : Salma.Green
SID               : S-1-5-21-326661974-301178600-1381666802-1444
Surname           : Green
UserPrincipalName : Salma.Green@mynet.lan


Essayons donc de la renommer avec cet applet:

PS C:\> Rename-ADObject "cn=Salma.Green,ou=ExchangeUsers,dc=mynet,dc=lan" -NewName Salma.Brown

Et regardons le résultat :

PS C:\> Get-ADUser Salma.Green

DistinguishedName : CN=Salma.Brown,OU=ExchangeUsers,DC=mynet,DC=lan
Enabled           : True
GivenName         : Salma
Name              : Salma.Brown
ObjectClass       : user
ObjectGUID        : 9fc147de-7c49-4b5d-b1c4-b0b590e05acb
SamAccountName    : Salma.Green
SID               : S-1-5-21-326661974-301178600-1381666802-1444
Surname           : Green
UserPrincipalName : Salma.Green@mynet.lan

La commande change le nom distingué (DistinguishedName - DN) et le nom (Salma.Brown) mais c'est tout.


Trois noms restent les mêmes :

SamAccountName    : Salma.Green
Surname           : Green
UserPrincipalName : Salma.Green@mynet.lan


En outre, j'observe que l'applet Get-ADUser retourne toujours des données pour "Salma.Green" et donc semble dépendre non pas de "Name" mais plutôt du SamAccountName. C'est pourquoi je peux taper Get-ADUser Salma.Green et obtenir le même résultat malgré le changement de (certains) noms.

Comment changer les autres paramètres (les autres noms) ?

Essayons maintenant ceci :

PS C:\> Get-ADUser Salma.Green | Set-ADUser -Surname Brown -sAMAccountName Salma.Brown -UserPrincipalName Salma.Brown@mynet.lan

Désormais, la cmdlet Get-ADUser Salma.Green ne retourne aucun résultat:

PS C:\> Get-ADUser Salma.Green
Get-ADUser : Cannot find an object with identity: 'Salma.Green' under: 'DC=mynet,DC=lan'.

Mais si nous faisons une requête pour Salma.Brown, nous avons un résultat et nous pouvons constater que tous les paramètres ont été renommés :

DistinguishedName : CN=Salma.Brown,OU=ExchangeUsers,DC=mynet,DC=lan
Enabled           : True
GivenName         : Salma
Name              : Salma.Brown
ObjectClass       : user
ObjectGUID        : 9fc147de-7c49-4b5d-b1c4-b0b590e05acb
SamAccountName    : Salma.Brown
SID               : S-1-5-21-326661974-301178600-1381666802-1444
Surname           : Brown
UserPrincipalName : Salma.Brown@mynet.lan

Nous remarquons aussi (voir les exemples ci-dessus) que le SID et l'objectGUID ne changent pas.

Note: il pourrait y avoir encore d'autres paramètres à renommer, si, par exemple, nous utilisions Exchange pour la messagerie et si nous avions donc une adresse à changer.


Renommer un groupe

C'est plus simple que pour l'utilisateur mais il faut, pour le groupe aussi, modifier plus d'un paramètre.

PS C:\> Get-ADGroup "Human Resources"

DistinguishedName : CN=Human Resources,OU=Berlin,DC=mynet,DC=lan
GroupCategory     : Security
GroupScope        : Global
Name              : Human Resources
ObjectClass       : group
ObjectGUID        : ceedc833-14fb-4e81-a1a8-9dd7351ec30e
SamAccountName    : Human Resources
SID               : S-1-5-21-326661974-301178600-1381666802-2653


Nous utilisons le même applet que pour l'utilisateur, sauf que nous ciblons un objet de type "groupe" :

PS C:\> Rename-ADObject "CN=Human Resources,OU=Berlin,DC=mynet,DC=lan" -newname HR


Comme pour l'utilisateur, l'applet ci-dessus ne change pas tous les paramètres :

PS C:\> Get-ADGroup "Human Resources"

DistinguishedName : CN=HR,OU=Berlin,DC=mynet,DC=lan
GroupCategory     : Security
GroupScope        : Global
Name              : HR
ObjectClass       : group
ObjectGUID        : ceedc833-14fb-4e81-a1a8-9dd7351ec30e
SamAccountName    : Human Resources
SID               : S-1-5-21-326661974-301178600-1381666802-2653

Encore une fois, comme pour l'utilisateur, Rename-ADObject change le paramètre "name" (nom) mais non pas le paramètre "SamAccountName"

Nous devons exécuter cet applet pour achever le changement de nom :

PS C:\> Set-ADGroup "CN=HR,OU=Berlin,DC=mynet,DC=lan" -SamAccountNam "HR"

Ce qui nous donne ceci :

PS C:\> Get-ADGroup HR

DistinguishedName : CN=HR,OU=Berlin,DC=mynet,DC=lan
GroupCategory     : Security
GroupScope        : Global
Name              : HR
ObjectClass       : group
ObjectGUID        : ceedc833-14fb-4e81-a1a8-9dd7351ec30e
SamAccountName    : HR
SID               : S-1-5-21-326661974-301178600-1381666802-2653

J'ai remarqué qu'aucun des applets suivants n'a pu renommer le paramètre "SamAccountName" :

PS C:\> Set-ADObject "HR" -sAMAccountName HR
PS C:\> Set-ADObject "HR" -SamAccountName "HR"
PS C:\> Set-ADObject "HR" @{SamAccountName="HR"}
PS C:\> Set-ADObject "CN=HR,OU=Berlin,DC=mynet,DC=lan" -SamAccountName "HR"



Renommer un ordinateur

C'est comparable aux autres objets :

PS C:\> Get-ADComputer PC3 | Rename-ADObject -newname PC4

PS C:\> Get-ADComputer PC3

DistinguishedName : CN=PC4,OU=Clients,DC=mynet,DC=lan
DNSHostName       :
Enabled           : True
Name              : PC4
ObjectClass       : computer
ObjectGUID        : 816a8176-c433-401c-a812-ad2d7a0ed3c6
SamAccountName    : PC3$
SID               : S-1-5-21-326661974-301178600-1381666802-2656
UserPrincipalName :

Comme pour les groupes, l'applet ne modifie pas le paramètre "SamAccountName", ce que nous pouvons corriger ainsi :

PS C:\> Get-ADComputer PC3 | Set-ADComputer -SamAccountName PC4$
PS C:\>
PS C:\> Get-ADComputer PC4

DistinguishedName : CN=PC4,OU=Clients,DC=mynet,DC=lan
DNSHostName       :
Enabled           : True
Name              : PC4
ObjectClass       : computer
ObjectGUID        : 816a8176-c433-401c-a812-ad2d7a0ed3c6
SamAccountName    : PC4$
SID               : S-1-5-21-326661974-301178600-1381666802-2656
UserPrincipalName :


Le paramètre "SamAccountName" est suivi toujours par un "$" (et sans espace). Quand nous modifions ce paramètre nous pouvons l'ajouter ou bien l'omettre. Dans ce cas-ci,  le $ est ajouté automatiquement:

PS C:\> Get-ADComputer PC4 | Set-ADComputer -SamAccountName PC8

PS C:\> Get-ADComputer PC8

DistinguishedName : CN=PC8,OU=Clients,DC=mynet,DC=lan
DNSHostName       :
Enabled           : True
Name              : PC8
ObjectClass       : computer
ObjectGUID        : 816a8176-c433-401c-a812-ad2d7a0ed3c6
SamAccountName    : PC8$
SID               : S-1-5-21-326661974-301178600-1381666802-2656
UserPrincipalName :




Renommer une unité d'organisation (OU)

C'est sans doute le cas le plus simple

PS C:\> Get-ADOrganizationalUnit "OU=Administration,DC=mynet,DC=lan"

[...]
DistinguishedName        : OU=Administration,DC=mynet,DC=lan
LinkedGroupPolicyObjects : {}
ManagedBy                :
Name                     : Administration
ObjectClass              : organizationalUnit
ObjectGUID               : 8044c557-73e3-4b56-aa49-17e8812b56d7
[...]

PS C:\> Get-ADOrganizationalUnit "OU=Administration,DC=mynet,DC=lan" | Rename-ADObject -newname Management

PS C:\> Get-ADOrganizationalUnit "OU=Management,DC=mynet,DC=lan"

[...]
DistinguishedName        : OU=Management,DC=mynet,DC=lan
LinkedGroupPolicyObjects : {}
ManagedBy                :
Name                     : Management
ObjectClass              : organizationalUnit
ObjectGUID               : 8044c557-73e3-4b56-aa49-17e8812b56d7
[...]


Ainsi, nous pouvons renommer l'OU en une seule opération.

No comments:

Post a Comment