Команда gpupdate /force используется для принудительного обновления групповых политик, применяемых вашей компанией. Изменения, внесенные в групповую политику, применяются не сразу, а по умолчанию через 90 минут (со смещением ~ 30 минут для распределения нагрузки). С помощью команды GPUpdate мы можем принудительно выполнить обновление.
Групповые политики используются для изменения параметров безопасности и управления системой (например, для развертывания принтеров или подключения сетевых дисков). Для устранения проблем с ИТ иногда необходимо обновить групповую политику вручную.
Команда GPUpdate vs GPUpdate Force
Команда gpupdate /force, вероятно, является наиболее часто используемой командой обновления групповой политики. При использовании переключателя /force все параметры политики применяются повторно. Для большинства случаев использования это совершенно нормально, но имейте в виду, что при наличии большого количества объектов групповой политики (GPO) или в большой среде использование /force создаст огромную нагрузку на контроллеры домена.
Если у вас большой клиент или много объектов групповой политики, то лучше запускать только gpupdate без переключателя /force, чтобы применить новые настройки политики. Это позволит получить только изменения или новые групповые политики, снизив нагрузку на клиент и контроллеры домена.
# Повторно применить все политики
gpupdate/сила
# Получить только измененные/новые групповые политики
gpupdate
Обновление политик только пользователей или групп компьютеров
Если у вас большая среда или вам нужно обновить групповые политики на большом количестве компьютеров одновременно, может быть полезно обновить только то, что необходимо. Это уменьшит нагрузку на контроллеры домена и, конечно, быстрее.
Автоматическая перезагрузка или выход из системы после GPUpdate
С помощью переключателя /logoff или /boot мы можем позволить gpupdate определить, требуется ли выход из системы или перезагрузка. Чтобы было ясно, если вы запустите gpupdate /boot, компьютер перезагрузится только в том случае, если этого потребует изменение политики. В противном случае политика будет применена сразу без перезагрузки.
Запуск GPUpdate на удаленном компьютере
Иногда вам может понадобиться быстро обновить групповые политики на нескольких компьютерах, потому что вы изменили настройки интернет-прокси или, например, для замены принтера. Есть несколько способов запустить GPUpdate на удаленном компьютере
Использование консоли управления групповыми политиками
После того, как вы подтвердите обновление, политики будут обновлены, и вы сможете увидеть статус каждого компьютера. В этом примере 5 компьютеров были выключены, поэтому обновление не удалось.
Использование PowerShell для запуска GPUpdate на удаленном компьютере
Основой команды является команда Invoke-GPUpdate. Нам также нужно указать компьютер и RansomDelayInMinutes.
RandomDelayInMinutes используется для снижения сетевой нагрузки при одновременном обновлении множества компьютеров. Вы можете установить его в диапазоне от 0 до 44640 минут (31 день). Используйте 0 для немедленного запуска обновления.
Invoke-GPUpdate -Компьютер “labrat01” -RandomDelayInMinutes 0 -Force
С помощью этого мы можем создать небольшой сценарий для всех компьютеров в определенной OU и запускать на них GPupdate.
Или, если вы хотите использовать список компьютеров:
Подведение итогов
Я надеюсь, что эта статья помогла вам с командой GPUpdate /force. Если у вас есть какие-либо вопросы, просто оставьте комментарий ниже.
В этом руководстве вы узнаете, как использовать команду gpupdate /force для немедленного применения новых настроек GPO. Я также покажу вам, как принудительно выполнить обновление на нескольких удаленных компьютерах.
Команда gpupdate встроена во все версии операционной системы Windows, клиента и сервера.
По умолчанию Windows будет обновлять параметры групповой политики каждые 90 минут или при перезагрузке компьютера. Бывают случаи, когда вам нужно немедленно обновить политики компьютера, и ждать 90 минут не вариант. С помощью команды gpupdate вы можете принудительно обновить политику.
В чем разница между командой gpupdate и gpupdate /force?
Так какую команду использовать? Лучше всего начать с команды GPUpdate, она должна работать в большинстве случаев. Если команда gpupdate не сработала, попробуйте gpupdate /force.
Я бы не стал запускать gpupdate /force на нескольких устройствах одновременно. Если у вас много групповых политик, это может быть ресурсоемким на контроллерах домена.
Видеоурок
Вы должны получить сообщение об успешном завершении.
Чтобы повторно применить все политики, используйте переключатель /force.
Давайте взглянем на некоторые реальные примеры использования команды gpupdate.
Добавить ярлык на рабочий стол пользователя
Вот фотография до.
После запуска gpupdate вы можете увидеть ярлык на рабочем столе, добавленный на рабочий стол.
Ваш начальник просит установить программное обеспечение
Затем введите команду gpupdate. Но на этот раз вы получите сообщение ниже.
Я хотел показать этот пример, потому что не все политики можно применить сразу. Развертывание программного обеспечения с помощью групповой политики может происходить только во время перезагрузки.
Извините, босс, вам нужно перезагрузиться. 🙂
Когда следует использовать команду GPUpdate /force?
В двух приведенных мной примерах требовалось запустить только команду gpupdate. Параметр /force следует использовать только для устранения неполадок или при возникновении проблем с применением политики.
При этом я не видел никаких проблем с запуском gpupdate /force в качестве первого варианта. Я также не видел причин запускать его в качестве первого варианта. Большую часть времени я могу запустить gpupdate, и все работает. Как я упоминал выше, основная проблема с gpupdate /force заключается в одновременном запуске его на нескольких компьютерах, что может привести к значительной нагрузке на ваши контроллеры домена.
Запуск GPUpdate на нескольких компьютерах
Если вам нужно принудительно обновить групповую политику на удаленных компьютерах или на нескольких компьютерах, вы можете использовать эти примеры.
Знаете ли вы, что вы можете использовать консоль управления групповыми политиками для обновления удаленных и нескольких компьютеров?
В консоли GPM щелкните правой кнопкой мыши подразделение и выберите «Обновить групповую политику».
Вы получите индикатор выполнения, показывающий вам статус.
Использование команды PowerShell Invoke-GPupdate
Существует команда PowerShell для обновления групповых политик. Для обновления на одном компьютере используйте эту команду
Для обновления на нескольких компьютерах с помощью PowerShell используйте эту команду. Приведенная ниже команда обновит все компьютеры в моей OU Accounting. Просто измените базовый путь поиска на различающееся имя вашего подразделения.
Синтаксис GPUpdate
Надеюсь, это руководство было вам полезным. Не стесняйтесь оставлять комментарии или вопросы ниже.
Сегодня я покажу вам, как принудительно обновить групповую политику на удаленных компьютерах.
Компьютеры будут обновлять групповую политику в фоновом режиме каждые 90 минут, кроме того, групповая политика обновляется при запуске компьютера.
Бывают случаи, когда вы вносите изменения или создаете новые GPO (объекты групповой политики), и вам нужно, чтобы изменения вступили в силу немедленно.
Существует несколько различных методов удаленного обновления групповой политики.
Давайте посмотрим.
Совет. Метод 1 лучше всего подходит для старых клиентов, а методы 2 и 3 — для систем, работающих под управлением 2012 года и более поздних версий.
Использование команды gpupdate с PsExec
Этот первый метод использует встроенную команду на клиентских компьютерах под названием gpupdate.
Чтобы немедленно принудительно обновить групповую политику на локальном компьютере, используйте эту команду
gpupdate /force
Параметр /force заставит обновить все политики, а не только новые.
Теперь, если у вас есть несколько компьютеров, которые необходимо обновить, было бы сложно войти в каждый из них и выполнить эту команду.
Чтобы запустить это на удаленном компьютере, вы можете использовать команду PsExec из набора инструментов Sysinternals.
Вот пример использования PsExec для удаленного обновления групповой политики
«PsExec \ имя_компьютера Gpupdate»
Просто замените Computername на фактическое имя хоста компьютера.
Использование консоли управления групповыми политиками
В Windows Server 2012 и более поздних версиях теперь можно принудительно обновить групповую политику на удаленных компьютерах из консоли управления групповыми политиками.
Этот метод очень прост и позволяет запускать обновление для одной или всех организационных единиц.
Вот шаги.
Откройте консоль управления групповыми политиками
Эту консоль можно открыть на компьютере, на котором установлены инструменты RSAT, или на сервере с ролью DHCP.
Щелкните правой кнопкой мыши подразделение, чтобы обновить
Вы можете обновить отдельную организационную единицу или родительскую организационную единицу, и это обновит все дочерние организационные единицы.
Я собираюсь обновить свою родительскую организационную единицу «Компьютеры ADPRO». В этой организационной единице есть несколько дочерних организационных единиц, разбитых на отделы. Это запустит обновление групповой политики на всех компьютерах.
Я нажму «Да», чтобы подтвердить запуск обновления.
Теперь это довольно круто, я получаю окно, показывающее статус обновления групповой политики на каждом компьютере.
There you have it, that’s how easy it is to use the group policy management console to remotely force a group policy update.
If you are a Powershell nerd then check out the next method.
Using Powershell Invoke-GPUpdate
In Windows 2012 you can now force an immediate update using the PowerShell invoke-GPUpdate cmdlet.
This command can be used to update Windows 10 and Windows 7 clients.
You will need Powershell installed as well as the Group Policy Management Console (GPMC).
Here is the command:
Invoke-GPUpdate -Computer COMPUTER02 -RandomDelayInMinutes 0
The RandomDelayInMinutes 0 specifies the delay. Setting it to 0 will update group policy right away.
The only downside to using this command is that the clients will get a CMD screen pop up like below.
It only displays for about 3 seconds and then closes.
If you want to use the PowerShell command to force an update on all computers you can use these commands:
The above commands will pull in every computer from the domain, put them into a variable, and run the commands for each object in the variable.
As always I hope you find this article useful.
Active Directory Permissions Reporting Tool
You can easily identify who has what permissions, where they came from, and when they were granted or revoked. You can also generate compliance-ready reports for various standards and regulations, such as HIPAA, PCI DSS, SOX, and GDPR
Download Free Trial
После изменения любых настроек групповых политик с помощью локального редактора GPO (gpedit.msc) или доменного редактора политик (gpmc.msc), новые настройки политик применяются к пользователю (или компьютеру) не сразу. Вы можете дождаться автоматического обновления политик (придётся ждать до 90 минут), либо можете обновить и применить политики вручную с помощью команды GPUpdate. Команда GPUpdate используется для принудительного обновления групповых политик компьютера и/или пользователя.
Совет. В Windows 2000 для ручного обновления групповых политик использовалась команда secedit /refreshpolicy. В следующих версиях Windows она была заменена утилитой GPUpdate.
Полный синтаксис команда gpupdate выглядит так:
При запуске команды gpupdate без параметров выполняется обновление только новыех и изменённых настроек политик пользователя и компьютера
Вы можете обновить только политики пользователя или только политики компьютера с помощью параметра /target. Например:
Для принудительного обновления настроек групповых политик используется команда GPUpdate /force. В чем разница между GPUpdate и GPUpdate /force?
Команда gpupdate применяет только измененные политики, а команда GPUpdate /force заново переприменяет все политики клиента — и новые и старые (вне зависимости от того, были ли они изменены).
В большинстве случаев для обновления политик на компьютере нужно использовать gpupdate. В больших доменах Active Directory частое использование ключа /force при обновлении GPO вызывает большую нагрузку на контроллеры домена (т.к. компьютеры запрашивают заново все нацеленные на них или на пользователей политики).
Как мы уже говорили ранее групповые политики обновляются автоматически каждые 90 минут или во время загрузки компьютера. Поэтому в большинстве случае использование опции gpupdate /force не оправдано (особенно в различных скриптах) из-за высокой нагрузки на клиентские компьютеры, контроллеры домена и каналы передачи данных. Не стоит часто использовать параметр /force для принудительного обновления натсроек политик у клиентов, подключенных по медленным и нестабильным каналам передачи.
Вы можете добавить задержку (до 600 секунд) при обновлении политик с помощью параметра /wait:
Т.к. некоторые политики пользователя нельзя обновить в фоновом режиме, а только при входе пользователя в систему (установка программ, перенаправление папок и т.д.), вы можете выполнить logoff для текущего пользователя командой:
gpupdate /logoffНекоторые настройки политик компьютера могут применится только при загрузке Windows, поэтому вы можете инициировать перезагрузку компьютера с помощью параметра /Boot:
gpupdate /BootПараметр /Sync указывает, что следующее применение политики должно выполняться синхронно. Активные применения политики происходят при перезагрузке компьютера или при входе пользователя в систему.
В PowerShell 3.0 был добавлен командлет Invoke-GPUpdate, который можно использовать для обновления политик на удаленных компьютерах. Например, следующая команда запустит удаленное обновление групповых политик на компьютере msk-PC-1-22:
Invoke-GPUpdate -Computer msk-PC-1-22 -Force
Вы можете удаленно запустить принудительное обновление политик на всех компьютерах в указанном OU Active Directory с помощью команд:
В данной статье мы покажем простой способ удаленного обновления групповых политик на клиентах (компьютерах и серверах) домена Active Directory, без необходимости доступа к консоли удаленной машине и без использования команды gpupdate.
Одной из самых сложных проблем в управлении групповыми политиками AD является — тестирование политик «на лету», без перезагрузки компьютера или доступа к локальному компьютеру и запуску команды gpupdate /force.
Функция Remote Group Policy Update предоставляет возможность использовать одну консоль управления GPO (GPMC.msc) как для создания, изменения, так и применения и тестирования групповых политик.
Функционал удаленного обновления групповых политик впервые появился в Microsoft Windows Server 2012, во всех последующих версия (Windows Server 2016, Microsoft Windows 10), этот функционал и его стабильность постепенно улучшался.
Требования для работы Remote Group Policy Update:
Требования к серверному окружению:
Требования к клиентам:
Требования к сетевому взаимодействию (файерволам) между сервером и клиентами
В том случае, если ваше окружение соответствует данным требованиям, откройте консоль управления групповыми политиками (GPMC.msc), выберите OU (контейнер), в котором расположены целевые компьютеры, на которых нужно принудительно обновить GPO.
Щелкните правой кнопкой мыши по нужному контейнеру и выберите пункт Group Policy Update.
В открывшемся окне появится информация о количестве объектов в данном OU, на которых будет произведено обновление GPO. Для подтверждения действия щелкните по кнопке «Yes».
В окне Remote Group Policy update results вы увидите статус выполнения обновления политик, а также статус данной операции (успех/ ошибка, код ошибки). Естественно, если какой-то компьютер выключен, или доступ к нему ограничен файерволом, появится соответствующая ошибка.
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в рунете Pyatilistnik.org. В прошлый раз мы с вами мы с вами разбирали процедуру создания центрального хранилища административных шаблонов GPO. Движемся дальше и сегодня мы рассмотрим, самую распространенную задачу связанную с групповыми политиками, а именно научимся ее обновлять локально и удаленно, я расскажу в каких ситуациях данная информация вам можете помочь. Мы рассмотрим, какие инструменты у вас есть в арсенале, и я уверяю вас, что вы явно знали не обо всех.
Для чего нужно уметь обновлять групповую политику?
Предположим, что вы внесли важные обновления настроек для ваших серверов, например для авторизации CredSSP, или закрываете какую-то дыру безопасности, логично, что в Active Directory, это делается через групповые политики. Когда у вас 5-10 серверов, то нет проблем чтобы зайти на каждый из них через удаленный рабочий стол и выполнить команду, а когда серверов сотни, тут уже нужна массовость. Еще не нужно сбрасывать со счетов ситуации, когда вы по RDP не можете зайти, через редактор политик обновить не получается, что делать, тут можно сделать все удаленно через PowerShell или командную строку, об этом то же поговорим.
Вы всегда должны уметь и иметь возможность вносить массовые изменения на ваших серверах, и применять их как можно скорее
Методы обновления GPO
Давайте составим список способов и инструментов, которые вы можете использовать:
Давайте теперь опробуем каждый из этих методов.
Как обновить GPO через командную строку
Для выполнения этого метода, вы должны зайти локально на компьютер или сервер, открыть командную строку и ввести вот такую, небольшую команду:
Ключ /force произведет принудительное обновление групповой политики. Хочу отметить, что некоторые настройки могут применяться, только после выхода из системы. Если политика показала, что успешно обновилась, но эффекта не произошло, то смотрите мою статью “Почему не применяются GPO”, придется делать траблшутинг.
Как обновить GPO через PowerShell
Оболочка PowerShell так же имеет отдельный командлет, который легко может инициировать запрос на обновление групповой политики, называется он Invoke-GPUpdate.
Invoke-GPUpdate – это командлет обновляющий параметры групповой политики, включая настройки безопасности, которые установлены на удаленных компьютерах с помощью планирования хода выполнения команды Gpupdate. Вы можете комбинировать этот командлет по сценарию, чтобы запланировать команду Gpupdate на группе компьютеров. Обновление может быть запланировано для немедленного запуска параметров политики или ожидания в течение определенного периода времени, максимум до 31 дня. Чтобы избежать нагрузки на сеть, время обновления будет смещено на случайную задержку.
Давайте запросим обновление политик GPO на моем тестовом сервере с Windows Server 2019, для этого запускаем оболочку PowerShell и вводим команду:
Invoke-GPUpdate –RandomDelayInMinutes 0
Ключ –RandomDelayInMinutes 0 установит задержку в выполнении на ноль секунд, в противном случае обновление будет выполнено рандомно, через некоторое время.
Обратите внимание, что командлет не выдает никаких результатов, если все работает нормально. В некоторых случаях ваши пользователи могут увидеть всплывающее окно командной строки с заголовком taskeng.exe, которое отображает сообщение “Политика обновления”. Через секунду окно исчезает.
Если нужно произвести обновление на удаленном компьютере, то нужно воспользоваться ключом -Computer, команда примет вот такой вид:
Invoke-GPUpdate -Computer dc01.root.pyatilistnik.org –RandomDelayInMinutes 0
Если нужно выполнить принудительно без запроса подтверждения пользователя, то укажите ключ -Force.
Еще одним преимуществом командлета PowerShell является то, что у вас есть больше возможностей в выборе машин, которые вы хотите обновить. Например, с помощью приведенной ниже команды вы должны выбрать все компьютеры, которые начинаются с “Note*”.
Если нужно выбрать все компьютеры, то ставим звездочку “*”
При желании вы можете найти все компьютеры по версиям операционных систем и сделать обновление групповых политик по данному критерию.
Не забываем, что можно ограничить поиск отдельным организационным подразделением, для этого есть ключ -Searchbase и команда примет вот такой вид:
Еще вы можете подготовить текстовый файл со списком серверов, который так же можно через цикл обработать, вот по такому принципу:
Я также добавил здесь параметр -Force, чтобы обеспечить повторное применение параметров групповой политики, даже если клиент замечает, что новые версии GPO недоступны. Таким образом, когда мы говорим о принудительном обновлении групповой политики, мы на самом деле имеем в виду две разные вещи. Без параметра Force мы просто незамедлительно инициируем обновление; если мы добавим параметр Force, мы форсируем обновление, даже если обновлять нечего. Параметр Force вступает в игру, если вы считаете, что что-то пошло не так в предыдущем обновлении объекта групповой политики.
Очень важно выполнять скрипт в системе, на которой установлен пакет RSAT, или отдельный его компонент консоль управления групповой политикой, инача вы будите получать ошибку.
Обновление групповой политики через оснастку GPMC
Начиная с операционной системы Windows Server 2012 R2, компания Microsoft расширила функционал оснастки по управлению политиками. Разработчики внедрили механизм, массового и точечного инициирования применения политик GPO к нужным объектам и заметьте через графический интерфейс. Откройте оснастку “Управление групповой политикой”, проще всего, это сделать через окно “Выполнить”, введя там там команду gpmc.msc.
Далее, что вы делаете. Находите нужную вам OU, щелкнуть правым кликом и из контекстного меню выбрать пункт “Обновление групповой политики”.
У вас появится окно “Принудительное обновление групповой политики”, в котором вы увидите количество объектов, к которым будет применено действие
На следующем экране вы увидите результат отработки команды, в первом моем примере политики успешно применилась.
При желании все результаты команды можно сохранить в CSV файле
Вот пример содержимого такого файла
на компьютерах, где таким методом была запущена процедура принудительного применения GPO, вы в логах Windows можете обнаружить событие с кодом 1704:
Политика безопасности в объектах групповой политики успешно применена.
Ошибка 8007071a “Удаленный вызов процедуры был отменен”
Иногда в консоли GPMC вы можете получать ошибку:
8007071a “Удаленный вызов процедуры был отменен”
Связана она с тем, что на удаленных компьютерах у вас брандмауэр Windows блокирует эти вызовы, чтобы это поправить я вам советую сделать разрешающую политику, подробнее читайте, как исправить ошибку 8007071a.
Обновление GPO через PSexec
Я вам очень часто рассказываю в своих примерах из моей практики, об утилите PSexec и сборнике SysInternals от Марка Руссиновича. Суть метода в том, что с помощью специальной утилиты вы сможете выполнить удаленную команду, ранее я так удаленно включал RDP на сервере или клиентской машинке.
Далее вы распаковываете архив, если он в таком виде и открываете папку с утилитами SysInternals в командной строке, напомню сделать, это можно через команду cd или через правый клик с зажатым Shift по нужной папке, выбрав пункт “Открыть окно команд”.
Обращаю внимание, что у вас должны быть соблюдены несколько требований:
Теперь выполните команду:
psexec \имя компьютера –i gpupdate
Обратите внимание, что параметр -i здесь важен. Это гарантирует, что PsExec взаимодействует с удаленным рабочим столом, что необходимо для обновления пользовательских политик. Если этот параметр не указан, будут обновлены только конфигурации компьютера, хотя ни PsExec, ни gpupdate не выдадут сообщение об ошибке. Без параметра –i gpupdate обновит пользовательские настройки, только если вы вошли в систему с одинаковой учетной записью на исходном и целевом компьютере.
В результате будет удаленный запуск утилиты gpupdate, если все хорошо, то вы получите сообщение “gpupdate exited on svt2019s01.root.pyatilistnik.org with error code 0”.
на удаленном компьютере в журналах системы вы увидите два события 1500 и 1501.
Событие 1500: Параметры групповой политики для этого компьютера обработаны успешно. Не обнаружено изменений со времени последней успешной обработки групповой политики.
Событие 1501: Параметры групповой политики для этого пользователя обработаны успешно. Не обнаружено изменений со времени последней успешной обработки групповой политики.
Так же вы можете подключиться вообще к удаленной командной строке, через команду:
psexec \имя компьютера –i cmd
Далее просто пишите gpupdate /force, обратите внимание я через команду hostname показал, что подключение идет с одного компьютера на другой.
Если компьютер не подключен к сети, вы получите следующее сообщение об ошибке:
Чтобы массово обновить групповую политику на всех компьютерах домена, воспользуйтесь знаком звездочки “*”:
Если это не помогло и выскочила ошибка, то может воспользоваться через PowerShell. В оболочке перейдите в каталог с утилитами PSTools и выполните:
Или можно из конкретного OU добавив
Другой вариант – сначала экспортировать все имена компьютеров из контейнера Active Directory в текстовый файл с помощью командлета Get-ADComputer:
Обратите внимание, что мы должны кодировать выходной файл с помощью ASCII, чтобы мы могли прочитать его содержимое из пакетного файла следующим образом:
For /f “tokens=*” %%a in (c: mpComputerList.txt) Do psexec \%%a -i gpupdate
PsExec против Invoke-GPUpdate
Основным недостатком метода PsExec является то, что он относительно медленный. Это может занять от 3 до 4 секунд на компьютер, а для компьютеров, которые не подключены к сети, это может занять еще больше времени. PsExec иногда даже зависал во время моих тестов.
Разрешение входящих подключений через порт 445 является угрозой безопасности. Компьютерные черви могут использовать этот порт, а хакеры могут делать много неприятных вещей с помощью PsExec. Открытие порта планировщика заданий для Invoke-GPUpdate также проблематично, но я думаю, что порт 445 более популярен среди программистов вредоносных программ.
Таким образом, в большинстве сценариев Invoke-GPUpdate является лучшим вариантом. Однако, если вы все равно открыли порт 445 по другим причинам и не хотите открывать порты Invoke-GPUpdate, вы можете предпочесть PsExec для принудительного обновления групповой политики.
Удаленное обновление GPO через Enter-PSSession
Еще в PowerShell есть командлет для удаленного подключения к компьютеру, называется он Enter-PSSession, его принцип работ, как у PsExec. Откройте оснастку PowerShell и введите:
Enter-PSSession -ComputerName svt2019s01
Далее вы подключитесь к удаленному компьютеру, где потом просто введите gpupdate /force.
Удаленное обновление GPO через Windows Admin Center
На этом у меня все. Я вам постарался подробно рассказать, о всех методах локального и дистанционного обновления групповых политик пользователя и компьютера на ваших компьютерах домена. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
Постановка задачи
Предположим, что вы сделали новую групповую политику и к какому-то пользовательскому компьютеру она не применилась, перед тем, как искать причину обработки GPO, вам нужно вычислить дату последнего обновления. В статье нам нужно изучить методы и инструменты, которые позволят это сделать.
Методы определения времени применения групповых политик
Как выяснить время обновления GPO через командную строку
Самый просто способ, это использование всем известной утилиты командной строки под названием Gpresult. Открываем cmd и вводим команду:
При необходимости gpresult может вывести информацию, только по пользователю или компьютеру, для этого есть ключ /scope:
или более детально отфильтровать через 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. в противном случае вы будите получать ошибку:
Чтобы иметь возможность использовать эти командлеты, установите пакет RSAT, в операционных системах Windows Server, это не нужно. Далее установите модуль GroupPolicy, через команду:
Install-WindowsFeature –Name GPMC
После его установки введите команду для просмотра доступных модулей:
Get-Command -Module GroupPolicy
В итоге я вижу:
Чтобы вычислить время последнего обновления групповых политик через командлет Get-GPResultantSetOfPolicy, выполните команду:
Get-GPResultantSetOfPolicy -ReportType HTML -Path “c:
eport.html”
Где -ReportType, это вид конечного файла, может быть и xml, -Path, это путь до конечного файла, подробнее можно почитать на https://docs.microsoft.com/en-us/powershell/module/grouppolicy/get-gpresultantsetofpolicy?view=win10-ps.
В результате вы получите отчет в виде html файла, который легко открывается через браузер. В самом верху отчета вы увидите сводку по времени последнего обновления политики для пользователя и компьютера.
Так же Get-GPResultantSetOfPolicy может получать данные и с удаленного компьютера, для этого нужно добавить ключ -Computer, в итоге команда примет вот такой вид:
Get-GPResultantSetOfPolicy -Computer dc01 -ReportType HTML -Path “c:
eport.html”
Как выяснить время обновления GPO через реестр Windows
Логично предположить, что gpresult, rsopm powershell получают все значения из реестра Windows и я вам покажу, где располагаются данные ветки. Для начала давайте посмотрим для компьютера. Для этого откройте реестр Windows и перейдите в раздел:
тут вы обнаружите 6 ключей:
Как вы можете обратить, эти данные для вас не особо читаемы, так как имеют шестнадцатиричное значение, но вы можете воспользоваться моим скриптом, который легко, это поправить.
Вы можете воспользоваться готовым скриптом по определению времени обработки политик, слева ссылка на его скачивание, а ниже его тест:
На выходе я вижу 19 ноября 2019 г. 17:25:51.
Узнаем время обновления GPO через gptime
gptime.exe – это удобная небольшая утилита предназначена для быстрого и краткого отчета о том, когда в последний раз компьютер и пользовательская групповая политика запускались в локальной или удаленной системе. Если в систему вошли более одного пользователя, инструмент сообщит о времени обработки GP для всех найденных пользователей.
Этот инструмент предоставляет время запуска и остановки для последнего цикла обработки, а также общее истекшее время, что может быть полезно. Вам необходим Для работы требуется . Net Framework 2.0, установленный на компьютере, на котором вы запускаете эту утилиту.
В командной строке перейдите в каталог с gptime.exe и запустите ее. В моем примере видно, когда были обновлены политики для компьютера, а так же для всех пользователей, чьи профили были обнаружены на компьютере.
Удаленное определение времени применения GPO
Я вам уже неоднократно рассказывал про утилиты Марка Руссиновича PSTools, а конкретнее PsExec. Утилита при наличии административных прав на целевом компьютере может запускать командную строку или оболочку PowerShell из которой уже легко делать, то что нужно. Открываем командную строку, переходим в папку с утилитой PsExec. Подключаться я буду с контроллера домена dc01 к удаленному серверу SVT2019S01. Для начала через команды hostname и whoami я виду исходные данные и, что cmd запущенна именно на исходном сервере.
PsExec64.exe \svt2019s01.root.pyatilistnik.org -u rootАдминистратор
\svt2019s01.root.pyatilistnik.org это имя моего сервера
Еще получить данные с удаленного компьютера, вы можете через командлет PowerShell Enter-PSSession. Для этого введите команду:
далее подключившись к серверу вы все так же выполняете gpresult /R.
На этом мои методы закончились, я допускаю, что существует еще огромное количество утилит, но мне достаточно и этих. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.
What is the GPUpdate command line utility on Windows?
To run the gpupdate command line utility and, subsequently, the gpupdate /force command, you will need access to a few things:
What does the gpupdate /force command do?
The gpupdate force command should not be used when a computer is experiencing technical difficulties that prevent it from processing the group policy settings. For example, if you have just changed your Active Directory password and are still waiting for it to replicate across all domain controllers in your environment, then attempting to use the Group Policy update will result in an error until replication has been completed. In this case, you would want to run gpupdate without the “force” switch so that it can process later once replication finishes successfully.
Another situation in which you should not use gpupdate /force is if there are issues where specific policies fail or cause errors, and you’re working on troubleshooting them. If you were to use gpupdate /force during this process, the switch could potentially make things worse. It is best to use the “/debug” switch in these cases instead. This will help identify where and why a policy failed on a client machine so that you can troubleshoot and fix the issue.
To recap, the gpupdate force command should ONLY be used as a last resort when trying to immediately enforce changes made to group policies after all other troubleshooting methods have been exhausted.
How to run gpupdate /force via the Command Prompt
When it’s done, you should see the text “The command completed successfully.”
How to force a gpupdate via PowerShell
Alternatively, you can use the gpupdate /force command from PowerShell. The steps are similar to running it from Command Prompt, but with a few small differences:
Similarly to Command Prompt, when the task has finished, you should see the text “The command completed successfully.”
Other syntax you can use in conjunction with gpupdate /force
There are a few other things that you can do with the gpupdate /force command line when you combine it with other GPUpdate syntax, namely: boot and wait.
Creating a timeout with the /wait parameter
Group Policy can take some time to run, but problems with an unresponsive DC or Group Policy client service may cause the process to hang. If you’re using GPUpdate in a script that needs other actions to be completed after executing it, consider creating a timeout.
So, for example, if you are updating a group policy that is taking too long, you may set a time limit on the upgrade’s completion. The command line for this would be something like “gpupdate /force /wait:180” – this tells the computer that after 180 seconds, a timeout will occur.
Using the boot parameter to force a reboot/restart
If at any point in the troubleshooting and testing process, you want to force a reboot or restart of your Group Policy clients, you can do so by combining the GPUpdate /force command with the /boot parameter.
Using gpupdate /force and the /target parameter to update specific individuals
To use the /target parameter, you’ll need to know either the name or IP address of the machine(s) that you want to target for updates.
Additional parameters of gpupdate /force
There are a few parameters that we haven’t mentioned in this article as they aren’t commonly used in conjunction with the GPUpdate /Force command, but they are still good to know if you plan to use GPUpdate.
If you need further explanation of the possible commands in your CMD, simply run: “gpupdate /help” to get more information.
Wrapping It Up
In this article, we’ve walked through the different ways that you can run gpupdate force to manage and troubleshoot your Group Policy. We’ve looked at how to run a policy update on specific machines or groups of machines, as well as how to specify when the update should take place (either immediately or after a set time limit). Finally, we took a look at some of the other less-commonly used parameters for GPUpdate. As always, if you have any questions or feedback, feel free to reach out in the comments below.
В этой статье мы покажем, как актуализировать параметры групповой политики (GPO) на компьютерах Windows в домене Active Directory: как автоматически обновлять (актуализировать) групповые политики, как использовать команду GPUpdate, как обновлять их удалённо с помощью Group Policy Management Console, GPMC.msc (консоль Управления групповой политикой) или командлет PowerShell Invoke-GPUpdate.
Как изменить интервал актуализации групповой политики?
Прежде чем новые параметры, заданные вами в локальной или доменной групповой политике (GPO), будут применены к клиентам Windows, служба клиента групповой политики должна прочитать политики и внести изменения в настройки Windows. Этот процесс называется Group Policy Update (актуализация групповой политики). Параметры GPO обновляются при загрузке компьютера, входе пользователя в систему и автоматически обновляются в фоновом режиме каждые 90 минут + случайное смещение времени 0–30 минут (это означает, что параметры политики обязательно будут применены к клиентам через 90–120 минут после обновления файлов GPO на контроллере домена).
По умолчанию контроллеры домена обновляют настройки GPO чаще: каждые 5 минут.
Включите политику и установите время (в минутах) для следующих параметров:
Обратите внимание, что частое обновление GPO приводит к увеличению трафика на контроллеры домена и приводит к увеличению нагрузки на сеть.
Использование команды GPUpdate.exe для принудительного обновления настроек GPO
Все администраторы знают команду gpupdate.exe, которая позволяет обновлять параметры групповой политики на компьютере:
Эта команда заставляет ваш компьютер читать все объекты групповой политики с контроллера домена и повторно применять все настройки. Это означает, что когда используется ключ /force, клиент подключается к контроллеру домена, чтобы получить файлы для ВСЕХ политик, нацеленных на него. Это может привести к увеличению нагрузки на вашу сеть и контроллер домена.
Команда gpudate без каких-либо параметров применяет только новые и изменённые настройки GPO.
В случае успеха появится следующее сообщение:
В русифицированной версии:
Если некоторые политики или параметры не были применены, используйте команду GPResult для диагностики проблемы и следуйте инструкциям в статье «Устранение неполадок: групповая политика (GPO) не применяется».
Вы можете обновить только настройки GPO пользователя:
или только параметры политики компьютера:
gpupdate /target:computer /force
Если некоторые политики не могут быть обновлены в фоновом режиме, gpupdate может завершить сеанс текущего пользователя:
Или перезагрузить компьютер (если изменения GPO можно применить только при загрузке Windows):
Как принудительно обновить удалённый объект групповой политики из консоли управления групповой политикой (GPMC)?
В Windows Server 2012 и новее вы можете обновлять параметры групповой политики на компьютерах домена удалённо, используя GPMC.msc (консоль управления групповой политикой).
В Windows 10 вам нужно будет установить RSAT, чтобы использовать консоль GPMC:
Add-WindowsCapability -Online -Name Rsat. GroupPolicy. Management. Tools
Затем после изменения каких-либо параметров или создания и сопряжения нового объекта групповой политики достаточно щёлкнуть правой кнопкой мыши нужное организационное подразделение (OU) в консоли управления групповыми политиками и выбрать в контекстном меню пункт Group Policy Update («Обновление групповой политики»). В новом окне вы увидите количество компьютеров, на которых будет обновлён GPO. Подтвердите принудительное обновление политик, нажав Yes («Да»).
Затем GPO будет удалённо обновляться на каждом компьютере в OU один за другим, и вы получите результат со статусом обновления групповой политики на компьютерах Succeeded/Failed («Успешно / Не удалось»).
Эта функция создаёт задачу в Планировщике задач с помощью команды «GPUpdate.exe /force» для каждого вошедшего в систему пользователя на удалённом компьютере. Задача запускается в произвольный период времени (до 10 минут), чтобы снизить нагрузку на сеть.
Чтобы функция обновления удалённого объекта групповой политики GPMC работала на клиенте, должны быть выполнены следующие условия:
Если компьютер выключен или брандмауэр блокирует к нему доступ, то рядом с именем компьютера появляется сообщение ‘The remote procedure call was canceled. Error Code 8007071a‘ («Удалённый вызов процедуры был отменен. Сообщение с кодом ошибки 8007071a»).
Фактически, эта функция работает так же, как если бы вы обновили настройки GPO вручную с помощью команды «GPUpdate /force» на каждом компьютере.
Принудительное обновление удалённой групповой политики через PowerShell
Вы также можете вызвать удалённое обновление GPO на компьютерах с помощью командлета PowerShell Invoke-GPUpdate (являющегося частью RSAT). Например, чтобы удалённо обновить параметры политики пользователя на определённом компьютере, вы можете использовать следующую команду:
Если вы запустите командлет Invoke-GPUpdate без каких-либо параметров, он обновит настройки GPO на текущем компьютере (как и gpudate.exe).
Вместе с командлетом Get-ADComputer вы можете обновить объект групповой политики на всех компьютерах в определённом подразделении:
или на всех компьютерах, отвечающих определенным требованиям (например, на всех хостах Windows Server в домене):
Вы можете установить случайное смещение для обновления GPO с помощью -RandomDelayInMinutes. Благодаря этой опции вы можете снизить нагрузку на сеть, если обновляете параметр групповой политики одновременно на нескольких компьютерах. Для немедленного применения параметров групповой политики на всех компьютерах используется параметр -RandomDelayInMinutes 0.
Команда Invoke-GPUpdate возвращает следующую ошибку для недоступных компьютеров:
Invoke-GPUpdate: Computer “frparsrv12” is not responding. The target computer is either turned off or Remote Scheduled Tasks Management Firewall rules are disabled.
Если вы запустите командлет Invoke-GPUpdate удаленно или обновите объект групповой политики из консоли управления групповыми политиками, на рабочем столе пользователя на короткое время может появиться окно консоли с запущенной командой gpupdate.