Windows OS Hub
  • Windows Server
    • Windows Server 2022
    • Windows Server 2019
    • Windows Server 2016
    • Windows Server 2012 R2
    • Windows Server 2008 R2
    • SCCM
  • Active Directory
    • Active Directory Domain Services (AD DS)
    • Group Policies
  • Windows Clients
    • Windows 11
    • Windows 10
    • Windows 8
    • Windows 7
    • Windows XP
    • MS Office
    • Outlook
  • Virtualization
    • VMWare
    • Hyper-V
    • KVM
  • PowerShell
  • Exchange
  • Cloud
    • Azure
    • Microsoft 365
    • Office 365
  • Linux
    • CentOS
    • RHEL
    • Ubuntu
  • Home
  • About

Windows OS Hub

  • Windows Server
    • Windows Server 2022
    • Windows Server 2019
    • Windows Server 2016
    • Windows Server 2012 R2
    • Windows Server 2008 R2
    • SCCM
  • Active Directory
    • Active Directory Domain Services (AD DS)
    • Group Policies
  • Windows Clients
    • Windows 11
    • Windows 10
    • Windows 8
    • Windows 7
    • Windows XP
    • MS Office
    • Outlook
  • Virtualization
    • VMWare
    • Hyper-V
    • KVM
  • PowerShell
  • Exchange
  • Cloud
    • Azure
    • Microsoft 365
    • Office 365
  • Linux
    • CentOS
    • RHEL
    • Ubuntu

 Windows OS Hub / Group Policies / Troubleshooting: Group Policy (GPO) Not Being Applied to Clients

April 19, 2023 Active DirectoryGroup Policies

Troubleshooting: Group Policy (GPO) Not Being Applied to Clients

In this GPO troubleshooting guide, I’ll try to tell you about the typical reasons why a certain Group Policy Object (GPO) might not apply to an organizational unit (OU) or a specific domain computer/user. I think this article will be useful for both novice and experienced AD Group Policy administrators to understand how Group Policies work and GPO architecture. The article describes potential problems with applying GPOs related to the policy settings at the domain level, as well as troubleshooting GPOs on Windows clients. Almost all settings described in the article are configured using the Group Policy Management Console (GPMC.msc).

Contents:
  • Managing GPO Scope
  • How to Use Group Policy Security Filtering to Apply GPOs to Selected Groups?
  • Group Policy GPO WMI Filtering
  • Disable User or Computer Settings in Group Policy Object
  • Group Policy Delegation
  • Block Inheritance and Enforcement in Group Policy Link
  • GPO Scopes and Policy Processing Order (LSDOU)
  • Managing Enabled GPO Links
  • Group Policy Loopback Processing Mode Explained
  • Use the Group Policy Modelling Wizard
  • Enable Group Policy Preferences Debug Logging
  • Troubleshooting Applied GPOs in Windows Clients

Before troubleshooting why Group Policy isn’t being applied as expected, make sure your AD infrastructure is working properly. GPOs in a domain depend on the correct functioning of domain controllers and replication between them. We recommend that you periodically check the health of your AD domain controllers using dcdiag and the replication state using PowerShell and the repadmin tool.

Managing GPO Scope

If a specific policy parameter is not applied on a client, check your GPO scope. If you configure the setting in the Computer Configuration section, your Group Policy must be linked to an OU with computer objects. The same is true if you set your parameters in the User configuration section.

To apply user settings to computers, you need to enable the GPO loopback processing mode (more on this below).

view gpo scope

Also, make sure that the object you are trying to apply your GPO to is in the right computers or users AD container (OU). You can search by domain using the ADUC (dsa.msc) console. The OU in which the object is located is specified on the Object tab.

check AD object OU in properties

It means that the target object must be located in the OU the policy is linked to (or in a nested AD container).

How to Use Group Policy Security Filtering to Apply GPOs to Selected Groups?

Check the Security Filtering settings in your policy. By default, all new GPO objects in the domain have the permissions for the Authenticated Users group enabled. This group includes all users and computers in the domain. It means the policy will be applied to all users and computers within its scope.

GPO Security Filtering - authenticated users by default

In some cases, you want a specific GPO to apply only to members of a specific domain security group (or specific users/computers). To do this, you need to remove the Authenticated Users group from the security filter and add the target group or accounts to the filter.

If you have assigned a security filter to a group, make sure the object you want is a member of that AD group.

Also, check that the group you have added to the Security Filtering has Read and Apply group policy permissions with the Allow option checked in the GPO -> Delegation -> Advanced tab.

