gpsvc.log C:\Windows\debug\usermode\gpsvc.log
gpsvc.log: detailed debug log of the Group Policy client, absent until the GPSvcDebugLevel value is created in the Registry.
What it’s for
gpsvc.log is the finest trace of Group Policy processing, with the detail of every client-side extension (Registry, scripts, security, preferences). Use it when the Group Policy Operational log does not explain why a setting is not applied. It replaces userenv.log, which was used before Windows Vista.
The file does not exist by default. It appears once the DWORD value GPSvcDebugLevel = 0x30002 is created under HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Diagnostics (create the Diagnostics key if it is missing). It takes effect at the next policy processing, for example after gpupdate /force.
What it contains
Lines carry the GPSVC(pid.tid) prefix and a precise time, then the function and the message: domain controller discovery, GPT.INI read, list of accepted or filtered GPOs, processing of each extension, Win32 error codes.
Risks and best practices
- Turn it on only long enough to reproduce the problem, then delete the
GPSvcDebugLevelvalue: verbose logging slows processing and makes the file grow. - The log mixes computer and user processing. Note the time before running
gpupdate /forceso you can find your run. - It names GPOs, accounts and shares: review it before sending it to a third party.
Useful commands
:: As administrator: turn on verbose loggingreg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Diagnostics" /v GPSvcDebugLevel /t REG_DWORD /d 0x30002 /f
:: Replay the processinggpupdate /force
:: As administrator: turn it off afterwardsreg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Diagnostics" /v GPSvcDebugLevel /f# End of the log and error linesGet-Content "$env:windir\debug\usermode\gpsvc.log" -Tail 80Select-String -Path "$env:windir\debug\usermode\gpsvc.log" -Pattern 'error|failed|0x8007' | Select-Object -Last 30Format
Text file. Each line starts with GPSVC(process ID.thread ID) followed by the time (hh:mm:ss:ms), then the function and the message.
Rotation and archiving
Microsoft documents nothing about rotation for this file. Copy it before turning logging off if you need to analyze it later.
How to read it
Find the time of your gpupdate, then follow the processing: domain controller found, GPT.INI read, GPOs listed, extensions run. Go back to the first error line and translate the code (net helpmsg <decimal number>). A failure to read GPT.INI points at SYSVOL, a filtered GPO at its permissions or WMI filter.