В этой статье мы рассмотрим особенности обновления параметров групповых политик на компьютерах домена Active Directory: автоматическое обновление политик, команду
GPUpdate
, удаленное обновление через консоль Group Policy Management Console (
GPMC.msc
) и командлет PowerShell
Invoke-GPUpdate
Интервал обновления параметров групповых политик
Чтобы новые настройки, которые вы задали в локальной или доменной групповой политике (GPO) применились на клиентах, необходимо, чтобы служба Group Policy Client перечитала политики и внесла изменения в настройки клиента. Это процесс называется обновление групповых политик. Настройки групповых политик обновляются при загрузке компьютере и входе пользователя, или автоматически в фоновом режиме раз в 90 минут + случайное смещение времени (offset) в интервале от 0 до 30 минут (т.е. политики гарантировано применятся на клиентах в интервале 90 – 120 минут после обновления файлов GPO на контроллере домена).
Контроллеры домена по умолчанию обновляют настройки GPO намного чаще — раз в 5 минут.
Вы можете изменить интервал обновления настрое GPO с помощью параметра Set Group Policy refresh interval for computers, который находится в секции GPO Computer Configuration -> Administrative Templates -> System -> Group Policy.
Включите политику (Enabled) и задайте время (в минутах) в следующих настройках:
- This setting allow you to customize how often Group Policy is applied to computer (от 0 до 44640 минут) – как часто клиент должен обновлять настройка GPO (если указать тут 0 – политики начнут обновляться каждые 7 секунд – не стоит этого делать);
- This is a random time added to the refresh interval to prevent all clients from requesting Group Policy at the same time (от 0 до 1440 минут) – максимальное значение случайного интервал времени, которые добавляется в виде смещения к предыдущему параметру (используется для уменьшения количества одновременных обращений к DC за файлами GPO от клиентов).
Имейте в виду, что частое обновление GPO приводит к увеличению трафика к контроллерам домена и повышенной нагрузке на сеть.
GPUpdate.exe – команда обновления параметров групповых политики
Всем администраторов знакома команда gpupdate.exe, которая позволяет обновить параметры групповых политик на компьютере. Большинство не задумываясь используют для обновления GPO команду
gpupdate /force
. Эта команда заставляет компьютер принудительно перечитать все политики с контроллера домена и заново применить все параметры. Т.е. при использовании ключа force клиент обращается к контроллеру домена и заново получает файлы ВСЕХ нацеленных на него политик. Это вызывает повышенную нагрузку на сеть и контроллер домена.
Простая команда
gpudate
применяет только новые/измененные параметры GPO.
Если все OK, должны появится следующие строки:
Updating policy…
Computer Policy update has completed successfully.
User Policy update has completed successfully.
Если какие-то политики или настройки не применились, используйте для диагностики команду gpresult и рекомендации из статьи “Почему к компьютеру не применилась GPO?”.
Можно отдельно обновить параметры GPO из пользовательской секции:
gpupdate /target:user
или только политики компьютера:
gpupdate /target:computer /force
Если некоторые политики нельзя обновить в фоновом режиме, gpudate может выполнить logoff текущего пользователя:
gpupdate /target:user /logoff
Или выполнить перезагрузку компьютера (если изменения в GPO могут применится только во время загрузки Windows):
gpupdate /Boot
Принудительно обновление политики из консоли Group Policy Management Console (GPMC)
В консоли GPMC.msc (Group Policy Management Console), начиная с Windows Server 2012, появилась возможность удаленного обновления настроек групповых политик на компьютерах домена.
В Windows 10 для использования этой консоли придется установить компонент RSAT:
Add-WindowsCapability -Online -Name Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0
Теперь после изменения настроек или создания и прилинковки новой GPO, вам достаточно щелкнуть правой клавишей по нужному Organizational Unit (OU) в консоли GPMC и выбрать в контекстном меню пункт Group Policy Update. В новом окне появится количество компьютеров, на которых будет выполнено обновление GPO. Подтвердите принудительное обновление политик, нажав Yes.
Затем GPO по очереди обновяться на каждом компьютере в OU и вы получите результат со статусом обновления политик на компьютерах (Succeeded/Failed).
Данная команда удаленно создает на компьютерах задание планировщика с командой GPUpdate.exe /force для каждого залогиненого пользователя. Задание запускается через случайный промежуток времени (до 10 минут) для уменьшения нагрузки на сеть.
Для работы этого функционала GPMC на клиенте должны быть выполнены следующие условия:
- Открыт порт TCP 135 в Windows Firewall;
- Включены службы Windows Management Instrumentation и Task Scheduler.
Если компьютер выключен, или доступ к нему блокируется файерволом напротив имени такого компьютера появится надпись “The remote procedure call was cancelled”.
По сути этот функционал дает тот же эффект, если бы вы вручную обновили настройки политик на каждом компьютере командой
GPUpdate /force
.
Invoke-GPUpdate – обновление GPO из Powershell
Также вы можете вызвать удаленное обновление групповых политик на компьютерах с помощью PowerShell комнадлета Invoke-GPUpdate (входит в RSAT). Например, чтобы удаленно обновить пользовательские политики на определенном компьютере, можно использовать команду:
Invoke-GPUpdate -Computer «corpComputer0200» -Target «User»
При запуске командлета Invoke-GPUpdate без параметров, он обновляет настройки GPO на текущем компьютере (аналог gpudate.exe).
В сочетании с командлетом Get-ADComputer вы можете обновить групповые политики на всех компьютерах в определенном OU:
Get-ADComputer –filter * -Searchbase «ou=Computes,OU=SPB,dc=winitpro,dc=com» | foreach{ Invoke-GPUpdate –computer $_.name -force}
или на всех компьютерах, которые попадают под определенный критерий (например, на всех Windows Server в домене):
Вы можете задать случайную задержку обновления GPO с помощью параметра RandomDelayInMinutes. Таким образом вы можете уменьшить нагрузку на сеть, если одновременно обновляете политики на множестве компьютеров. Для немедленного применения политик используется параметр RandomDelayInMinutes 0.
Get-ADComputer -Filter {enabled -eq «true» -and OperatingSystem -Like ‘*Windows Server*’ }| foreach{ Invoke-GPUpdate –computer $_.name –RandomDelayInMinutes 10 -force}
Для недоступных компьютеров команда вернет ошибку:
Invoke-GPUpdate: Computer «spb-srv01» is not responding. The target computer is either turned off or Remote Scheduled Tasks Management Firewall rules are disabled.
При удаленном выполнении командлета Invoke-GPUpdate или обновления GPO через консоль GPMC на мониторе пользователя может на короткое время появиться окно консоли с запущенной командой
gpupdate
.