gpo permissions - read and apply group policy

If you are using non-standard GPO security filters, check that there is no explicit prohibition on the use of GPO for target groups (Deny).

Group Policy GPO WMI Filtering

You can use special WMI filters in the GPO. This allows applying a policy to your computers based on some WMI query. For example, you can create a GPO WMI filter to apply a policy only to computers with the specific Windows version, to computers in the specific IP subnet, to laptops only, etc.

gpo wmi filtering

When using Group Policy WMI filtering, make sure that your WMI query is correct. It should select only the devices you need and your target computers are not excluded. You can test your WMI filter on any computer using PowerShell:

gwmi -Query ‘select * from Win32_OperatingSystem where Version like "10.%" and ProductType="1"‘

If the query returns any data, then the WMI filter will be applied to this computer.

gwmi - test wmi filters with powershell

Disable User or Computer Settings in Group Policy Object

As we already mentioned, each GPO has two independent sections:

  • Computer Configuration – settings applied to the computer;
  • User Configuration – user settings.

If your GPO configures only user settings or only computer settings, you can disable the unused policy section. This will reduce GPO traffic and allow you to reduce GPO processing time on clients.

Check the GPO status in the Details tab of the policy properties in GPMC.msc. Note the value in the GPO Status drop-down list.

change gpo status - disable user or computer sections

As you can see, 4 options are available:

  • All settings disabled – all policy settings are disabled (GPO won’t apply);
  • Computer configuration settings disabled – the settings only from the computer configuration of your GPO are not applied;
  • User configuration settings disabled – the settings from the user configuration section are not applied;
  • Enabled – all GPO settings are applied to the target AD objects (the default value).

Group Policy Delegation

The permissions configured for a policy are shown in the Delegation tab of the GPO. Here you can see which groups can change GPO settings and whether the policy is applied to them. You can grant privileges to manage GPO from this console or use the Active Directory Delegation Wizard in ADUC. If there is access permission “Enterprise Domain Controllers”, this policy can be replicated between Active Directory domain controllers (please note it if you have any GPOs replication issues between DCs). The permissions in the Delegation tab match the NTFS permissions assigned to the policy directory in the SYSVOL folder.

Enterprise Domain Controllers policy delegation for normal GPO replication in AD

Block Inheritance and Enforcement in Group Policy Link

Inheritance is one of the main concepts of Group Policy. By default, high-level policies are applied to all nested objects in the domain hierarchy. However, an administrator can block the application of all inherited policies to the specific OU. To do it, right-click the OU in the GPMC and select Block inheritance.

GPO - Block inheritance in gpmc console

The organizational units with the enabled blocked inheritance option are marked with a blue exclamation mark in the console.

groip policy console - blue icon blocked inheritance

If a Group Policy is not applied to a client, check if it is in the OU with the blocked inheritance option.

Please note that the domain policies with the Enforced property enabled are applied even to the OUs with the blocked inheritance setting (you can see the inherited policies applied to the container in the Group Policy Inheritance tab).

enforced gpo option

GPO Scopes and Policy Processing Order (LSDOU)

To remember the order, in which group policies are applied in the domain, remember the LSDOU abbreviation. The GPOs are applied on clients in the following order:

  1. Local computer policies (Local) configured in the Local GPO editor gpedit.msc console (if they are configured incorrectly, you can reset them);
  2. Site-level GPO (Site);
  3. Domain-level GPO (Domain).
  4. GPOs from the organizational unit level (Organizational Unit).

The latter policies have the highest priority. It means that if you enable some Windows setting on the domain level, it may be disabled by another policy on the OU level (the closest policy to the object in the AD hierarchy will win).

When using the Forced option, the policy that is standing higher in the domain hierarchy wins (for example, if the Default Domain Policy has the Forced option enabled, it will have a higher priority than any other GPO).

An administrator can also change the policy processing order using the GPMC console. To do it, select an OU and go to the Linked Group Policy Objects tab. There is a list of GPO applied to this OU with the priority shown. The policies are processed in reverse order (from bottom to top). It means that a policy with Link Order 1 will be applied last. You can change the GPO priority using arrows in the left column and move a policy up or down in the list.

GPO link order (priorities)

Managing Enabled GPO Links

Any GPO object linked to an AD organizational unit can have the Link Enabled option turned on or off. If the link is disabled, its icon becomes gray. When the link is disabled, the policy is not applied to the clients, but the link to the GPO object is not removed from the domain hierarchy. You can enable the GPO link at any time.

