Group Policy Troubleshooting Cheat Sheet

Group Policy troubleshooting reference: gpupdate and gpresult syntax, processing order, security filtering traps, the event IDs that explain a failure and where the files live.

Start here

What actually applied to this machine
gpresult /r /scope:computer
A readable report to send on
gpresult /h rsop.html /f
Re-apply now
gpupdate /force
Which GPO won, and why
Precedence in the HTML report
Policy applies but slowly
Events 8000 and 8001
Nothing applies at all
Events 1058, 1030, 1129
Two different failures. Either the client cannot read the policy, which is a network, DNS or SYSVOL problem, or it read it and decided the policy does not apply, which is filtering and precedence. The event log tells you which of the two you have.

gpupdate and gpresult

TaskCommand
Apply changed settingsgpupdate
Re-apply everything, changed or notgpupdate /force
Computer settings onlygpupdate /target:computer /force
Settings that need a reboot or a logoffgpupdate /force /boot or /logoff
Wait longer than the default 600 secondsgpupdate /force /wait:1800
Make the next boot or logon apply policy synchronouslygpupdate /target:computer /sync – the fix for folder redirection, drive maps and software installation that never land. /force and /wait are ignored with /sync
Summary of what appliedgpresult /r
Computer scope, needs elevationgpresult /r /scope:computer
Full HTML reportgpresult /h C:\temp\rsop.html /f
Another machine and usergpresult /s PC01 /user DOM\jdoe /h C:\temp\pc01.html /f
Verbose text, every settinggpresult /z
PowerShell equivalentGet-GPResultantSetOfPolicy -ReportType Html -Path C:\temp\rsop.html
Remote update across an OUInvoke-GPUpdate -Computer PC01 -Force
gpresult without elevation hides half the answer. A normal console returns user policy only and silently omits the computer scope, which is usually the half you are looking for.

Processing order

StepApplied
1Local policy on the machine
2Site
3Domain
4Organisational units, outermost first
5The OU closest to the object, which normally wins
ModifierEffect
EnforcedReverses the order: this GPO beats anything closer to the object
Block InheritanceStops inherited GPOs, except Enforced ones
Link order on one containerLowest number wins, it is processed last
Loopback, MergeUser settings from the computer’s GPOs are added, and win
Loopback, ReplaceOnly the computer’s user settings apply, the user’s own are ignored
Disabled linkNot processed at all, and easy to miss in GPMC
Loopback explains most “it works at my desk” tickets. On terminal servers and kiosks it is usually already on, so the user’s own GPOs never get a chance. Check the computer’s GPOs, not the user’s.

Filtering

MechanismWhat it needs
Security filteringThe target needs both Read and Apply group policy
Removing Authenticated UsersAdd the computer account back with Read, or the GPO silently stops applying
Delegation tabWhere the real permissions live, the filtering box is a summary
WMI filterEvaluated on the client, per computer, and costs time on every refresh
Item-level targetingPreferences only, evaluated per item rather than per GPO
Disabled half of a GPOComputer or user section switched off in the GPO’s own settings
The MS16-072 trap. Since that update, user GPOs are read in the computer’s context. Any GPO where Authenticated Users was removed from Read stops applying, and the classic symptom is mapped drives and printers disappearing for everyone at once. Grant the computer accounts, or Authenticated Users, Read without Apply.

Events worth knowing

IDMeaning
1058Cannot read gpt.ini. SYSVOL access, DFS or permissions.
1030Failed to query the list of GPOs, usually the same root cause as 1058
1129No network at boot, policy processing was skipped
1085One client-side extension failed, the rest still applied
1500 / 1501Computer / user policy processed, nothing changed since the last run
1502 / 1503Computer / user policy processed, new or changed settings applied
1096 / 7016Registry.pol could not be read or applied, often corrupt local state
7017A system call made by the Group Policy service failed
4016 / 5016 / 6016Extension started, finished, or failed, with a duration
8000 / 8001Computer and user processing complete, with total time in ms
5312The list of GPOs that were actually applied
5313The list that was filtered out, and why
5312 and 5313 are the fastest answer in the whole stack. One says what applied, the other says what did not and which filter stopped it. Both live in Microsoft-Windows-GroupPolicy/Operational.

