Comment copier les groupes Active Directory d’un utilisateur à un autre utilisateur ?
Sommaire
I. Présentation
Vous venez de créer un nouvel utilisateur dans l'Active Directory et vous souhaitez qu'il appartienne au même groupe qu'un autre utilisateur existant de votre annuaire ? Vous auriez pu copier le compte en question pour l'utiliser comme source, mais sachez qu'avec PowerShell, nous pouvoir copier facilement les groupes Active Directory auxquels appartient un utilisateur, vers un autre utilisateur. Ceci sera utile sur un compte nouvellement créé ou sur un compte existant, selon vos besoins.
II. Copier l'appartenance aux groupes entre deux utilisateurs
Nous souhaitons que l'utilisateur "Lou Ange" soit membre des mêmes groupes que l'utilisateur "Guy Mauve". Actuellement, nous pouvons que ce n'est pas le cas. Plutôt que d'ajouter les groupes un par un, ce qui peut être très long s'il y a de nombreux groupes, nous allons solliciter l'aide de PowerShell.
Tout d'abord, nous allons commencer par récupérer la liste de tous les groupes dont est membre l'utilisateur "Guy Mauve" grâce à la lecture de la propriété "memberOf" accessible via le cmdlet "Get-ADUser".
Get-ADUser -Identity "guy.mauve" -Properties memberOf | Select-Object -ExpandProperty memberOf
Nous obtenons le résultat ci-dessous. La commande retourne le "DistinguishedName" de chaque groupe.
Il ne reste plus qu'à coupler l'utilisation de cette commande avec le cmdlet "Add-ADGroupMember" dont l'objectif est d'ajouter un utilisateur à un groupe Active Directory, pour que la magie opère.
Le compte source est à préciser dans la commande "Get-ADUser", tandis que le compte de destination est à préciser, à la fin, en tant que valeur du paramètre "-Members" de la commande "Add-ADGroupMember".
Get-ADUser -Identity "guy.mauve" -Properties memberOf | Select-Object -ExpandProperty memberOf | Add-ADGroupMember -Members "lou.ange"
Désormais, les deux comptes sont membres des mêmes groupes :
Sachez qu'il est possible de préciser plusieurs noms d'utilisateurs selon vos besoins.
Get-ADUser -Identity "guy.mauve" -Properties memberOf | Select-Object -ExpandProperty memberOf | Add-ADGroupMember -Members "utilisateur1","utilisateur2","utilisateur3"
III. Supprimer l'appartenance aux groupes d'un utilisateur
La méthode évoquée précédemment va ajouter l'utilisateur ciblé à de nouveaux groupes, mais s'il est déjà présent dans d'autres groupes, ce sera toujours le cas après l'exécution de la commande. Autrement dit, nous n'écrasons pas la liste des groupes dont est membre l'utilisateur, mais elle est complétée.
Dans certains cas, il peut s'avérer nécessaire de nettoyer le compte utilisateur en amont afin qu'il n'appartienne plus à aucun groupe, à part le groupe "Utilisateurs du domaine". Ainsi, avant d'exécuter la commande précédente, nous devrions exécuter celle-ci :
$Utilisateur = "lou.ange"
Get-ADPrincipalGroupMembership -Identity $Utilisateur | Where{ $_.Name -ne "Utilisateurs du domaine" } | Foreach { Remove-ADGroupMember $_ -Members $Utilisateur -Confirm:$false }
Cette commande récupère la liste des groupes auxquels appartient l'utilisateur indiqué dans "$Utilisateur". Pour chaque groupe, l'utilisateur est retiré de la liste des membres. Le filtre basé sur "Where-Object" sert à exclure le groupe "Utilisateurs du domaine" (à adapter si votre annuaire Active Directory a été créé dans une autre langue que le français) parce que l'utilisateur doit être membre d'au moins un groupe.
IV. Conclusion
Encore une fois, ces quelques commandes PowerShell pourront nous faire gagner un temps précieux, en plus de nous éviter de nous tromper. Désormais, vous êtes en mesure d'effectuer ce que l'on pourrait appeler un "copier-coller" des groupes d'appartenance d'un utilisateurs vers un ou plusieurs autres utilisateurs.