27/07/2024

Comment copier les groupes Active Directory d’un utilisateur à un autre utilisateur ?

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.

Copier les groupes d'un utilisateur AD vers un autre utilisateur

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.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.