volodya773
Почетный гость
Рекурсивное удаление 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
}