Aussi surprenant que cela puisse paraître, il n’est pas possible de dupliquer nativement dans ActiveDirectory un groupe via l’interface graphique. Bien qu’il existe des outils comme Quest permettant de faire ce genre de tâches, il est possible de réaliser une duplication de groupe avec Powershell sans trop se prendre la tête.
Ce script va donc demander à l’utilisateur le nom du groupe d’origine puis le nom du nouveau groupe. Il va copier les informations de base (type de groupe, sécurité, nom, description et membres) pour les réinjecter à l’identique dans le nouveau groupe qui sera créé au même endroit.
Write-Host "ActiveDirectory Group Duplication Script"
Write-Host "========================================"
Write-Host "This script will make a copy of an AD group."
$origgrpname = Read-Host "Input the original group you want to duplicate"
$newgrpname = Read-Host "Input the new group's name"
Write-Host "Working... Depending on the size of your domain or the group, it might take some time..."
$origgrpdtl = Get-ADGroup $origgrpname -Properties Description, DisplayName
$origgrpmbr = Get-ADGroupMember $origgrpname
$path = $origgrpdtl.DistinguishedName.SubString(4+$origgrpname.length,$origgrpdtl.DistinguishedName.Length-4-$origgrpname.Length)
New-ADGroup -Name $newgrpname -GroupScope $origgrpdtl.GroupScope -Description $origgrpdtl.Description -DisplayName $origgrpdtl.DisplayName -GroupCategory $origgrpdtl.GroupCategory -Path $path
foreach($member in $origgrpmbr) {
Add-ADGroupMember $newgrpname $member.samAccountName
}
Write-Host "Duplication process over."
echo "Group $origgrpname has been duplicated to $newgrpname. The new group is located in $path along the original one."
Write-Host "Bye"
J’ai réalisé ce script dans le cadre de création de nouveaux groupes de partages pour un nouveau serveur, il me fallait donc un moyen rapide de recréer plusieurs groupes sans avoir à ajouter à la main les dizaines d’utilisateurs présents. Naturellement, on prendra soin d’exécuter ce script avec un compte ayant suffisamment de privilèges et en faisant attention au nom des groupes puisque je n’ai inclus aucun contrôle de robustesse.