Magic Quadrant™ pour la gestion des accès privilégiés 2025 : Netwrix reconnue pour la quatrième année consécutive. Téléchargez le rapport.

Plateforme
Centre de ressourcesBlog
Gestion des unités d'organisation et déplacement de leurs objets avec PowerShell

Gestion des unités d'organisation et déplacement de leurs objets avec PowerShell

Jun 26, 2018

Une unité organisationnelle (OU) est un conteneur dans Active Directory où les utilisateurs, les groupes et les ordinateurs, ainsi que d'autres OU, peuvent être stockés. Chaque AD domain peut avoir sa propre hiérarchie d'unités organisationnelles.

Dans cet article, vous apprendrez la gestion des unités d'organisation (OU) et comment utiliser des scripts PowerShell pour créer, déplacer et supprimer des unités organisationnelles dans AD ; lier une Group Policy à une OU ; et déplacer des comptes d'ordinateurs et d'utilisateurs vers une autre OU.

PowerShell ISE est le meilleur outil pour travailler avec des scripts PowerShell. Démarrez l'outil PowerShell ISE avec des privilèges d'administrateur en appuyant sur « Windows+R » et en saisissant « runas /profile /user:Administrator PowerShell_ISE » dans la fenêtre Exécuter. Tapez le mot de passe de l'administrateur lorsque cela est demandé. Alternativement, vous pouvez faire un clic droit sur l'icône PowerShell ISE et choisir l'option « Exécuter en tant qu'administrateur ».

Pour travailler avec AD et ses objets, vous devez importer le module Active Directory pour Windows PowerShell. Dans Microsoft Windows Server 2008 R2, vous devez activer ce module en exécutant la commande suivante :

      Import-Module ActiveDirectory
      

Dans Microsoft Windows Server 2012 et les versions ultérieures, ce module est activé par défaut.

Créez des OU dans un domaine Active Directory avec PowerShell

Vous pouvez créer une nouvelle unité organisationnelle dans Active Directory en utilisant le cmdlet New-ADOrganizationalUnit et en spécifiant le nom d'un nouvel objet OU. Par défaut, PowerShell créera l'OU dans la racine du domaine. La commande ci-dessous créera une OU nommée « Régions » sur le DC :

      New-ADOrganizationalUnit “Regions”
      

Si vous avez besoin d'un chemin LDAP d'unité d'organisation différent, spécifiez son nom distinctif en utilisant le paramètre de l'applet de commande –Path:

      New-ADOrganizationalUnit “Regions” –Path “OU=Managers,DC=Enterprise,DC=com”
      
Image

Déplacer une OU vers une autre adresse LDAP

Si vous devez déplacer une UO vers un autre emplacement, utilisez la cmdlet Move-ADObject. Notez que l'UO cible ne doit pas être protégée contre la suppression accidentelle. Si c'est le cas, utilisez cette commande pour retirer cette protection :

      Set-ADOrganizationalUnit -Identity "OU=Regions,OU=Managers,DC=Enterprise,DC=Com" -ProtectedFromAccidentalDeletion $False
      

Maintenant, vous pouvez déplacer l'OU vers un autre emplacement :

      Move-ADObject -Identity "OU=Regions,OU=Managers,DC=Enterprise,DC=Com" -TargetPath "OU=IT,DC=Enterprise,DC=Com"
      

Renommer une unité d'organisation

Pour renommer une unité organisationnelle, utilisez la cmdlet Rename-ADObject. Le paramètre -Identity spécifie l'objet Active Directory à renommer et nécessite soit son nom distinctif (DN) soit son GUID.

Cette commande renomme l'OU “Regions” en “Districts” :

      Rename-ADObject -Identity "OU=Regions,OU=IT,DC=enterprise,DC=COM" -NewName Districts
      

Alternativement, vous pouvez utiliser le cmdlet Get-ADOrganizationalUnit avec le paramètre -Filter; cela ne nécessite pas le chemin LDAP complet vers l'OU. Cependant, ce cmdlet recherchera dans tout l'AD et l'action sera appliquée à tous les OU qui contiennent le terme de recherche dans leurs noms :

      Get-ADOrganizationalUnit -Filter "Name -eq 'Regions'" | Rename-ADObject -NewName Countries
      

Appliquez une stratégie de groupe à une unité d'organisation

Pour assigner une stratégie de groupe à une unité d'organisation, utilisez la cmdlet New-GPLink qui crée essentiellement un lien entre l'objet de stratégie de groupe (GPO) spécifié et l'unité d'organisation. Vous pouvez spécifier l'une des propriétés suivantes pour le lien :

  • Activé — Si le lien est activé, les paramètres du GPO sont appliqués lorsque la stratégie de groupe est traitée pour le site, le domaine ou l'unité organisationnelle.
  • Appliqué — Si le lien est appliqué, il ne peut pas être bloqué dans un conteneur de niveau inférieur.
  • Ordre — L'ordre indique la précédence des paramètres GPO.

