Windows · Group Policy

Group Policy Central Store

How to build and maintain the ADMX Central Store in SYSVOL so every administrator edits Group Policy from the same set of templates, instead of whatever happens to be installed on their own workstation.

Quick idea: The Central Store is a folder in SYSVOL that holds the ADMX/ADML files Group Policy tools read Administrative Templates settings from. Create it once, keep it current, and every admin’s console shows the same policy settings — skip it, and each workstation edits GPOs against whatever templates happen to be locally installed.
PolicyDefinitions

The Central Store folder itself, sitting inside SYSVOL and replicated to every domain controller.

.admx / .adml

Language-neutral policy definitions (.admx) plus per-language display strings (.adml) that render them in the console.

GPMC / gpedit.msc

The Group Policy tools that check for a Central Store automatically and prefer it over local templates when present.

What Is the Group Policy Central Store?

The Central Store is a specific folder inside SYSVOL — PolicyDefinitions — that holds a copy of every .admx and .adml file Group Policy needs to render Administrative Templates settings in the console. Once it exists, the Group Policy Management Console and the Local Group Policy Editor check for it automatically and read from it instead of the templates installed locally on whatever machine you happen to be editing from.

Think of it as a shared style guide sitting in a filing cabinet everyone has a key to, rather than every editor keeping their own copy on their desk. If one editor’s copy is a few chapters out of date, their edits drift from everyone else’s without anyone noticing until something doesn’t match.

Before Windows Vista and Windows Server 2008, Administrative Templates used the older .adm format, and each GPO stored its own copy of every .adm file inside its SYSVOL folder — the same template text duplicated across hundreds of GPOs, bloating SYSVOL and slowing replication. The .admx/.adml format that replaced it separates language-neutral policy logic (.admx) from language-specific display text (.adml), and GPOs no longer carry template copies at all; they just reference whatever templates the editing tool finds.

Important: A Central Store is not created automatically when you promote a domain controller. Until an administrator builds one, every machine used to edit Group Policy falls back to its own local C:\Windows\PolicyDefinitions folder — which is exactly the situation that lets templates drift between admins.

Why a Central Store Instead of Local ADMX Files?

Without a Central Store, Group Policy still works — the console just falls back to whatever .admx/.adml files are installed locally on the machine you’re editing from. The problem shows up over time, not immediately.

Consistency

Every admin sees the identical set of policy settings, regardless of which workstation or jump box they’re editing from.

One place to update

New OS releases and third-party products ship new ADMX files. Update the Central Store once instead of every admin workstation.

No SYSVOL bloat

GPOs reference the shared templates instead of embedding their own .adm copies, keeping SYSVOL smaller and replication lighter.

The failure mode without a Central Store is quiet rather than dramatic: one admin edits a GPO from a workstation with last year’s ADMX files and simply doesn’t see a setting that shipped in the current Windows release, because their console never offered it. Nobody gets an error — the setting is just absent from their view.

Why It Depends on Healthy SYSVOL Replication

The Central Store lives inside SYSVOL, which means its fate is tied to SYSVOL replication. On every domain still running current Windows Server versions, that replication is handled by DFS Replication (DFSR), which monitors the SYSVOL share for changes and propagates updated files to every other domain controller automatically.

That has a practical consequence: when you update the Central Store on one domain controller, admins who happen to authenticate against a DC that hasn’t finished replicating yet will briefly see the old template set. This is normal and self-resolving, not a sign the Central Store update failed — but it’s worth knowing before you assume a stale console means you did something wrong.

Key point: If new ADMX changes never seem to reach a specific site or DC, the Central Store itself is rarely the problem — check SYSVOL/DFSR replication health first, since that’s the layer actually responsible for getting the files there.

Building the Central Store

Create the Central Store by making a folder named PolicyDefinitions at this path on a domain controller, then copying ADMX/ADML files into it:

# UNC path form (what Group Policy tools look for)
\\corp.example.com\SYSVOL\corp.example.com\policies\PolicyDefinitions

# Equivalent local path when working directly on a domain controller
C:\Windows\SYSVOL\domain\Policies\PolicyDefinitions

Populate it from a Windows 10 or Windows 11 client’s C:\Windows\PolicyDefinitions folder — provided that client has current Windows Update installed, so its templates are current too — or from a separately downloaded Administrative Templates package, which extracts to C:\Program Files (x86)\Microsoft Group Policy\<version>\PolicyDefinitions. Either source gives you the .admx files plus language subfolders (en-US, and any others enabled in your environment) containing the matching .adml files.

Item Where It Lives
Central Store root\\<domain>\SYSVOL\<domain>\policies\PolicyDefinitions
.admx filesDirectly inside the PolicyDefinitions folder — one file per policy area, language-neutral.
.adml filesInside a language-code subfolder, e.g. PolicyDefinitions\en-US\.
Third-party / OS extension templatesMerged into the same PolicyDefinitions folder — Office, MDOP, and vendor GPO add-ons all ship their own .admx/.adml pairs.

Once the folder exists and is populated, no further configuration is needed — Group Policy Management Console and gpedit.msc check for a Central Store by default and use it automatically the next time Administrative Templates is opened.

Commands: Robocopy, PowerShell, and Verification

