One of the things that tripped me up early in my Active Directory journey was how multiple GPOs interact — especially when they’re linked at different levels like the domain, OU, or site. I quickly realized that Group Policy Inheritance and Precedence are essential to understand if I want to avoid conflicts, unexpected behavior, or outright policy chaos.
In this post, I’ll walk you through how GPOs are processed, how precedence works, and how I manage it effectively in real-world environments.
🧭 What is GPO Inheritance?
Group Policy Objects can be linked at different levels of the Active Directory hierarchy:
- Site
- Domain
- Organizational Unit (OU)
When a computer or user belongs to these levels, it inherits the GPOs from each level — unless told otherwise.
🔁 The Order of Processing – LSDOU
Windows processes Group Policy in this specific order:
LSDOU:
- Local GPO – Stored on each individual computer.
- Site-level GPOs
- Domain-level GPOs
- Organizational Unit GPOs – From parent OUs down to child OUs.
Rule of thumb: The last GPO applied wins if there’s a conflict — unless you override it.
⚔️ What If Two GPOs Conflict?
Let’s say I have:
- A GPO at the domain level that sets the wallpaper to
Blue.jpg - A GPO at the OU level that sets it to
Green.jpg
The user will get Green.jpg — because the OU-level GPO takes precedence and is applied later.
🧪 Managing GPO Precedence
Sometimes, I need a specific GPO to win, even when others are applied after it. That’s where these tools come in:
🔗 1. GPO Link Order
If multiple GPOs are linked to the same OU, the one with the lowest link order number wins.
- Open Group Policy Management Console (GPMC)
- Click on the OU
- In the right pane, reorder GPO links by moving them up or down
Think of it as top-down override: the higher in the list, the higher the precedence.
📌 2. Enforced (Formerly “No Override”)
If I want to force a GPO to always apply, even when there are conflicting child GPOs, I enforce it.
- Right-click the GPO link
- Select Enforced
This prevents child OUs from overriding this GPO’s settings.
⚠️ Use this sparingly — it can make troubleshooting tough if overused.
🚫 3. Block Inheritance
On the flip side, if I don’t want a child OU to inherit GPOs from parent containers:
- Right-click the OU in GPMC
- Check Block Inheritance
This tells the OU to ignore inherited GPOs — unless those GPOs are enforced.
🧪 Real-World Example
In my environment, the domain GPO applies a company-wide lock screen policy. But I didn’t want that enforced for a “Kiosk Devices” OU. So I:
- Blocked inheritance on the Kiosk OU
- Created a specific GPO for the kiosk lock screen
- Linked it directly to the OU
Now, kiosks use their custom settings, and nothing bleeds down from the domain-level GPO.
🛠️ Tools I Use to Troubleshoot
gpresult /rorgpresult /h report.html– Shows which GPOs applied and from where- Group Policy Modeling in GPMC – Simulates GPOs for a user/computer combo
- Group Policy Results Wizard – Gets actual results from a live system
💡 Tips I’ve Learned
- Avoid using “Enforced” everywhere — it causes more harm than good if abused.
- Name your GPOs clearly – like
OU - Disable USBorDomain - Password Policy. - Always test changes in a lab or test OU before pushing to production.
🧵 Wrapping Up
Managing GPO inheritance and precedence is all about knowing the order, and using tools like Enforced and Block Inheritance wisely. Once I got comfortable with how policies flow from top to bottom — and how to control that flow — troubleshooting and planning became much easier.