Comment ajouter et supprimer des groupes AD avec PowerShell

Microsoft Active Directory fait office de point central d’administration, d’autorisation et d’authentification. Dans AD, l’accès aux ressources réseau est accordé aux « principaux de sécurité » (des entités comme les comptes d’utilisateur et les comptes d’ordinateur). Ces autorisations peuvent être modifiées au fil du temps. Pour simplifier la gestion des accès et améliorer la sécurité, les moyennes et grandes entreprises utilisent souvent les groupes de sécurité Active Directory, qui peuvent contenir des comptes d’utilisateur, des comptes d’ordinateur et d’autres groupes. Elles utilisent aussi fréquemment des groupes de distribution pour gérer les listes de diffusion par e-mail. Les groupes de sécurité et de distribution sont tous deux dotés d’identificateurs de sécurité uniques (SID) et d’identificateurs globaux uniques (GUID).

Le composant logiciel enfichable MMC Utilisateurs et ordinateurs Active Directory convient parfaitement pour gérer ces deux types de groupes, mais PowerShell est beaucoup plus efficace pour les gérer en masse.

Dans le présent article, nous allons expliquer comment gérer les groupes AD à l’aide des scripts Windows PowerShell. Plus précisément, nous allons aborder les tâches suivantes :

Si vous ne connaissez pas encore bien les groupes AD et la gestion des groupes, veuillez lire le guide Active Directory Group Management Best Practices (Bonnes pratiques de gestion des groupes Active Directory) avant de poursuivre.

Et rappelez-vous que pour utiliser ces scripts PowerShell, vous devez importer le module Active Directory pour Microsoft Windows PowerShell, qui permet d’interagir avec AD. Ce module a été intégré à Windows Server 2008 R2, il est activé par défaut dans Windows Server 2012 et les versions ultérieures. Pour obtenir la liste complète des cmdlets du module AD, exécutez la commande suivante :

Get-Command -Module ActiveDirectory

La liste complète comprend 147 cmdlets, mais seuls les 11 suivants concernent les groupes Active Directory :

  • Add-ADGroupMember
  • Add-ADPrincipalGroupMembership
  • Get-ADAccountAuthorizationGroup
  • Get-ADGroup
  • Get-ADGroupMember
  • Get-ADPrincipalGroupMembership
  • New-ADGroup
  • Remove-ADGroup
  • Remove-ADGroupMember
  • Remove-ADPrincipalGroupMembership
  • Set-ADGroup

Créer un groupe Active Directory avec PowerShell

Pour créer un groupe AD, utilisez le cmdlet New-ADGroup. Sa syntaxe complète peut être obtenue en exécutant la commande suivante :

Get-Command New-ADGroup –Syntax

Le moyen le plus simple de créer un groupe est d’exécuter ce court script :

New-ADGroup "Nom du groupe"

Le système vous demandera de spécifier le paramètre « GroupScope », puis créera un nouveau groupe. Toutefois, ce groupe sera assorti de valeurs par défaut, telles que :

  • Il sera créé dans le conteneur LDAP par défaut appelé « Utilisateurs ».
  • Ce groupe sera du type « Sécurité ».
  • Les champs Membres, Membre de, Description, E-mail et Notes seront tous vides.

Imaginons que nous voulions créer un groupe de sécurité appelé « Qualité » sur notre contrôleur de domaine AD. Utilisons les paramètres suivants : il devra se trouver dans l’unité d’organisation « Production » (-Path), il devra être un groupe de sécurité (-GroupCategory) et il devra être global (-GroupScope).

New-ADGroup "Qualité" -Path "OU=Production,DC=enterprise,dc=com" -GroupCategory Security -GroupScope Global -PassThru –Verbose

Si vous voulez créer un groupe de distribution universel, changez simplement le paramètre -GroupCategory en « Distribution » et le paramètre -GroupScope en « Universel ». Vous pouvez également modifier le chemin LDAP en modifiant le paramètre -Path.

Supprimer un groupe Active Directory avec PowerShell

Pour supprimer un groupe AD, utilisez le cmdlet Remove-ADGroup. Pour cela, le script le plus simple ressemblera à ceci :

Remove-ADGroup -Identity Quality

Vous serez invité à confirmer la suppression du groupe.

Ajouter des utilisateurs et des ordinateurs à un groupe avec PowerShell

Vous pouvez ajouter des utilisateurs à un groupe AD en utilisant le cmdlet Add-AdGroupMember. Par exemple, si vous souhaitez ajouter deux utilisateurs, B.Jackson et E.Franklin, au groupe « Qualité », voici à quoi ressemblera le script :

Add-AdGroupMember -Identity Quality -Members B.Jackson, E.Franklin

