Интервал обновления групповой политики для компьютеров
Насколько вы знаете, параметры групповых политик, которые расположены в узлах «Конфигурация компьютера» и «Конфигурация пользователя» применяются при загрузке операционной системы и, соответственно, при выполнении пользователем входа в систему, а также каждые 90 – 120 минут. Ранее, в своих статьях я уже не раз указывал на тот факт, что при помощи приоритетов объектов групповых политик, сами параметры политик в разных объектах применяются последовательно. А именно, сначала применяются локальные объекты групповых политик, после них политики, связанные с сайтом, затем с доменом и политики, связанные с подразделениями, причем, начиная от подразделения первого уровня и заканчивая подразделением, где расположен сам объект, к которому применяются параметры групповой политики. Помимо этого, при помощи клиентского расширения CSE, предназначенного для поддержки установки программного обеспечения (Group Policy Software Installation, GPSI), вы можете автоматизировать процесс установки программного обеспечения средствами функционала групповых политик. Если все компьютеры вашей организации расположены в одном здании и подключены к быстрому сетевому подключению, то развертывание программного обеспечения будет осуществляться без каких-либо проблем. Но если пользователи вашей организации расположены в разных зданиях или даже городах и удаленный пользователь подключается к сети с медленным сетевым подключением, некоторые параметры расширений CSE групповых политик не будут к ним применяться. Когда клиент выполняет обновление групповой политики, то он тестирует производительность сети и определяет, используется ли медленное подключение, скорость которого по умолчанию составляет 500 Кбит/с. В совете этой недели я расскажу вам о том, как можно управлять параметрами настройки групповых политик, которые имеют отношение ко всем перечисленным выше нюансам. Итак, для того чтобы настроить параметры, отвечающие за работу групповых политик, выполните следующие действия:
Рис. 1. Узел «Групповая политика»
Рис. 2. Настройка интервала обновления групповой политики для компьютеров
Рис. 3. Выключение обработки локальных объектов групповой политики
Рис. 4. Изменение порогового значения, отвечающего за медленные подключения для групповой политики
Рис. 5. Отключение возможности протоколирования RSoP
В результате применения отконфигурированных параметров групповых политик, для ваших пользователей будут настроены: интервал обновления групповой политики с интервалом смещения, на пользователей не будут распространяться обновления объектов локальной групповой политик, будет указано новое значение медленного сетевого подключения, а также им будет запрещено использовать протоколирование результирующей групповой политики.
В этой статье мы рассмотрим особенности обновления параметров групповых политик на компьютерах домена Active Directory: автоматическое обновление политик, команду GPUpdate , удаленное обновление через консоль Group Policy Management Console ( GPMC.msc ) и командлет PowerShell Invoke-GPUpdate .
Интервал обновления параметров групповых политик
Чтобы новые настройки, которые вы задали в локальной или доменной групповой политике (GPO) применились на клиентах, необходимо, чтобы служба Group Policy Client перечитала политики и внесла изменения в настройки клиента. Это процесс называется обновление групповых политик. Настройки групповых политик обновляются при загрузке компьютере и входе пользователя, или автоматически в фоновом режиме раз в 90 минут + случайное смещение времени (offset) в интервале от 0 до 30 минут (т.е. политики гарантировано применятся на клиентах в интервале 90 – 120 минут после обновления файлов GPO на контроллере домена).
Вы можете изменить интервал обновления настрое 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 от клиентов).
GPUpdate.exe – команда обновления параметров групповых политики
Всем администраторов знакома команда gpupdate.exe, которая позволяет обновить параметры групповых политик на компьютере. Большинство не задумываясь используют для обновления GPO команду gpupdate /force . Эта команда заставляет компьютер принудительно перечитать все политики с контроллера домена и заново применить все параметры. Т.е. при использовании ключа force клиент обращается к контроллеру домена и заново получает файлы ВСЕХ нацеленных на него политик. Это вызывает повышенную нагрузку на сеть и контроллер домена.
Простая команда gpudate применяет только новые/измененные параметры GPO.
Если все OK, должны появится следующие строки:
Можно отдельно обновить параметры GPO из пользовательской секции:
или только политики компьютера:
gpupdate /target:computer /force
Если некоторые политики нельзя обновить в фоновом режиме, gpudate может выполнить logoff текущего пользователя:
gpupdate /target:user /logoff
Или выполнить перезагрузку компьютера (если изменения в GPO могут применится только во время загрузки Windows):
Принудительно обновление политики из консоли 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
Теперь после изменения настроек или создания и прилинковки новой 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 "corp\Computer0200" -Target "User"
При запуске командлета Invoke-GPUpdate без параметров, он обновляет настройки GPO на текущем компьютере (аналог gpudate.exe).
В сочетании с командлетом Get-ADComputer вы можете обновить групповые политики на всех компьютерах в определенном OU:
Get-ADComputer –filter * -Searchbase "ou=Computes,OU=SPB,dc=winitpro,dc=com" | foreach
или на всех компьютерах, которые попадают под определенный критерий (например, на всех Windows Server в домене):
Вы можете задать случайную задержку обновления GPO с помощью параметра RandomDelayInMinutes. Таким образом вы можете уменьшить нагрузку на сеть, если одновременно обновляете политики на множестве компьютеров. Для немедленного применения политик используется параметр RandomDelayInMinutes 0.При удаленном выполнении командлета Invoke-GPUpdate или обновления GPO через консоль GPMC на мониторе пользователя может на короткое время появиться окно консоли с запущенной командой gpupdate .
Постановка задачи
Предположим, что вы сделали новую групповую политику и к какому-то пользовательскому компьютеру она не применилась, перед тем, как искать причину обработки GPO, вам нужно вычислить дату последнего обновления. В статье нам нужно изучить методы и инструменты, которые позволят это сделать.
Методы определения времени применения групповых политик
- Утилита Gpresult
- Утилита GP Time
- Rsop
- Реестр Windows
Как выяснить время обновления GPO через командную строку
Самый просто способ, это использование всем известной утилиты командной строки под названием Gpresult. Открываем cmd и вводим команду:
На моем тестовом сервере с Windows Server 2019 я получил, что политика для компьютера применилась в 11:13:20, а вот политика изменяющая конфигурацию пользователя в 11:55:47, это интересно, что все в разное время.
При необходимости gpresult может вывести информацию, только по пользователю или компьютеру, для этого есть ключ /scope:
или более детально отфильтровать через findstr
gpresult /scope:user /R | findstr "Последнее применение групповой политики"Как выяснить время обновления GPO через RSOP
RSoP (Resultant Set of Policy) - это отчет обо всех параметрах групповой политики в Active Directory, который показывает, как эти параметры могут влиять на сеть или как существующие объекты групповой политики (GPO) влияют на различные комбинации пользователей и компьютеров, когда локальная политика безопасности прилетели.
Чтобы запустить RSOP вы можете воспользоваться множеством методов, я бы выделил через командную строку или через окно выполнить. В командной строке просто введите:
В результате у вас будет произведен сбор сводных данных
Тоже самое через окно "Выполнить" в котором нужно вписать rsop.msc.
В результате вы получите отчет результирующей политики, тут вы увидите так же два раздела. Один для компьютера, второй для пользователя. Щелкните правым кликом по нужному разделу и выберите из контекстного меню пункт "Свойства".
В окне свойств перейдите на вкладку "Сведения об ошибке" и найдите пункт "Инфраструктура групповой политики", в области сведений вы увидите время обновления групповой политики.
Как выяснить время обновления GPO через PowerShell
Естественно у Microsoft есть отдельные командлеты, который позволяет вычислить время применения GPO, называется они Get-GPResultantSetOfPolicy и Get-GPOReport. Чтобы ими воспользоваться на клиентской системе, такой как Windows 10, вам необходимо установить RSAT пакет и импортировать модуль GroupPolicy. в противном случае вы будите получать ошибку:
Install-WindowsFeature : Имя "Install-WindowsFeature" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильностьнаписания имени, а также наличие и правильность пути, после чего повторите попытку.
строка:1 знак:1
+ Install-WindowsFeature –Name GPMC
+ Get-GPOReport : Имя "Get-GPOReport" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания имени,
а также наличие и правильность пути, после чего повторите попытку.
строка:1 знак:1
+ Get-GPOReport
+
+ CategoryInfo : ObjectNotFound: (Get-GPOReport:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Чтобы иметь возможность использовать эти командлеты, установите пакет RSAT, в операционных системах Windows Server, это не нужно. Далее установите модуль GroupPolicy, через команду:
После его установки введите команду для просмотра доступных модулей:
- Get-GPPermissions
- Set-GPPermissions
- Backup-GPO
- Copy-GPO
- Get-GPInheritance
- Get-GPO
- Get-GPOReport
- Get-GPPermission
- Get-GPPrefRegistryValue
- Get-GPRegistryValue
- Get-GPResultantSetOfPolicy
- Get-GPStarterGPO
- Import-GPO
- Invoke-GPUpdate
- New-GPLink
- New-GPO
- New-GPStarterGPO
- Remove-GPLink
- Remove-GPO
- Remove-GPPrefRegistryValue
- Remove-GPRegistryValue
- Rename-GPO
- Restore-GPO
- Set-GPInheritance
- Set-GPLink
- Set-GPPermission
- Set-GPPrefRegistryValue
- Set-GPRegistryValue
Чтобы вычислить время последнего обновления групповых политик через командлет Get-GPResultantSetOfPolicy, выполните команду:
Get-GPResultantSetOfPolicy -ReportType HTML -Path "c:\report.html"В результате вы получите отчет в виде html файла, который легко открывается через браузер. В самом верху отчета вы увидите сводку по времени последнего обновления политики для пользователя и компьютера.
Так же Get-GPResultantSetOfPolicy может получать данные и с удаленного компьютера, для этого нужно добавить ключ -Computer, в итоге команда примет вот такой вид:
Get-GPResultantSetOfPolicy -Computer dc01 -ReportType HTML -Path "c:\report.html"Как видим отчет получен и данные в нем есть, единственное в моем тесте показалось время обновления только для компьютера, но вам никто не мешает явно задать ключ -user перед -Computer.
Как выяснить время обновления GPO через реестр Windows
Логично предположить, что gpresult, rsopm powershell получают все значения из реестра Windows и я вам покажу, где располагаются данные ветки. Для начала давайте посмотрим для компьютера. Для этого откройте реестр Windows и перейдите в раздел:
HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows\CurrentVersion\ Group Policy\State\Machine\Extension-List\тут вы обнаружите 6 ключей:
- EndTimeHi
- EndTimeLo
- LoggingStatus
- StartTimeHi
- StartTimeLo
- Status
$LowTime=Get-ItemProperty -path $RegPath -name "EndTimeLo"
$HighTime=Get-ItemProperty -path $RegPath -name "EndTimeHi"
$CompTime=([long]$HighTime.EndTimeHi -shl 32) + [long] $LowTime.EndTimeLo
[DateTime]::FromFileTime($CompTime)00000000-0000-0000-0000-000000000000>
На выходе я вижу 19 ноября 2019 г. 17:25:51.
Узнаем время обновления GPO через gptime
gptime.exe - это удобная небольшая утилита предназначена для быстрого и краткого отчета о том, когда в последний раз компьютер и пользовательская групповая политика запускались в локальной или удаленной системе. Если в систему вошли более одного пользователя, инструмент сообщит о времени обработки GP для всех найденных пользователей.
В командной строке перейдите в каталог с gptime.exe и запустите ее. В моем примере видно, когда были обновлены политики для компьютера, а так же для всех пользователей, чьи профили были обнаружены на компьютере.
Удаленное определение времени применения GPO
Я вам уже неоднократно рассказывал про утилиты Марка Руссиновича PSTools, а конкретнее PsExec. Утилита при наличии административных прав на целевом компьютере может запускать командную строку или оболочку PowerShell из которой уже легко делать, то что нужно. Открываем командную строку, переходим в папку с утилитой PsExec. Подключаться я буду с контроллера домена dc01 к удаленному серверу SVT2019S01. Для начала через команды hostname и whoami я виду исходные данные и, что cmd запущенна именно на исходном сервере.
Вас попросит ввести пароль, если кстати не указывать ключ -u, то вам не нужно будет вводить логин и пароль, а будут использоваться текущие данные из под кого запущена командная строка. В итоге я успешно подключился и вижу, что hostname уже SVT2019S01. Далее все просто вы используете утилиту gpresult /R.
Еще получить данные с удаленного компьютера, вы можете через командлет PowerShell Enter-PSSession. Для этого введите команду:
Групповая политика — прекрасный инструмент для централизованной настройки учетных записей пользователей и компьютеров, однако стоит учитывать, что изменения политик вступают в действие далеко не сразу. По умолчанию, обновление настроек групповой политики для учетных записей компьютеров происходит каждые 90 минут со сдвигом вплоть до 30 минут. В большинстве ситуаций это вполне нормально, но иногда возникает необходимость в оперативном применении изменений.
Уменьшить интервал обновления групповой политики можно разными способами. Но при использовании любого из них стоит учитывать, что чересчур частые обращения к контроллерам домена создают значительную нагрузку на сеть.
Один вариант — сократить интервал обновления политик для серверов, которых в сети, как правило, меньше, чем клиентских ПК. Частота обновления определяется параметром «Интервал обновления групповой политики для компьютеров» (Group Policy Refresh For Computers) в узле «Политики | Административные шаблоны | Система | Групповая политика» (Policies | Administrative Templates | System | Group Policy, рис. A). Интервал указывается в минутах и определяет, как часто компьютеры будут предпринимать попытку обновления политик.
Другой вариант — задать в настройках интервала обновления смещение по времени, чтобы не создавать лишнюю нагрузку на контроллеры домена постоянными запросами на обновление. На рис. B показаны настройки параметра «Интервал обновления групповой политики для компьютеров».
Разумно уменьшать интервал обновления групповой политики в том случае, когда требуется частое применение многочисленных изменений — например, после крупного обновления системы или перехода на новое оборудование. Однако стоит проанализировать, насколько актуальным будет учащение обновлений, тем более что в большинстве случаев новые настройки распространяются далеко не с каждым запросом. В крупных сетях, объединяющих тысячи компьютеров, напротив, стоит существенно увеличить интервал обновления.
А какими способами и почему изменяете частоту обновлений групповой политики вы? Поделитесь своим опытом в комментариях!
Автор: Rick Vanover
Перевод SVET
Оцените статью: Голосов
Читать : как принудительно обновить групповую политику в Windows 10.
Изменить интервал обновления групповой политики
Для этого запустите gpedit.msc и нажмите Enter, чтобы открыть редактор локальной групповой политики. Перейдите к следующему параметру:
Конфигурация компьютера> Административные шаблоны> Система> Групповая политика
Теперь на правой панели дважды нажмите Установить интервал обновления групповой политики для компьютеров , чтобы открыть его окно «Свойства». Этот параметр политики указывает, как часто групповая политика для компьютеров обновляется во время использования компьютера в фоновом режиме. Помимо фоновых обновлений групповая политика для компьютера всегда обновляется при запуске системы или при входе пользователя в систему.
Как мы упоминали ранее, по умолчанию групповая политика обновляется в фоновом режиме каждые 90 минут со случайным смещением от 0 до 30 минут. Но если вы включите этот параметр, вы можете указать частоту обновления от 0 до 64 800 минут или 45 дней. Если вы выберете 0 минут, компьютер будет пытаться обновлять групповую политику каждые 7 секунд. Чтобы избежать снижения производительности, не устанавливайте низкое значение.
Вы также можете настроить этот параметр с помощью редактора реестра.
Чтобы изменить Интервал обновления групповой политики для компьютеров, перейдите к следующему разделу реестра:
HKEY_LOCAL_MACHINE \ Software \ Policies \ Microsoft \ Windows \ System
Создайте DWORD GroupPolicyRefreshTime и присвойте ему значение от 0 до 64800.
Чтобы изменить интервал смещения для компьютеров , перейдите к следующему разделу реестра:
HKEY_LOCAL_MACHINE \ Software \ Policies \ Microsoft \ Windows \ System
Создайте DWORD GroupPolicyRefreshTimeOffset и присвойте ему значение от 0 до 1440.
Читайте также: