Cloner un groupe Active Directory
Le script suivant permet de cloner un groupe Active Directory vers un nouveau groupe.
Il peut aussi ajouter le contenu d'un groupe à un groupe existant.
| # Importer le module Active Directory
Import-Module ActiveDirectory
# Demander le nom du groupe source à l'utilisateur
$sourceGroupName = Read-Host "Entrez le nom du groupe source Active Directory"
# Vérifier si le groupe source existe
if (-not (Get-ADGroup -Filter {Name -eq $sourceGroupName})) {
Write-Host "Le groupe source '$sourceGroupName' n'existe pas."
exit
}
# Demander le nom du groupe cible à l'utilisateur
$targetGroupName = Read-Host "Entrez le nom du groupe cible"
# Vérifier si le groupe cible existe
if (-not (Get-ADGroup -Filter {Name -eq $targetGroupName})) {
Write-Host "Le groupe cible '$targetGroupName' n'existe pas."
# Demander à l'utilisateur s'il souhaite créer le groupe cible
$createGroup = Read-Host "Voulez-vous créer le groupe cible '$targetGroupName' ? (O/N)"
if ($createGroup -eq "O" -or $createGroup -eq "o") {
# Demander à l'utilisateur de confirmer ou de saisir une autre OU
$ouPath = "OU=Utilisateurs,DC=domain,DC=com0"
$confirmOU = Read-Host "L'OU par défaut est '$ouPath'. Voulez-vous utiliser cette OU ? (O/N)"
if ($confirmOU -eq "N" -or $confirmOU -eq "n") {
$ouPath = Read-Host "Entrez le chemin complet de l'OU à utiliser (ex: 'OU=Utilisateurs,DC=in,DC=ama,DC=bzh')"
}
# Créer le groupe cible
New-ADGroup -Name $targetGroupName -GroupScope DomainLocal -Path $ouPath
Write-Host "Le groupe cible '$targetGroupName' a été créé avec succès dans $ouPath."
} else {
Write-Host "Opération annulée. Le groupe cible n'a pas été créé."
exit
}
}
# Obtenir les membres du groupe source
$sourceGroupMembers = Get-ADGroupMember -Identity $sourceGroupName
# Ajouter les membres au groupe cible
foreach ($member in $sourceGroupMembers) {
Add-ADGroupMember -Identity $targetGroupName -Members $member
}
Write-Host "Les membres du groupe source ont été ajoutés au groupe cible '$targetGroupName'."
# Afficher les membres du groupe cible
Write-Host "Voici les membres du groupe $targetGroupName :"
$targetGroupMembers = Get-ADGroupMember -Identity $targetGroupName
foreach ($member in $targetGroupMembers) {
Write-Host $member.Name
}
|