gpo - enable link

Group Policy Loopback Processing Mode Explained

For example, if you apply a policy that has settings configured in the User Configuration section to an OU with computers, these settings won’t be applied to the user without using a loopback. Loopback Processing mode is enabled in Computer Configuration -> Administrative Templates -> System -> Group Policy -> Configure user Group Policy Loopback Processing mode.

This loopback processing policy has two possible modes:

  • Merge – GPOs based on the user’s location are applied to the computer, and then GPOs linked to the computer are applied. If there are conflicts between the user OU and the computer OU policies, the Computer Configuration level policies will take precedence.
    Note that when using Loopback processing with Merge mode, the policy is actually executed twice. Consider this when using Logon scripts.
  • Replace – only policies assigned to the OU containing the computer on which the user is logged on will be applied to the user.

Configure user Group Policy Loopback Processing mode

Use the Group Policy Modelling Wizard

You can use the GPO Modeling feature in the Domain Policy Management Console (gpmc.msc). GPO modeling allows the administrator to get the resulting policies that will be applied to a specific Active Directory object.

Go to the Group Policy Modeling section and run the Group Policy Modeling Wizard.

group policy modeling

Select the OU or specific user/computer for which you want to get the resulting policy report.

gpo modeling wizard

Then follow the questions of the GPO Modeling Wizard. As a result, you will receive a report (check the Details tab), which shows which policies are applied to the AD object and which are not. If a policy is applied or rejected due to a GPO filter, this will be visible in the report.

group policy result report

Enable Group Policy Preferences Debug Logging

In modern versions of Active Directory, there is an additional extension of Group Policy – Group Policy Preferences (GPP). GPP allows you to apply additional settings using the GP client-side extensions. For example, through GPP, you can:

  • Deploy printers via GPO;
  • Add users to local administrator group on a domain computer;
  • Map network drives;
  • Deploy registry settings;
  • Copy folders and files to users’ computers;
  • Etc.

To troubleshoot the Group Policy Preferences, you can use a special logging mode – Group Policy Preferences Tracing.

You can enable this mode through the parameter in the Computer Configuration -> Policies -> Administrative Templates -> System -> Group Policy -> Logging and Tracing section. There are separate logging options for different GPP parameters.

For example, I want to check how a registry parameter with proxy settings is applied via a GPO. To do this, I enable the Configure Registry preference logging and tracing option. Here you can configure the logging and debugging parameters and the log size.

group policy preferences: enable logging mode

After applying the policy to the client, open the C:\ProgramData\GroupPolicy\Preference\Trace\Computer.log file to get the detailed status of the GPP.

Disable this GPO option after you finish debugging GPP.

Also, keep in mind that GPP has additional Item Level Targeting options to filter when a policy is applied.

Troubleshooting Applied GPOs in Windows Clients

The gpresult, rsop.msc, and Windows Event Viewer are used to troubleshoot and debug Group Policy on a client-side. The first two tools provide the resulting set of policies that were applied on the Windows device.

To get a simple report on the GPOs applied on the computer, run the command:

gpresult /r

The command will return a list of Applied Group Policy Objects and GPOs that did not apply. The list of filtered GPOs may contain the following items:

  • Not Applied (Empty) – the policy is assigned but contains no settings;
  • Denied (WMI Filter) – the policy was not applied, because the WMI filter does not match this computer;
  • Denied (Security) — Group Policy ACL doesn’t have permissions to apply the GPO to this object;
  • Disabled (GPO) – Computer or User Configurations section disabled in GPO settings.

gpresult: filtered GPOs report

To get an HTML report with the resulting GPO, use the command:

gpresult /h c:\reports\gpreport.html /f

The gpresult RSoP HTMP report contains GPO errors, the processing time of certain policies and CSEs, and other useful info. This helps you understand why some GPOs processing too long. This report shows which policy settings were applied and by which specific GPOs.

The Group Policy Client (gpsvc) service must be running on Windows in order to process GPOs. Check that the service is started using PowerShell:

Get-Service gpsvc

group policy client service in windows

You also need to remember how Group Policy is updated in Windows. By default, GPOs are refreshed in the background every 90 minutes + a random time offset of 0–30 minutes. However, an administrator can change this interval by using the “Set Group Policy Refresh Interval for Computers” option under Computer Configuration -> Administrative Templates -> System -> Group Policy in the GPO.

You can use Event Viewer to find GPO processing events. Filter the System log by GroupPolicy source (Microsoft-Windows-GroupPolicy). Also, take a close look at the events in the Application and Services Logs -> Microsoft -> Windows -> Group Policy -> Operational.