Après avoir ajouté des utilisateurs à un groupe de sécurité, vous pouvez exécuter le script ci-dessous pour vérifier qu’ils sont bien répertoriés comme membres :

Get-ADGroupMember -Identity Quality

Si vous devez ajouter des utilisateurs à un autre groupe de sécurité ou de distribution, tel que « Admins du domaine », indiquez « Admins du domaine » comme valeur pour le paramètre –Identity. Si vous souhaitez qu’un groupe soit membre d’un autre groupe, spécifiez un nom de groupe comme valeur pour le paramètre –Members. Le même principe s’applique aux comptes d’ordinateur, mais vous devrez ajouter un signe dollar ($) à la fin du nom du compte d’ordinateur. Par exemple, pour ajouter l’ordinateur « WKS043 » à un groupe, spécifiez « WKS043$ » comme valeur pour le paramètre –Member :

Add-AdGroupMember -Identity Quality -Members WKS043$

Ajouter un utilisateur à plusieurs groupes

Pour ajouter un utilisateur à plusieurs groupes à la fois, exécutez le script suivant :

"Managers","Qualité" | Add-ADGroupMember -Members `
    (Read-Host -Prompt "Saisir un nom d’utilisateur")

Vous serez invité à saisir le nom d’utilisateur.

Ajouter des utilisateurs à un groupe à partir d’un fichier CSV

Si vous souhaitez ajouter un grand nombre d’utilisateurs à un groupe, vous pouvez les spécifier dans un fichier CSV et ensuite importer ce fichier. Remarquez que la liste des noms d’utilisateur dans le fichier CSV doit contenir les SamAccountNames dans la colonne « users » (utilisateurs), comme indiqué ci-dessous :


Pour ajouter des utilisateurs à un groupe à partir d’un fichier CSV, exécutez le script PowerShell suivant :

Import-CSV C:\scripts\users.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity "Quality" -members $_.users}

Copier des utilisateurs d’un groupe à un autre

Pour copier tous les membres d’un groupe dans un autre groupe, exécutez le script suivant :

Get-ADGroupMember “Quality” | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity “QualityControl” -Members $_}

Supprimer des utilisateurs ou des ordinateurs d’un groupe

Pour supprimer un utilisateur d’un groupe, utilisez le cmdlet Remove-ADGroupMember :

Remove-ADGroupMember -Identity Quality -Members J.Robinson

Pour supprimer un compte d’ordinateur d’un groupe, spécifiez le nom de l’ordinateur terminé par le signe dollar ($) pour la valeur du paramètre -Members.

Supprimer plusieurs comptes d’utilisateur d’un groupe

Une méthode facile pour supprimer plusieurs utilisateurs d’un groupe AD est de créer un fichier CSV contenant la liste des noms d’utilisateur, puis de supprimer ces utilisateurs de l’objet du groupe à l’aide de ce script :

Import-CSV C:\scripts\users.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity "Quality" -members $_.users}

Supprimer un utilisateur de tous les groupes

Pour supprimer un utilisateur de tous les groupes, exécutez le script suivant :

Get-ADUser -Identity E.Franklin -Properties MemberOf | ForEach-Object {
  $_.MemberOf | Remove-ADGroupMember -Members $_.DistinguishedName -Confirm:$false
}

Remarquez que l’utilisateur perdra toute appartenance à un groupe, à l’exception de « Utilisateurs du domaine », qui peut être supprimée manuellement si nécessaire.

Rapports sur les groupes Active Directory

Maintenant que nous savons comment effectuer de nombreuses tâches courantes de gestion des groupes Active Directory à l’aide de PowerShell, voyons comment produire un rapport sur les groupes présents dans AD.

Pour établir la liste de tous les groupes présents dans AD, utilisez le script ci-dessous :

Get-ADGroup -filter * -properties GroupCategory | ft name,groupcategory

Vous souhaiterez aussi, bien sûr, consulter la liste des membres du groupe AD et les modifications apportées à l’appartenance aux groupes AD. Les liens suivants vous guideront vers des instructions permettant d’effectuer ces tâches plus complexes :

Conclusion

À présent que vous avez appris à gérer les groupes et l’appartenance aux groupes dans Active Directory à l’aide des scripts PowerShell, essayez d’effectuer vous-même une partie des tâches de gestion des groupes. Mais soyez prudent et n’oubliez pas d’activer la fonction Corbeille Active Directory pour pouvoir facilement annuler vos modifications en cas de problème. Gardez à l’esprit que le composant logiciel enfichable MMC Utilisateurs et ordinateurs Active Directory convient bien pour la gestion des groupes et des membres de groupes, mais que PowerShell est bien supérieur pour la gestion des groupes en masse.