15/11/2024

Modifier et supprimer un groupe AD avec PowerShell

I. Présentation

Pour terminer ce module sur la gestion des groupes Active Directory avec PowerShell, nous allons apprendre à modifier et supprimer un groupe AD. Nous avons vu comment gérer les membres d’un groupe, mais nous n’avons pas vu comment renommer un groupe ou lui ajouter une description.

II. Modifier un groupe AD avec PowerShell

La modification passe par l’utilisation du cmdlet « Set-ADGroup », ce qui va notamment permettre de modifier la description d’un groupe. Pour cela, le paramètre -Identifiy doit être utilisé pour spécifier le groupe à cibler et -Description pour indiquer la description.

Voici un exemple :

Set-ADGroup -Identity "CN=Direction,OU=Personnel,DC=IT-CONNECT,DC=LOCAL" -Description "Groupe avec les membres de la direction"

Ci-dessus, j’ai spécifié le groupe à modifier en indiquant son DistinguishedName (DN), mais on peut aussi directement spécifier son nom, comme ceci :

Set-ADGroup -Identity "Direction" -Description "Groupe avec les membres de la direction"

Nous pourrions aussi modifier la description de tous les groupes qui contiennent le terme « VPN » dans le nom, par exemple. Ce qui donnerait :

Get-ADGroup -Filter 'Name -like "*VPN*"' | Set-ADGroup -Description "Groupe VPN"

Comment changer le type de groupe et son étendue ?

Il est également possible de changer le type de groupe, par exemple pour transformer un groupe de sécurité en groupe de distribution. Le paramètre -GroupCategory sert à réaliser cette opération, il accepte deux valeurs : Distribution / Security.

Pour que le groupe « Mailing » devienne un groupe de distribution, voici la commande :

Set-ADGroup -Identity "Mailing" -GroupCategory Distribution

Ensuite, pour modifier l’étendue du groupe, il faut s’appuyer sur le paramètre -GroupScope. Dans la limite de ce qui est possible : un groupe d’étendue « Globale » ne peut pas être modifié en groupe d’étendue « Domaine local » (il faut d’abord le mettre en étendue universelle, ce qui va nécessiter d’utiliser deux commandes..

Par exemple, pour modifier un groupe avec l’étendue « Globale » sur l’étendue « Universelle », voici la commande :

Set-ADGroup -Identity "Mailing" -GroupScope Universal

Ce paramètre accepte trois valeurs : DomainLocal / Global / Universal

III. Renommer un groupe AD avec PowerShell

Pour renommer un groupe Active Directory avec PowerShell, l’opération doit être réalisée en deux étapes. En effet, nous allons devoir modifier le nom d’affichage du groupe, son SamAccountName mais aussi l’objet AD en lui-même.

Commençons par définir deux variables, la première qui contient le nom du groupe à renommer, et la deuxième qui contient le nouveau nom :

$Groupe = "CN=Direction,OU=Personnel,DC=IT-CONNECT,DC=LOCAL"
$GroupeNewName = "Direction-2"

Nous allons devoir coupler l’utilisation de Set-ADGroup à Get-ADGroup pour récupérer l’objet à modifier. Voici la commande pour modifier le nom d’affichage et le SamAccountName :

Get-ADGroup -Identity $Groupe | Set-ADGroup -DisplayName $GroupeNewName -SamAccountName $GroupeNewName

Pour que ce soit cohérent, il est important de renommer également l’objet AD, ce qui nécessite d’utiliser une deuxième commande, cette fois-ci via le cmdlet Rename-ADObject.

Get-ADGroup -Identity $Groupe | Rename-ADObject -NewName $GroupeNewName

Voilà, grâce aux deux commandes ci-dessus, le groupe est désormais renommé ! En résumé :

$Groupe = "CN=Direction,OU=Personnel,DC=IT-CONNECT,DC=LOCAL"
$GroupeNewName = "Direction-2"

Get-ADGroup -Identity $Groupe | `
    Set-ADGroup -DisplayName $GroupeNewName -SamAccountName $GroupeNewName

Get-ADGroup -Identity $Groupe | Rename-ADObject -NewName $GroupeNewName

Les attributs suivants sont modifiés : cn, distinguishedName, displayName, name, sAMAccountName.

IV. Supprimer un groupe AD

Avant de se quitter, sachez que la suppression d’un groupe s’appuie sur le cmdlet « Remove-ADGroup ». Il suffit de préciser le nom du groupe et de retirer la demande de confirmation qui s’affiche par défaut pour éviter les suppressions accidentelles.

Ce qui donne, pour supprimer le groupe « Direction » :

Remove-ADGroup -Identity "Direction" -Confirm:$false

Commande à manier avec précaution ! Pour faire un test, vous pouvez ajouter le paramètre -WhatIf à la fin de la commande.

Qu’est-ce que le paramètre -WhatIf ? Si une commande est exécutée avec le paramètre -WhatIf, elle ne fera aucune modification sur votre système. Ce qui est intéressant, c'est que grâce à -WhatIf, des informations vont s'afficher dans la console pour indiquer qu'elles sont les actions réalisées pour chaque commande, ainsi que l'objet affecté. Un bon moyen d'anticiper un éventuel bug en complément des tests que l'on peut réaliser progressivement pendant la construction du script.

Si l’on reprend l’exemple précédent :

Remove-ADGroup -Identity "Direction" -Confirm:$false -WhatIf

Dans la console, on obtiendra la sortie suivante :

WhatIf : Opération « Remove » en cours sur la cible « CN=Direction,OU=Groupes,DC=it-connect,DC=local ».

Puisque l’on est rassuré, on peut exécuter de nouveau la commande sans -WhatIf pour procéder à la suppression.

Ce chapitre est terminé, bien souvent lorsque l’on souhaite modifier un groupe de sécurité ou de distribution, c’est pour gérer sa description ou le modifier. Enfin, l’action la plus courante reste la gestion des membres. La fin de ce chapitre sonne également la fin de ce module dédié à la gestion des groupes Active Directory via PowerShell.

On se retrouve pour le prochain module dédié à la collecte d’informations sur l’annuaire Active Directory en lui-même.

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