Microsoft-Windows-GroupPolicy events in event viewer

A few additional tips when debugging GPOs:

  • When analyzing the domain password policies, keep in mind that only one domain password policy can be configured using GPMC (usually in the Default Domain Policy). Use the Fine-Grained Password Policies if you need to use separate password and account lockout policies for specific users or groups;
  • I also recommend using the Microsoft AGPM (Advanced Group Policy Management) tool, which allows you to maintain versioning for GPOs and the rules for their approval;
  • Use the Group Policy Central Store for ADMX templates. In this case, you won’t need to manually deploy the Group Policy admx files on all computers.

In conclusion, I will recommend keeping your GPO structure as simple as possible and not creating unnecessary policies. Use a transparent policy naming scheme. The name of the GPO should clearly indicate what it is for.

5 comments
7
Facebook Twitter Google + Pinterest
previous post
Using DISM to Check and Repair Windows Image
next post
Blank Sign-in Screen in Office 365 Apps (Outlook, Teams, etc.)

Related Reading

Add an Additional Domain Controller to an Existing...

September 6, 2023

Fix: Remote Desktop Licensing Mode is not Configured

August 24, 2023

Refresh AD Groups Membership without Reboot/Logoff

July 15, 2023

How to Backup and Copy Local Group Policy...

July 6, 2023

How to Reset the Group Policy Settings on...

June 23, 2023

5 comments

Don November 27, 2020 - 9:30 pm

this article is incorrect/misleading, it doesn’t talk about the 2016 change to security filtering https://support.microsoft.com/en-us/help/3163622/ms16-072-security-update-for-group-policy-june-14-2016

Reply
p October 1, 2021 - 4:11 pm

censoring the image is such nonsense and a needless distraction

Reply
ren May 18, 2022 - 6:31 pm

some people who comment (see above ) are d1cks

Reply
paolo October 6, 2022 - 3:41 pm

Good works

Reply
Alex April 19, 2023 - 6:37 am

You can enable the GPO debug logging in the registry. Create a DWORD parameter with the name GPSvcDebugLevel and the value 00030002 in the key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Diagnostics:
REG ADD “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Diagnostics” /v GPSvcDebugLevel /t REG_DWORD /d 0x00030002 /f
After the restart, Group Policy Client service will record the extended debug information to the file gpsvc.log (WINDIR%\debug\usermode\gpsvc.log)
To disable debug logging, change the value of GPSvcDebugLevel to 0.

Reply

Leave a Comment Cancel Reply

Categories

  • Active Directory
  • Group Policies
  • Exchange Server
  • Microsoft 365
  • Azure
  • Windows 11
  • Windows 10
  • Windows Server 2022
  • Windows Server 2019
  • Windows Server 2016
  • PowerShell
  • VMWare
  • Hyper-V
  • Linux
  • MS Office

Recent Posts

  • Zabbix: How to Get Data from PowerShell Scripts

    October 27, 2023
  • Tracking Printer Usage with Windows Event Viewer Logs

    October 19, 2023
  • PowerShell: Configure Certificate-Based Authentication for Exchange Online (Azure)

    October 15, 2023
  • Reset Root Password in VMware ESXi

    October 12, 2023
  • How to Query and Change Teams User Presence Status with PowerShell

    October 8, 2023
  • How to Increase Size of Disk Partition in Ubuntu

    October 5, 2023
  • How to Use Ansible to Manage Windows Machines

    September 25, 2023
  • Installing Language Pack in Windows 10/11 with PowerShell

    September 15, 2023
  • Configure Email Forwarding for Mailbox on Exchange Server/Microsoft 365

    September 14, 2023
  • How to View and Change BIOS (UEFI) Settings with PowerShell

    September 13, 2023

Follow us

  • Facebook
  • Twitter
  • Telegram
Popular Posts
  • Configure Google Chrome Settings with Group Policy
  • Get-ADUser: Find Active Directory User Info with PowerShell
  • How to Find the Source of Account Lockouts in Active Directory
  • How to Disable or Enable USB Drives in Windows using Group Policy
  • Get-ADComputer: Find Computer Properties in Active Directory with PowerShell
  • Deploy PowerShell Active Directory Module without Installing RSAT
  • Configuring Proxy Settings on Windows Using Group Policy Preferences
Footer Logo

@2014 - 2023 - Windows OS Hub. All about operating systems for sysadmins


Back To Top