Création et suppression d’Organizational Unit en PowerShell

J’ai récemment eu besoin de créer un peu plus de 1 200 Organizational Unit dans un domain Active Directory pour un besoin bien particulier. Evidemment, lorsqu’il s’agit d’un volume pareil, il est exclu de réaliser l’action à la main.

1 230 OU créées automatiquement en PowerShell
1 230 OU créées automatiquement en PowerShell

Création de 1 230 OU en PowerShell

J’ai donc utilisé les quelques lignes PowerShell suivantes pour créer ces OU automatiquement au sein de mon arborescence :

$var = Import-Csv "C:\Users\login\Desktop\OU-name.csv"
foreach ($item in $var)
{
    New-ADOrganizationalUnit -Name $item.OUNAme -Path "OU=OUTEST,DC=akril,DC=cloud"
    Write-Host "Creation de l'OU : " $item.OUNAme
}

Dans mon cas, les noms des OU à créer se trouvaient dans un fichier CSV basique à 1 colonne. 🙂

Suppression des OU en PowerShell

Ce que j’ai oublié c’est que par défaut la sécurité s’est activée par défaut pour l’ensemble des OU. Je ne pouvais donc plus supprimer l’OU parente en espérant supprimer toutes les sous-OU.

OU protégée
OU protégée

Dans ce cas, il est également exclu de supprimer toutes ces OU manuellement. Mais pour pouvoir les supprimer il faut d’abord retirer la protection sur toutes les OU.

Pour réaliser ces 2 actions automatiquement en PowerShell, j’ai utilisé la ligne suivante :

(Get-ADOrganizationalUnit -LDAPFilter '(name=*)' -SearchBase 'OU=ÒUTEST,DC=akril,DC=cloud' -SearchScope OneLevel) | Set-ADObject -ProtectedFromAccidentalDeletion:$false -PassThru | Remove-ADOrganizationalUnit -Confirm

Après quelques secondes, mes 1230 OU ont été dé-protégées puis supprimées. 🙂