Найти тему
Steam Paul

Прилинковываем групповую политику скриптом.

Время от времени приходится прилинковывать групповые политики к паре десятков OU, так как на них, например, отключено наследование. Даже мышка от такой работы устает, а админу нужно быть внимательным, чтобы не ошибиться и ни какую не пропустить. На помощь нам придет PowerShell и его скрипты.

Для обращения к политике нам понадобится её ID. Почему именно ID, да потому что это единственный уникальный и неизменяемый атрибут, по которому политику можно совершенно точно опознать.

Узнать ID просто, в консоли "Управление нрупповой политикой" находим политику, которую хотим подключить и на вкладке "Сведения" смотрим поле "Уникальный код", это то, что мы ищем, можем просто скопировать(Ctrl+ins).

Кроме ID нам понадобится список путей OU, к которым мы будем подключать нашу политику. Пути должны быть в LDAP-формате.

внесите значения в переменные

В переменную $policy1 заносим ID в кавычках и без фигурных скобок, как показано в примере.

В коллекцию $OUList заносим список путей как показано в примере. Можете заморочиться и импортировать его из файла, это будет красиво, но мне это не нужно.

Import-Module GroupPolicy
Import-Module ActiveDirectory
$policy1 = "00000000-0000-0000-0000-000000000000"
Function NewLinkPolicy ($PolicyID, $objects)
{
foreach ($CN In $objects){
New-GPLink -Guid $PolicyID -LinkEnabled yes -Target $CN;
}
}
$OUList=@(
"DC=contoso,DC=com"
"OU=test,DC=contoso,DC=com"
)
NewLinkPolicy $policy1 $OUList;

Вот и всё, запускаем скрипт и он прилинковывает политику ко всем Organisational Unit, которые мы указали.

PS: для выполнения вам понадобятся наборы командлетов PowerShell для Active Directory и GroupPolicy, они совершенно точно должны быть на вашем контроллере домена, если хотите запускать от себя - установите их из RSAT, или аналогов для более новых версий Windows.