В Active Directory есть специальная функция защиты объектов от случайного удаления (Organizational Unit, пользователей, групп и т.д.). Данная опция реализуется с помощью флага Protect object from accidental deletion, доступного в свойствах любого объекта. Защита от удаления по умолчанию включена при создании новых OU.
Если вы попытаетесь удалить защищенный объект Active Directory, появится ошибка:
Active Directory Domain Services You do not have sufficient privileges to delete Users, or this object is protected from accidental deletion.
Флаг защиты от удаления отображается на вкладке Options в свойствах OU в консоли Active Directory Users and Computers (dsa.msc) (не забудьте включить опцию View -> Advanced Features).
Вы можете включить или отключить эту опцию из консоли ADUC или с помощью PowerShell.
Например, следующая команда защитит от удаления пользователя AD:
Get-ADUser m.ivanov|Set-ADobject -ProtectedFromAccidentalDeletion $true
Такая команда включит флаг защиты для OU:
Get-ADobject -Identity ‘OU=Admins,OU=MSK,OU=RU,DC=contoso,DC=loc'| Set-ADObject -ProtectedFromAccidentalDeletion $true –verbose
Нередко бывает, что администраторы временно снимают опцию защиты от удаления для определенных OU, но забывают включить ее обратно.
Следующий PowerShell скрипт найдет в домене все OU, для которых отключена опция ProtectedFromAccidentalDeletion
Import-Module ActiveDirectory
$unprotectedOUs = Get-ADOrganizationalUnit -filter * -Properties ProtectedFromAccidentalDeletion -SearchScope Subtree| where {$_.ProtectedFromAccidentalDeletion -eq $False}
#Вывести список OU, для которых отключена защита от удаления:
$unprotectedOUs | Select DistinguishedName, ProtectedFromAccidentalDeletion, Name
# Если вам нужно включить опцию ProtectedFromAccidentalDeletion для найденный контейнеров, выполните следующую команду
#$unprotectedOUs| Set-ADOrganizationalUnit -ProtectedFromAccidentalDeletion $True