gpupdate та gpresult: як застосовувати GPO і розслідувати, чому вони не спрацьовують
- Команди запускаються на клієнтській машині, на яку ви хочете застосувати або перевірити політику, а не на контролері домену.
gpresultбез прав адміна показує лише обмежений звіт (тільки користувацькі політики). Для повної картини (Computer + User) — запускайте з-під адміна.- Віддалений запуск (
/s HOSTNAME) працює, якщо у мережі відкриті порти WMI/RPC і ви маєте права на цільовій машині.
Як GPO взагалі застосовується — щоб потім розуміти, що ми діагностуємо
GPO на клієнті оновлюються:
- При завантаженні комп'ютера — Computer Configuration.
- При вході користувача — User Configuration.
- Фоново, кожні 90-120 хвилин (90 мінут + random до 30 мінут) — обидві конфігурації.
- Примусово командою
gpupdate /force.
Частина політик не застосовується фоново — тільки при reboot/logon. Це: Software Installation, Folder Redirection, Scripts (startup/shutdown/logon/logoff), Drive Maps (частково). Тому якщо міняєте такі налаштування — gpupdate /force недостатньо, потрібен перезапуск сеансу чи системи.
gpupdate — застосування політик
Базовий синтаксис:
gpupdate [/Target:{Computer|User}] [/Force] [/Wait:N] [/Logoff] [/Boot] [/Sync]
Найкорисніші варіанти:
gpupdate
Оновить тільки те, що змінилося у GPO з моменту останнього застосування. Швидко (кілька секунд), безпечно.
gpupdate /force
Перечитати й застосувати усі GPO з нуля, навіть незмінені. Займає довше (20-60 секунд на машині з багатьма політиками). Використовуйте коли є підозра, що дефолтна оптимізація «пропускає» щось важливе.
gpupdate /target:computer /force
Обновити тільки Computer Configuration. Корисно коли зміни стосуються параметрів ОС (firewall, services, security), а у користувача нічого не чіпали.
gpupdate /target:user /force
Аналогічно, тільки User Configuration. Без перепризначення комп'ютерних політик.
gpupdate /force /logoff
Застосувати GPO і відразу вилогінитись. Потрібно, коли зміна стосується політик, що працюють тільки при logon (наприклад Folder Redirection).
gpupdate /force /boot
Застосувати GPO і перезавантажити комп'ютер. Потрібно для Software Installation, Scripts startup, деяких security-параметрів.
gpupdate /sync
Переключити оновлення в synchronous mode на наступний logon — клієнт чекатиме повного застосування GPO перш ніж покаже desktop. Важливо, коли політики конфліктують у паралельному застосуванні. Ефект лише одноразовий на наступний вхід.
gpresult — звіти про стан
Синтаксис:
gpresult [/s HOSTNAME] [/scope:{user|computer}] [/user USERNAME] [/r | /v | /z | /h file.html | /x file.xml]
Формати виводу:
/r— короткий (resultant set) у консоль. Для швидкої перевірки./v— verbose, з детальними параметрами кожної GPO./z— super-verbose, з усіма реєстровими значеннями і правами. Сотні-тисячі рядків./h file.html— красивий HTML-звіт. Найзручніше для діагностики, відкривається у браузері./x file.xml— XML-звіт, для автоматичної обробки.
Scope:
/scope:user— тільки користувацькі політики./scope:computer— тільки комп'ютерні.- Без ключа — обидва.
Сценарій 1. Поміняли GPO на контролері, треба застосувати зараз
Задача: додали у GPO «Corporate Firewall Settings» нове правило для відкриття порту 8080. Користувач-IT намагається приєднатися до вашого додатку, але фаєрвол блокує. Треба застосувати зміну негайно.
На клієнтській машині (від адміна):
gpupdate /force
Якщо зміна була у Computer Configuration (фаєрвол — саме там) — після завершення все вже працює. Без перезавантаження.
Якщо після цього нове правило все одно не з'являється у фаєрволі — переходимо до діагностики через gpresult (див. Сценарій 2).
Сценарій 2. «У мене не мапиться мережевий диск» — читаємо RSoP
Задача: Іванов зі сбуту каже, що у нього при вході не з'являється диск Z: з загальною папкою відділу. У GPMC бачите політику «Sales Drive Mapping» яка лінкована до OU «Sales» і начебто має спрацювати.
Йдемо на машину Іванова, від імені Іванова (не адміна, бо хочемо юзерські політики саме його) або з адмінськими правами вказуємо /user:
gpresult /h C:\Temp\ivanov-rsop.html /user DOMAIN\ivanov /f
/f — перезаписати існуючий файл без питань. Відкриваємо HTML у браузері. У звіті шукаємо:
- Розділ «Applied GPOs» — чи є там «Sales Drive Mapping»?
- Розділ «Denied GPOs» — якщо «Sales Drive Mapping» тут, поруч буде причина:
- «Access Denied (Security Filtering)» — Іванов не в security-групі, на яку лінкована політика.
- «Denied (WMI Filter)» — WMI-фільтр не повернув true для машини (наприклад фільтр «OS version = Windows 10», а у Іванова Windows 11).
- «Denied (Empty)» — політика порожня, нічого не містить.
- «Denied (Disabled Link)» — лінк політики в GPMC вимкнений.
- «Denied (Not applicable)» — Computer-політика прийшла на User-scope чи навпаки.
- Розділ «OU Structure» — чи справді об'єкт Іванова у правильному OU «Sales»?
У 90% випадків одна з цих причин пояснить, чому диск не мапиться.
gpresult /h робить справді красивий звіт з collapse-секціями. Надсилайте його клієнту чи колезі як додаток до тікета — видно всю картину одразу.
Сценарій 3. GPO начебто застосувалось, але зміни не видно
Задача: редагували GPO «Desktop Wallpaper» на контролері, gpupdate /force на клієнті пройшов без помилок, у gpresult /r політика показана як Applied. Але шпалери не змінились.
Типові причини в порядку частоти:
- Політика типу «on logon», а користувач не вилогінювався. Вирішення:
gpupdate /force /logoff. - Tattooing — старе значення вже записано у реєстр ключем, який політика зараз не чіпає. Класика: ви прибрали параметр з GPO, очікуєте що «повернеться дефолт», а воно залишається. У таких випадках GPO треба не видаляти, а перевизначати у зворотному напрямку.
- Конфлікт двох GPO — одна каже «А», інша «Б», перемагає та, що вища у Link Order.
gpresult /hпокаже обидві, з позначкою яка взяла гору. - Local Group Policy — на клієнтській машині хтось вручну виставив параметр у
gpedit.msc, він перекриває доменну GPO. Ключова підказка в звіті: розділ «Computer/User Local Group Policy» з активним параметром.
Сценарій 4. Перевірити GPO на віддаленому комп'ютері, не ходячи туди
Задача: клієнт пише з-за міста, у корпоративному лептопі щось не так з безпекою. Треба подивитись його RSoP, але ви в іншому місті і RDP-сесію відкривати довго (і користувач усе одно працює).
gpresult /s REMOTE-LAPTOP01 /scope:computer /h C:\Temp\remote.html /f
Для користувацької частини:
gpresult /s REMOTE-LAPTOP01 /user DOMAIN\username /scope:user /h C:\Temp\remote-user.html /f
Потребує:
- Ваш обліковий запис має бути адміном на REMOTE-LAPTOP01 (або у Domain Admins).
- WMI/RPC порти (135, 445, динамічні) відкриті у фаєрволі до цієї машини.
- Машина онлайн, не в Sleep.
Якщо /s падає з помилкою «RPC unavailable» — найімовірніше Windows Firewall блокує вхідний WMI. На цільовій машині вмикається правилом «Windows Management Instrumentation (WMI-In)», зазвичай керується GPO. Іронія: щоб дізнатись, чому GPO не приходить, треба щоб GPO уже прийшов раніше.
Сценарій 5. Loopback processing — плутанина user/computer
Задача: на terminal-сервері треба, щоб при вході будь-якого користувача користувацькі політики бралися не з його «рідної» OU, а з OU самого сервера. Це і є Loopback Processing.
Перевіряємо, чи ввімкнений loopback на клієнті:
gpresult /scope:computer /v | findstr /i "loopback"
Якщо показує «User Group Policy Loopback Processing Mode: Enabled (Replace/Merge)» — loopback увімкнений.
Тоді при наступному gpresult /scope:user ви побачите дивне: у User Applied GPOs — політики з OU сервера, а не юзерського. Це НЕ помилка, а правильна поведінка loopback. Але якщо не знати — можна годинами гадати «чому юзеру прийшли шпалери з серверної OU».
Сценарій 6. Скриптити gpresult для аудиту
Задача: перед великою міграцією хочете зафіксувати стан GPO на 50 машинах відділу бухгалтерії. Потім після міграції порівняти.
Скрипт PowerShell, який обходить список хостів:
$hosts = Get-Content C:\Temp\buh-hosts.txt
foreach ($h in $hosts) {
$out = "C:\Temp\gpo-audit\$h.xml"
gpresult /s $h /scope:computer /x $out /f 2>&1 | Out-Null
Write-Host "[$(Get-Date -Format HH:mm:ss)] $h -> $out"
}
Результат — 50 XML-файлів з повними RSoP, які можна порівнювати через Compare-Object або просто diff-ом.
Типові пастки
/force тригерить багато IOНа машинах з 30+ лінкованими GPO gpupdate /force — це 30-60 секунд CPU+disk+network. Масовий запуск через psexec на 100 машинах одночасно може просадити навантаження на DC (де лежать SYSVOL) та на клієнтів. Для масового оновлення — розтягніть у часі або запускайте без /force (звичайний gpupdate обновлює лише змінене, зазвичай цього достатньо).
gpresult показує політики, які успішно обробились, а не ті, що візуально змінили щось. Якщо GPO порожня чи зайвий параметр — вона все одно буде в Applied. Для реальної перевірки ефекту: дивіться значення у реєстрі, службах, файловій системі.
gpresultНа свіжо-перенесених машинах gpresult іноді показує попередній домен, поки не буде reboot. Вирішується gpupdate /force + повторний логін або перезавантаження. Ще надійніше — rsop.msc (MMC snap-in), який дивиться в реальному часі.
Якщо gpupdate закінчився з «User policy could not be updated successfully» — точну причину шукайте у Event Viewer: Applications and Services Logs → Microsoft → Windows → GroupPolicy → Operational. Там буде Event ID і конкретна SID/GUID політики, яка впала.
Чеклист діагностики «GPO не працює»
- Перевірити, що на клієнті пройшов
gpupdate /forceбез помилок. - Згенерувати
gpresult /h report.html /f, відкрити, подивитися Applied/Denied. - Якщо «Denied (Security Filtering)» — перевірити членство у групі (
whoami /groupsна клієнті, абоGet-ADPrincipalGroupMembership). - Якщо «Denied (WMI Filter)» — відкрити WMI-фільтр у GPMC, виконати його запит локально через
wbemtestабо PowerShell. - Якщо GPO в Applied, але ефекту нема — звірити реальне значення у реєстрі / службі з очікуваним.
- Якщо нічого не допомагає — Event Viewer → GroupPolicy → Operational. Зазвичай у останні 10 записів є відповідь.
- Для User Configuration політик, що діють при вході —
gpupdate /force /logoff. - Для Computer Configuration типу Software Install —
gpupdate /force /boot.
Пов'язане
- ← Назад до Атласу команд Windows — 28 команд для сисадміна.
- robocopy: повний посібник — суміжна тема для міграцій файл-серверів, де GPO часто визначає права.
- diskpart: повний посібник — коли міграція починається з підготовки нового диска.
- Active Directory: розслідування (готується цикл) — глибший розбір GPO-troubleshooting, RSoP, replication, OU design.
gpupdate і gpresult — пара, якої в активному арсеналі AD-адміна має бути більше, ніж GPMC. GUI красивий, але під час інциденту треба факти з клієнта, а не «теоретично має працювати, бо у редакторі видно що лінковано». Клієнт знає правду — саме вона видається цими двома командами.