Skip to contentGo to the directory tree
FileRisk: Do not touch
  • Windows Server

GPT.INI C:\Windows\SYSVOL\domain\Policies\{GUID}\GPT.INI

GPT.INI: the INI file at the root of a GPO in SYSVOL; its Version line, compared with Active Directory, tells clients whether the GPO has changed.

Updated on By AltF4 Formation

What it’s for

The Group Policy client service reads GPT.INI to get the GPO’s version number on the SYSVOL side, and compares it with the versionNumber attribute of the GPO container in Active Directory. A version equal to the one already applied avoids reprocessing the GPO. The two numbers must stay in sync, and a gap between them is a classic sign of replication trouble.

What it contains

[General]
Version=65537
displayName=Default Domain Policy

Version is a 32-bit integer. The high 16 bits count changes to the user part, the low 16 bits those to the computer part. For example, 65537 is 0x00010001, meaning version 1 for the user and 1 for the computer. Each save in the console increments the matching counter. displayName repeats the GPO name; depending on the GPO, other lines can appear.

Risks and best practices

  • Do not edit it to “force” a GPO: without the same number on the Active Directory side, the console reports mismatched versions. Change the GPO through the console, which increments both.
  • If versions diverge after a change, look at DFSR and Active Directory replication between domain controllers before touching the file.
  • A GPT.INI that a client cannot read (permissions or unreachable SYSVOL) shows up as event 1058 from the Group Policy source in the System log.

Useful commands

Fenêtre de terminal
# GPT.INI content (example: Default Domain Policy)
$guid = '{31B2F340-016D-11D2-945F-00C04FB984F9}'
Get-Content "$env:windir\SYSVOL\domain\Policies\$guid\GPT.INI"
# Split the version: low word = computer, high word = user
$v = 65537
'Computer: {0} User: {1}' -f ($v -band 0xFFFF), ($v -shr 16)
# Active Directory and SYSVOL versions as the console sees them
Get-GPO -Guid $guid.Trim('{}') | Select-Object @{n='Computer AD';e={$_.Computer.DSVersion}}, @{n='Computer SYSVOL';e={$_.Computer.SysvolVersion}}, @{n='User AD';e={$_.User.DSVersion}}, @{n='User SYSVOL';e={$_.User.SysvolVersion}}

Report a mistake