Отладочный журнал обработки GPO на клиентах — gpsvc.log

В Windows 7 (и выше), разработчики Microsoft решили отказаться от использования файла Userenv.log в качестве основного инструмента отладки применения GPO. Большинство событий, относящихся к процессу применения GPO теперь доступны в журнале событий Event Viewer (eventvwr) в разделе Applications and Services Logs –> Microsoft -> Windows -> Applications and Services Logs -> Group Policy -> Operational

События Group Policy

Совет. Например, события с Event ID 4016 и 5016 помогут найти соответственно момент начала и завершения обработки GPO. В последнем событии указывается как долго применялась эта политика. В событии 5312 содержится список политик, которые будут применены, а в событии 5317 отфильтрованные политики.

Однако, события, содержащиеся в этом журнале не настолько подробны, как лог Userenv.log в Windows XP.

Аналогичный отладочный журнал службы Group Policy Client Service (GPSVC) можно включить и в Windows 7+. Эта недокументированная возможность включения ведения расширенного лога применения GPO также работает в Windows 8, 10 и Windows Server 2008/2012.

Включить ведение журнала GPO можно через реестр, создав в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Diagnostics ключ Dword с именем GPSvcDebugLevel и значением 00030002. (Возможно, ветку Diagnostics придется создать вручную).

GPSvcDebugLevel

Примечание. Параметр можно создать такой командой:

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Diagnostics" /v GPSvcDebugLevel /t REG_DWORD /d 0x00030002 /f

Обновите политики командой gpupdate /force (или перезагрузите компьютер, если нужно выполнить отладку политик, применяемых при загрузке).

После перезагрузки служба Group Policy Client будет записывать расширенную отладочную информацию в файл gpsvc.log (WINDIR%\debug\usermode\gpsvc.log)

В качестве примере кусок содержимого лога gpsvc.log:

 gpsvc.log
..........
GPSVC(3a8.ce8) 09:14:50:494 MaxTimeToWaitForNetwork: 120000ms
GPSVC(3a8.ce8) 09:14:50:494 TimeRemainingToWaitForNetwork: 0ms
GPSVC(3a8.ce8) 09:14:50:494 UserPolicy: Waiting for machine policy wait for network event with timeout 0 ms
GPSVC(3a8.ce8) 09:14:50:541 GPLockPolicySection: Sid = (null), dwTimeout = 30000, dwFlags = 65538
GPSVC(3a8.ce8) 09:14:50:541 LockPolicySection called for user <Machine>
GPSVC(3a8.ce8) 09:14:50:541 Sync Lock Called
GPSVC(3a8.ce8) 09:14:50:541 Reader Lock got immediately. m_cReadersInLock : 1
GPSVC(3a8.ce8) 09:14:50:541 Lock taken successfully
GPSVC(3a8.ce8) 09:14:50:541 UnLockPolicySection called for user <Machine>
GPSVC(3a8.ce8) 09:14:50:541 Found the caller in the ReaderHavingLock List. Removing it...
GPSVC(3a8.ce8) 09:14:50:541 Setting lock state as notLocked
GPSVC(3a8.ce8) 09:14:50:541 UnLocked successfully
GPSVC(3a8.ce8) 09:14:50:556 Opened Existing Registry key
GPSVC(3a8.ce8) 09:14:50:556 UncPath :'\\CORP.DOMAIN.RU\SYSVOL'
............

Ручной анализ лога gpsvc.log довольно трудоемкая задача. Несколько облегчить задачу может бесплатная утилита Policy Reporter (http://www.sysprosoft.com/policyreporter.shtml), позволяющая в сгруппированном по времени древовидном виде представить журнал с логами обработки GPO.

 Policy ReporterДанные из лога gpsvc.log и результатов полученных с помощью утилиты GPResult можно использовать для детального анализа процесса применения групповых политик на клиентах.

Примечание. Чтобы отключить ведение журнала отладки, измените значение GPSvcDebugLevel на 0.