angle-left

Переопределение параметров доменных GPO через локальную групповую политику

Иногда в Microsoft инфраструктуре возникает необходимость переприменение настроек на конкретной машине без возможности/целесообразности создания отдельного объекта групповой политики в домене специально для этого.
 
В некоторых случаях изменить настройки/параметры необходимо у объектов появляющихся после применения последовательности общих групповых политик, что является проблематичным с учётом иерархии применения политик.
Group policy hierarchy
Таким образом определение параметров в локальной груповой политике будет переопределено следующими последовательно применяемыми групповыми политиками, и, как уже было отмечено выше, в случае определения параметров (например принтеров) в вышестоящей в иерархии применения политике (например, применяемой на уровне домена, или конкретного OU), изменение ещё не существующих настроек через локальную груповую политику не представляется возможным.
 

Но, не всё так плохо, и Microsoft позаботилась о наших потребностях.

 
В случае необходимости применения параметров на локальной машине после применения всех последующих за локальной групповых политик (Локальной(Local) - Сайта(Site) - Домена(Domain) - Организационной Единицы (OU)..) есть возможность использовать Logon PowerShell Scripts с установленным параметром Run Windows PowerShell scripts last.
 

Пример

Например, на уровне доменной груповой политики добавляются печатающие устройства, и, необходимо назначить принтер по умолчанию на конкретной системе через локальные групповые политики. Но, простое назначение принтера по умолчанию не отработает корректно, по причине отсутствия принтеров в момент применения локальной груповой политики (принтера появятся после последовательного применения груповых политик Локальной(Local) - Сайта(Site) - Домена(Domain) - Организационной Единицы (OU) ).
 
В этом случае необходимо создать PowerShell скрипт следующего содержания и добавить его в локальную групповую политику в Logon Scripts с установленным параметром Run Windows PowerShell scripts last
RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n  "\\PrintServer\Account_printer_01" 
где PrintServer - сервер печати
Account_printer_01 - имя принтера добавленного через последующие групповые политики