La commande suivante associe le GPO « Block Software » à l'OU « Districts » avec le lien activé et appliqué :

      New-GPLink -Name "Block Software" -Target "OU=Districts,OU=IT,dc=enterprise,dc=com" -LinkEnabled Yes -Enforced Yes
      
Image

Déplacer des ordinateurs et des utilisateurs vers une nouvelle UO

Une fois que vous avez créé une unité d'organisation (OU) et éventuellement lié un objet de stratégie de groupe (GPO), il est temps de la remplir avec des utilisateurs et des ordinateurs. La cmdlet PowerShell Move-ADObject déplace n'importe quel objet ou ensemble d'objets (comme un utilisateur, un ordinateur, un groupe ou une autre OU) vers une OU différente. Le paramètre -Identity spécifie quel objet ou conteneur Active Directory déplacer. Notez que vous devez entrer le chemin LDAP complet ou le SID de l'objet ; vous ne pouvez pas utiliser son SamAccountName. L'exemple ci-dessous démontre comment déplacer un utilisateur (John Brown) vers l'OU « Districts » :

      Move-ADObject -Identity "CN=John Brown,CN=Users,DC=enterprise,DC=com" -TargetPath "OU=Districts,OU=IT,DC=Enterprise,DC=Com"
      

Utilisez la même syntaxe pour déplacer des objets ordinateur. La commande suivante déplacera l'ordinateur “R07GF” vers le conteneur “Computers” :

      Move-ADObject -Identity "CN=R07GF,OU=CEO,DC=enterprise,DC=com" -TargetPath "CN=Computers,DC=Enterprise,DC=Com
      

Déplacer des ordinateurs et utilisateurs AD vers un autre UO en utilisant un fichier CSV ou TXT

Si vous avez une liste prédéfinie d'objets à déplacer, vous pouvez l'enregistrer sous forme de fichier CSV puis importer ce fichier dans Active Directory. La liste CSV doit être au format suivant :

Utilisez ce script PowerShell pour déplacer les comptes d'utilisateurs AD répertoriés dans un fichier CSV :

      # Specify target OU. This is where users will be moved.
$TargetOU =  "OU=Districts,OU=IT,DC=enterprise,DC=com"
# Specify CSV path. Import CSV file and assign it to a variable. 
$Imported_csv = Import-Csv -Path "C:tempMoveList.csv" 

$Imported_csv | ForEach-Object {
     # Retrieve DN of user.
     $UserDN  = (Get-ADUser -Identity $_.Name).distinguishedName
     # Move user to target OU.
     Move-ADObject  -Identity $UserDN  -TargetPath $TargetOU
   
 }
      

Pour déplacer les comptes d'ordinateurs AD répertoriés dans un fichier texte, utilisez le script PowerShell suivant :

      # Specify path to the text file with the computer account names.
$computers = Get-Content C:TempComputers.txt

# Specify the path to the OU where computers will be moved.
$TargetOU   =  "OU=Districts,OU=IT,DC=enterprise,DC=com" 
ForEach( $computer in $computers){
    Get-ADComputer $computer |
    Move-ADObject -TargetPath $TargetOU

}
      

Supprimer une OU de AD

La cmdlet Remove-ADOrganizationalUnit supprime une unité d'organisation (OU). L'OU ne doit pas être protégée contre la suppression accidentelle. Vous pouvez retirer l'option de protection contre la suppression accidentelle pour chaque OU qui contient « Continents » dans son nom en utilisant les cmdlets Get-ADOrganizationalUnit et Set-ADOrganizationalUnit comme suit :

      Get-ADOrganizationalUnit -filter "Name -eq 'Continents'" | Set-ADOrganizationalUnit  -ProtectedFromAccidentalDeletion $False
      

Utilisez la commande suivante pour supprimer chaque OU qui contient « Continents » dans son nom de AD :

      Get-ADOrganizationalUnit -filter "Name -eq 'Continents'" | Remove-ADOrganizationalUnit –Recursive
      

Vous serez invité à confirmer la suppression :

Image

Notez que le paramètre -Recursive supprime à la fois l'OU et tous ses objets enfants. Les objets enfants seront supprimés même si la protection contre la suppression est activée pour eux.

Conclusion

Maintenant que vous avez appris à gérer les UO dans Active Directory à l'aide de scripts PowerShell, vous pouvez automatiser une variété d'opérations simples liées à la gestion des UO. Avant d'essayer ces commandes, assurez-vous d'activer la fonctionnalité Active Directory Recycle Bin afin de pouvoir facilement revenir en arrière sur toute suppression erronée. Il est également judicieux de suivre attentivement tous les changements apportés à vos unités organisationnelles.

Partager sur

En savoir plus

À propos de l'auteur

Asset Not Found

Jeff Melnick

Directeur de l'ingénierie des systèmes

Jeff est un ancien directeur de l'ingénierie des solutions mondiales chez Netwrix. Il est un blogueur, conférencier et présentateur de longue date chez Netwrix. Dans le blog Netwrix, Jeff partage des astuces et des conseils qui peuvent améliorer de manière significative votre expérience en administration système.