# Copy a client's local ADMX/ADML set into a version-named Central Store
# folder rather than overwriting the live one directly (see versioning below)
robocopy "C:\Windows\PolicyDefinitions" `
  "\\corp.example.com\SYSVOL\corp.example.com\Policies\PolicyDefinitions-25H2" /E /XO

# PowerShell equivalent for a straightforward recursive copy
Copy-Item -Path "C:\Windows\PolicyDefinitions\*" `
  -Destination "\\corp.example.com\SYSVOL\corp.example.com\Policies\PolicyDefinitions-25H2" `
  -Recurse -Force

# Count .admx files as a quick sanity check after copying
(Get-ChildItem -Path "\\corp.example.com\SYSVOL\corp.example.com\Policies\PolicyDefinitions-25H2" -Filter *.admx).Count

# Confirm SYSVOL/DFSR has actually replicated the change to another DC
# before assuming a stale console is a Central Store problem
dfsrdiag backlog /receivingmember:DC2 /sendingmember:DC1 `
  /rgname:"Domain System Volume" /rfname:"SYSVOL Share"
Practical note: Do the copy and rename work on a domain controller using the local path (C:\Windows\SYSVOL\domain\...) rather than the UNC path where you can — editing over the network share can hit NTFS/share permission friction that the local path avoids.

Keeping ADMX Versions Under Control

The single most common way Central Stores break is admins overwriting the live PolicyDefinitions folder in place, mixing .admx files from different Windows releases together. Individual .admx files from different OS versions are not guaranteed to be mutually compatible, and mixing them silently can produce conflicts that sit unnoticed for a long time.

The safer pattern is to never edit the production folder directly. Build the new template set in a version-named folder first, merge in any third-party or OS-extension ADMX files it needs, validate it, and only then promote it:

  1. Create a new folder named for the version you’re building, e.g. PolicyDefinitions-25H2, next to the live one — not inside it.
  2. Copy in a pristine ADMX/ADML set from a single, current source rather than layering updates onto an old copy.
  3. Merge in any third-party or OS-extension templates (Office, MDOP, vendor GPO add-ons) your environment needs.
  4. Rename the current PolicyDefinitions folder to something like PolicyDefinitions-24H2 so it’s preserved as a fallback.
  5. Rename the new folder to PolicyDefinitions, promoting it to production.
  6. Once the new set has been in use without issues, move the old version out of SYSVOL entirely rather than leaving it to accumulate.

This gives you an instant rollback — rename twice and you’re back on the previous set — without ever leaving the live Central Store in a half-mixed state while you work.

Testing tip: Before promoting a new Central Store folder, you can point the Group Policy Editor at local ADMX files instead of the Central Store by setting EnableLocalStoreOverride (REG_DWORD, value 1) under HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Group Policy on an admin workstation, then restarting the editor. Copy the candidate template set to that workstation’s local C:\Windows\PolicyDefinitions and validate it there before it ever touches SYSVOL.

Troubleshooting Cheat Sheet

Symptom Likely Cause Fix
“Namespace … is already defined as the target namespace for another file in the store” Two .admx files in the Central Store define the same namespace — usually leftover files from an older OS version mixed with newly copied ones. Rebuild the folder from a single pristine source using the versioned rename pattern instead of copying updates over the old folder.
“Resource ‘$(string.ID=…)’ referenced in attribute displayName could not be found” An .adml file doesn’t match the .admx file it belongs to — often an updated .adml copied in without its corresponding .admx, or the reverse. Copy matching .admx/.adml pairs from the same source release; don’t update one half of a pair independently.
Console still shows old settings after the Central Store was updated The domain controller this admin authenticated against hasn’t finished DFSR replication of the updated SYSVOL content yet. Check replication status with dfsrdiag backlog; wait for convergence before assuming the update failed.
New OS or third-party policy settings never appear in the console The Central Store still holds an older ADMX version that predates those settings. Build and promote a new version-named PolicyDefinitions folder with current templates.
Console reads local templates instead of the Central Store unexpectedly EnableLocalStoreOverride is still set to 1 from earlier testing on that workstation. Set the value back to 0 or remove it, then restart the Group Policy Editor.
Permission errors editing the Central Store over the network path SYSVOL share or NTFS permissions are more restrictive over the UNC path than the equivalent local path. Work directly at the local path (C:\Windows\SYSVOL\domain\...) on a domain controller instead of the UNC share.

Final Thoughts

The Central Store is one of those pieces of infrastructure that only earns attention when it’s missing or stale — most environments have one because someone built it years ago, not because anyone actively maintains it. That’s exactly how it drifts: an OS upgrade ships new policy settings, nobody updates PolicyDefinitions, and admins start editing GPOs blind to options that exist but were never surfaced.

Treat it the same way you’d treat any shared reference data — version it, don’t edit it in place, and validate a candidate copy before it goes live in SYSVOL where every admin depends on it.

Key takeaway: If Group Policy Management Console is missing settings you expect to see, check the Central Store’s ADMX version before assuming the setting doesn’t exist — and always build updates in a version-named folder, never by overwriting PolicyDefinitions directly.
Next in this series

The Central Store only controls what settings an admin can see and configure — it says nothing about whether a GPO built from those settings actually applies where it’s targeted. That’s a natural next stop: how Resultant Set of Policy and gpresult show you what a client actually received versus what was intended.