(This article was originally written way back in the early 2000s. I’ve finally gotten around to updating it for the modern era 😊)
Group Policy leverages a complex and sometimes inconsistent model when it comes to storing the settings that you specify within a Group Policy Object (GPO). This is probably owing to the fact that, while there was a central group at Microsoft is responsible for the Group Policy infrastructure, each product area that has policy settings (e.g. Security, IE, desktop) was responsible for implementing its own policy tools to leverage that infrastructure. As a result, policy settings for a given policy area may be scattered between file system storage and AD-based storage. To better understand this, let’s take a quick look at how Group Policy Objects are structured.
Group Policy Structure
A GPO is composed of two pieces. When you create a new GPO, an AD object of class groupPolicyContainer gets created under the System\Policies container within your AD domain, as Figure 1 shows.
Figure 1: Viewing the AD portion of a GPO using ADSIEdit
This AD portion of a GPO is called the Group Policy Container, or GPC. As you can see in Figure 1, Windows refers to GPOs by a unique GUID (i.e. the 128-bit identifier shown in braces) rather than by its “friendly” name, which is the name you assign to it when you first create the GPO. The implication here is that you can have many GPOs within a domain that are named with the same friendly name, but they will always be unique because their GUIDs are unique (except for the built-in Default Domain Policy and Default Domain Controller Policy GPOs, which have the same well-known GUIDs in every AD installation). In addition to the GPC, a new GPO creates a set of file folders and files within the SYSVOL share of the DC you’re focused during the creation process (by default this is usually the PDC role-holder DC within your domain). These folders and files are created under the Policies folder within SYSVOL.
Similar to the GPC, when you create a new GPO, a GUID-named folder is created under the Policies folder within SYSVOL, as shown in Figure 2.
Figure 2: Viewing the SYSVOL portion of a GPO
This portion of a GPO that is stored as folders and files in SYSVOL is referred to as the Group Policy Template, or GPT. The GPT is where the majority of GPO settings are stored when you edit a GPO. That is, there are set of folders and files that get created under each GUID-named folder that store the policies that you enable within a GPO. However, while most policy settings are stored in the GPT, some policy areas store their settings in both the GPC and GPT, while still others use only the GPC and even others that don’t use either the GPC or GPT. While this may seem confusing, keep in mind that it is the responsibility of the author of each policy extension (e.g. Administrative Templates, Folder Redirection, Software Installation) to decide on where to store their settings, and there is no standard for either location or format of settings storage. Over the years, Microsoft has coalesced on using the registry.pol file more and more, rather than building new storage models. While the preferred location is the GPT, there may be good reasons an extension author might choose to put their data elsewhere. Let’s look at the default locations for the Microsoft extensions that come with Windows. Table 1 provides a complete list of where settings are stored for each of the standard extensions that ship with current versions of Windows (Windows 10 and Server 2016 as of this writing).
Table 1: Group Policy Storage Locations
Group Policy Extension |
Storage Location |
Comments |
Administrative Template Policy |
Stored in SYSVOL, under the GPT container for a given GPO. Admin |
As you will see in this table, many policy areas overload registry.pol to store their settings—so it is no longer |
Advanced Audit Policy Configuration |
Stored in SYSVOL, in the GPT container for a given GPO under Machine\Microsoft\Windows NT\Audit, |
|
Application Control Policies (AppLocker) |
Uses registry.pol |
|
Deployed Printers |
Stored in AD (GPC) under either the Machine or User container. |
|
Disk Quota |
Stored in SYSVOL, under the GPT container for a given GPO. Disk |
|
Folder Redirection |
Stored in SYVOL, under the GPT container for a given GPO. FR |
Fdeploy.ini is only used for backwards compatibility to XP and |
Group Policy Preferences- Environment |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences- Files |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences- Folders |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences- Ini Files |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences- Registry |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences- Network Shares |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences- Shortcuts |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences- Data Sources |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences- Devices |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences- Folder Options |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences- Local Users and Groups |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences- Network Options |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences- Power Options |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences – Printers |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences – Scheduled Tasks |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences – Services |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences – Drive Maps |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences – Internet Settings |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences- Regional Options |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences- Start Menu |
Stored in Sysvol, under the GPT |
|
Group Policy Preferences- Devices |
IE Maintenance settings were stored in SYSVOL under the GPT |
IE Maintenance policy has been deprecated by Microsoft |
IP Security |
IP Sec policy is a special case—settings are stored as special |
|
Name Resolution Policy |
Uses registry.pol |
|
Policy-based QoS |
Uses registry.pol |
|
Public Key Policy |
Uses registry.pol to store settings under either the Machine or User folder in the GPT |
|
QoS Packet Scheduler |
Stored in SYSVOL, under the GPT container for a given GPO. QoS |
|
Security Settings |
Stored in SYSVOL under the GPT container for a given GPO. |
The format of this file is identical to those created when you |
Software Installation |
Stored in both the GPC and GPT. Within the GPT, deployed package |
packageRegistration objects found in the GPC |
Software Restriction Policy |
Uses registry.pol |
|
Startup/Shutdown & Logon/Logoff Scripts |
Stored in SYSVOL under the GPT container for a given GPO. |
Note that script files themselves do not have to be stored in |
Windows Firewall with Advanced Security |
Stored under the Machine folder in SYSVOL, in registry.pol |
|
Wired (IEEE 802.3) Policies |
Stored in AD (GPC) within the path CN=IEEE8023,CN=Windows,CN=Microsoft,CN=Machine |
Wired policies are stored under the container specified, as |
Wireless (IEEE 802.11 Policies) |
Stored in AD (GPC) within the path: CN=wireless,CN=Windows, |
Wireless policies are stored in AD (GPC) as objects of class |