Where it lives

ItemPath
GPO files on the domain\\domain\SYSVOL\domain\Policies\{GUID}
Version stamp compared against ADgpt.ini inside that folder
The settings themselvesMachine\Registry.pol and User\Registry.pol
Local policy on the clientC:\Windows\System32\GroupPolicy
Per-user local policyC:\Windows\System32\GroupPolicyUsers
Operational logMicrosoft-Windows-GroupPolicy/Operational
Verbose service log, after enabling it%windir%\debug\usermode\gpsvc.log
Management consolegpmc.msc, local editor gpedit.msc
TaskCommand
All GPOs in the domainGet-GPO -All | Select DisplayName,ModificationTime
Export one GPO as a reportGet-GPOReport -Name "Drive Maps" -ReportType Html -Path C:\temp\gpo.html
What is linked to an OU, and is inheritance blockedGet-GPInheritance -Target "OU=Workstations,DC=corp,DC=local"
Back up every GPOBackup-GPO -All -Path D:\gpo-backup
Find a setting across all GPOsGet-GPOReport -All -ReportType Xml | Select-String "ScreenSaveTimeOut"

Slow logon and refresh

QuestionWhere to look
How long did policy takeEvents 8000 and 8001, the duration is in the message
Which extension was slowEvents 4016 and 5016 pairs, one per extension
Slow boot or slow logon overallMicrosoft-Windows-Diagnostics-Performance/Operational, ID 100 for the boot summary (MainPathBootTime plus BootPostBootTime), 101 to 110 for the application, driver or service that caused the delay
Drive maps and printers are the usual suspectsPreferences run per item, over the network, at every refresh
Refresh interval90 minutes plus a random offset up to 30, and at every boot or logon
Settings that never refresh in the backgroundFolder redirection and software installation, they need a logon or boot

Recipes

TaskHow
A setting is not applying, start to finishgpresult /h on the client, read Applied and Denied, then check filtering and precedence in GPMC
Prove it is not the clientRun gpresult /r /scope:computer on a second machine in the same OU
Confirm SYSVOL is readableOpen \\domain\SYSVOL\domain\Policies from the client, as the client’s own account
Check the version stamp matchesCompare gpt.ini with the GPO’s version in GPMC. A gap means replication.
Chase a replication gaprepadmin /replsummary and dcdiag /test:sysvolcheck
Turn on verbose loggingSet GPSvcDebugLevel to 0x30002 under HKLM Diagnostics, create %windir%\debug\usermode, then reproduce
Reset a client that refuses everythingRename C:\Windows\System32\GroupPolicy, reboot, then gpupdate /force
Roll a GPO backRestore-GPO -Name "Drive Maps" -Path D:\gpo-backup
Renaming the GroupPolicy folder is not free. It discards local policy and every cached setting, and on a machine that also uses local security policy you will lose that configuration. Back the folder up rather than deleting it, and never do it on a domain controller.

FAQ

gpupdate /force says everything succeeded, but the setting is still missing.
Success means the client processed the GPOs that apply to it. If yours is not among them, nothing failed. Read event 5313 or the Denied section of gpresult /h, which names the filter that excluded it.
The GPO applies to some machines and not others in the same OU.
Look for a WMI filter, a disabled link, or a second GPO with higher precedence setting the same value back. On a mixed estate the WMI filter is the common answer, because it silently evaluates false on an OS version you did not test.
Do I still need gpupdate /force, or is plain gpupdate enough?
Plain gpupdate applies only what changed, which is what you want in production. /force re-applies everything and is for troubleshooting, because it also rewrites settings a local admin changed by hand.
Why did drive maps stop working for everyone after a patch?
Almost certainly MS16-072. User GPOs are now read in the computer’s security context, so any GPO where Authenticated Users lost Read stops applying. Restore Read for Authenticated Users or add the computer accounts.
Is rsop.msc still useful?
It shows the resultant set but not the reasons, and it has been unreliable for years. gpresult /h produces the same data plus precedence and denial reasons, in a file you can attach to a ticket.