Skip to main content
cd ../config-traps
risk/register/wmi-filter-evaluation-failure-skips-group-policy-enforcement.html
Active Directory Group Policyhigh severityActive Directory

A WMI Filter That Fails to Evaluate Silently Skips Group Policy Enforcement

Severity
high
Reviewed
7 Aug 2026
Remediation
~20 minutes
Overview

When a WMI filter can't be evaluated on a client, Group Policy quietly skips the linked GPO instead of applying it — and nothing in the standard GPMC view shows the difference.

Operational summary

At a glance

Symptom
A domain security baseline GPO that is linked to an organisational unit, shows as enabled with no link warnings in the Group Policy Management…
Likely cause
Group Policy's WMI filter evaluation is fail-closed by design.
Impact
The direct consequence is a silent gap in security enforcement rather than an outage: affected computers continue operating under whatever lower-precedence or default policy already applied, missing the…
Verification signal
Confirm the fix by reproducing the diagnosis steps on the same affected machine and checking that both the GPO link status and the resulting setting now match the…
Safe correction
Fix the underlying WMI query mismatch rather than removing the filter as a shortcut.
Rollback or recovery
Treat every filter change as reversible by exporting the original filter before editing it.

Symptom

A domain security baseline GPO that is linked to an organisational unit, shows as enabled with no link warnings in the Group Policy Management Console, and has the correct security filtering (Authenticated Users: Read, Apply) still fails to enforce its settings — such as an audit policy, a firewall profile or a credential-protection setting — on a subset of the computers in that OU, while the identical GPO applies correctly to other computers in the same container.

False Assumption

Administrators troubleshooting this gap typically assume that a GPO’s WMI filter, used to scope delivery to specific hardware, operating system builds or configuration states, will either evaluate cleanly to true or false, or, if it cannot be evaluated at all, will default to applying the policy so a security control is never silently lost. The GPMC link view reinforces this: it shows the GPO as linked and enabled with no error indicator, so the natural conclusion is that scoping is working correctly wherever the link exists.

Root Cause

Group Policy’s WMI filter evaluation is fail-closed by design. If the filter’s WQL query cannot be evaluated on a given client — because the referenced WMI namespace or class does not exist on that operating system build, the Windows Management Instrumentation service is not fully available at the point Group Policy processes, or the filter references a class deprecated in a newer release — the client treats the result as a filter failure rather than a filter match. A filter failure causes Group Policy to skip the GPO entirely, exactly as it would for a filter that legitimately evaluates to false. Nothing in the GPMC link view distinguishes an intentional scope exclusion from an evaluation failure caused by an OS build mismatch, so affected computers simply fall outside the intended policy scope with no visible error at the point administrators normally look.

Impact

The direct consequence is a silent gap in security enforcement rather than an outage: affected computers continue operating under whatever lower-precedence or default policy already applied, missing the specific control the filtered GPO was meant to add, while every administrative view that checks only link status and enablement reports the GPO as correctly applied across the organisational unit. Because the failure produces no alert by default, the gap can persist for as long as the underlying WMI or OS-build mismatch exists, and typically surfaces only when a compliance audit, security assessment or incident investigation checks effective settings on individual machines rather than the GPO’s link state — by which point the affected population may have been unprotected for an extended period.

Diagnosis

Confirm the gap and its cause using read-only Group Policy reporting before editing anything. Run gpresult /r /scope:computer on an affected machine and compare the Applied and Denied GPO lists against a machine where the policy is known to work correctly; a GPO listed under Denied with a WMI-filtering reason on the affected machine but Applied on the working machine points to filter evaluation, not link configuration, as the differentiator. Generate a saved report with gpresult /h, and use Get-GPInheritance to confirm link order and enforcement are otherwise identical between the affected and working organisational units. Enumerate which GPOs carry a WMI filter with a targeted Get-GPO query so the specific filter object and its WQL query can be inspected in the WMI Filters node of GPMC, and verify whether the referenced namespace or class actually exists on the affected operating system build before changing anything.

Correction

Fix the underlying WMI query mismatch rather than removing the filter as a shortcut. Export the current filter definition first, then update the WQL query so it references a namespace and class present on every operating system build the GPO is meant to target, or pair the GPO with an additional filter written for the WMI schema of the unsupported builds. Where the original scoping intent no longer matches the current computer population — for example a filter written for an operating system version no longer present in the OU — remove the filter link from the GPO rather than leaving a broken dependency in place, and record why the filter is no longer required so the change is auditable.

Validation

Confirm the fix by reproducing the diagnosis steps on the same affected machine and checking that both the GPO link status and the resulting setting now match the working machine. After updating or removing the filter, force a policy refresh on the affected test machine, then re-run the Group Policy results check and confirm the previously Denied GPO now appears under Applied with no WMI-filtering exclusion reason. Independently confirm the specific control the GPO was meant to enforce — the relevant audit subcategory, firewall profile state or registry-backed setting — now matches the baseline definition, rather than relying on GPO application status alone.

Rollback

Treat every filter change as reversible by exporting the original filter before editing it. If the corrected filter widens scope to unintended computers, produces unexpected side effects, or the GPO still fails to apply as expected, re-link the original, unmodified WMI filter GUID to the GPO through the GPMC WMI Filters node and force a policy refresh again on affected systems to restore the prior enforcement state. Stop the change and escalate to the Active Directory or security platform owner if the corrected filter has already propagated to production computers before an unintended scope is discovered, since remediation at that point may require a targeted compliance sweep rather than a simple relink.

Prevention

Validate every WMI filter against a representative copy of each operating system build and edition the linked GPO is meant to reach before production rollout, using Group Policy Modeling or a lab machine on the matching build, rather than assuming a filter written for one release evaluates identically on another. Build a recurring audit that runs Group Policy results checks across a representative sample of computers in every filtered OU, rather than relying solely on GPMC’s link and enablement view, so a filter-evaluation failure surfaces as a compliance finding instead of an unnoticed gap. Where a WMI-filtered GPO carries a control mapped to a governance requirement — identity, logging or data-protection controls consistent with the control families described in general cloud security benchmarks — record that dependency explicitly so a future filter change is reviewed as a governance-relevant change rather than a routine scoping edit.

03

Apply the safer control

Before you change production

Confirm the affected scope, export the current configuration, and test the replacement control in a non-production environment first.

Fix commands and configuration

gpresult /r /scope:computer
gpresult /h
Get-GPInheritance
04

Verify, roll back or escalate

Verify

Confirm the fix by reproducing the diagnosis steps on the same affected machine and checking that both the GPO link status and the resulting setting now match the working machine.

Rollback

Treat every filter change as reversible by exporting the original filter before editing it.

Escalate

Escalate when the blast radius is uncertain, the control cannot be tested safely, or remediation requires an outage or security exception.

After remediation

Further reading stays below the corrective workflow and is selected by platform, category and shared technical keywords.

Discover more

Connected KBY resources