Оглавление
В этой статье мы рассмотрим особенности делегирования полномочий в домене Active Directory. Делегирование позволяет предоставить право на выполнение некоторых задач управления AD обычным пользователям домена, не включая их в привилегированные доменные группы, такие как Domain Admins, Account Operators и т.д.. Например, с помощью делегирования вы можете предоставить определённой группе пользователей (допустим, Helpdesk) право на добавление пользователей в группы, заведение новых пользователей в AD и сброс пароля.
Особенности делегирования прав в Active Directory
Для делегирования прав в AD используется мастер Delegation of Control Wizard в графической оснастке Active Directory Users and Computers (DSA.msc).

Административные права в AD можно делегировать на довольно детальном уровне. Одной группе можно предоставить право на сброс пароля в OU, другой – на создание и удаление аккаунтов, третьей на сброс пароля. Можно настроить наследование разрешений на вложенные OU. Вы можете делегировать права в AD на четырех уровнях:
- Сайта AD;
- Всего домена;
- Конкретной OU в Active Directory;
- Конкретного объекта AD.
Несколько рекомендаций по правильному использованию делегирования администраивных полномочий в AD:
- Не рекомендуется делегировать разрешения непосредственно для кокретных учетных записей пользователей. Вместо этого создайте в AD новую группу безопасности, добавьте в нее пользователя и делегируйте полномочия на OU для этой группы. Если вам понадобится предоставить такие же права в домене еще одному пользователю, вам будет достаточно добавить его в группу безопасности;
- Старайтесь не использовать запрещающих разрешений, т.к. они имеют приоритет над разрешающими;
- Периодически выполняйте аудит делегированных полномочий в домене (отчет с текущими списками разрешений на OU можно сгенерировать с помощью PowerShell).
- Не делегируйте права на управление OU с административными аккаунтами. Иначе легко может произойти ситуация, когда любой сотрудник службы поддержки может сбросить пароль администратора домена. Все чувствительные пользователи и группы с повышенными привилегиями нужно размещать в отдельной OU, на которую не распространяется правила делегирования.
Делегирование прав на создание учетных записей и создаем груп безопасности.
Представим, наша задача – предоставить группе HelpDesk право на сброс пароля и разблокировку аккаунтов пользователей в домене. Создадим новую группу

Запустите консоль Active Directory Users and Computers (ADUC), щелкните ПКМ по OU с пользователями (в нашем примере это ‘OU=Users,OU=Moscow,OU=RU,DC=corp,DC=local’) и выберите пункт меню Delegate Control.

Выберите группу, которой вы хотите предоставить административные полномочия.

Если вы хотите предоставить право на создание и удаление пользователей в этом OU и создание груп, выберите опции Create, delete, and manage user accounts | Create, delete, and manage groups

Поиск делегированных груп
Если ранее кто то уже создавал такие группы мы можем их найти через powershell
Поиск делегированных груп
Import-Module ActiveDirectory
# Ваш домен
$domainNetbios = "CORP" # NetBIOS
$rootDN = "DC=corp,DC=local"
# Берём только OUs, где обычно делегируют
$rootDE = New-Object System.DirectoryServices.DirectoryEntry("LDAP://$rootDN")
$search = New-Object System.DirectoryServices.DirectorySearcher($rootDE)
$search.Filter = "(objectClass=organizationalUnit)"
$search.PageSize = 1000
$results = @()
foreach ($res in $search.FindAll()) {
$obj = $res.GetDirectoryEntry()
$acls = $obj.PsBase.ObjectSecurity.GetAccessRules($true,$false,[Security.Principal.NTAccount])
foreach ($acl in $acls) {
$acc = $acl.IdentityReference.Value
# 1) только ваш домен
if ($acc -notlike "$domainNetbios\*") { continue }
# 2) выкидываем стандартные админские
if ($acc -like "$domainNetbios\Domain Admins" -or
$acc -like "$domainNetbios\Enterprise Admins" -or
$acc -like "$domainNetbios\Schema Admins" -or
$acc -like "$domainNetbios\Enterprise Read-only Domain Controllers") { continue }
# 3) только неунаследованные (чисто вручную делегированные)
if ($acl.IsInherited) { continue }
$results += [pscustomobject]@{
ObjectDN = $obj.distinguishedName
Account = $acc
Rights = $acl.ActiveDirectoryRights
}
}
}
$results | Sort-Object ObjectDN,Account | Out-GridView
