Полезные командлеты Powershell для Active Directory

Рекурсивное удаление OU c предварительной проверкой наличия объектов внутри

Код:
$ChildObjects = Get-ADObject -Filter 'ObjectClass -ne "organizationalUnit"' -SearchBase $DN #проверка наличия пользователей и групп в удаляемых каталогах
       if ($ChildObjects.Count -gt 0) { #если объекты найдены перемещаем
        Write-Host "В каталоге $DN найдены пользователи или группы" -ForegroundColor Yellow
        foreach ($Child in $ChildObjects) {
         Move-ADObject -Identity $Child.DistinguishedName -TargetPath $newDN  #перемещение найденных объектов
         Write-Host "Объект "$Child.Name" перемещен в $newDN" -ForegroundColor Green
         }
   }   else {
        Write-Host "В OU нет объектов для перемещения перед удалением" -ForegroundColor Green
        Set-ADOrganizationalUnit -Identity $DN -ProtectedFromAccidentalDeletion $false -Confirm:$false
        Remove-ADOrganizationalUnit -Identity $DN -Recursive -Confirm:$false
        Write-Host "Каталог $DN успешно удален" -ForegroundColor Green
               }
 
Назад
Верх