Skip to content
Sponsor
3.0 preview2.3.0 stable

These docs describe the preview. Pick the version you run and every page marks what it doesn't have yet. Get the preview →
Maester 2.x docs (archived) →

Unlinked GPO count should be compliant

AD-GPO-04LowActive DirectoryGroup Policy

Part of Active Directory · Active Directory · Group Policy · All checks

Run this check
Invoke-Maester -TestId AD-GPO-04

Unlinked (or orphaned) Group Policy Objects (GPOs) exist in Active Directory but are not linked to any OU, domain, or site. While they may look harmless, they can still create operational and security risk:

  • Resource and operational overhead: Unused GPOs add clutter and can increase administrative effort.
  • Accidental exposure: An unlinked GPO can be mistakenly linked later, suddenly applying unknown settings to users or computers.
  • Harder incident investigation: Policy behavior becomes harder to reason about when unused GPOs remain in the environment.

Detective

After verification, remove unlinked GPOs to reduce risk and simplify policy management:

  • Confirm the GPO’s purpose (documentation, change history, owners).
  • Verify it is not required for any special-case deployment path.
  • If you are confident it is unused, remove it (or archive it) and ensure backups/restore requirements are met.
  • Restrict who can create/link GPOs to prevent accidental re-introduction.

This test retrieves Active Directory Group Policy state data using Get-MtADGpoState and:

  1. Uses the cached list of GPOs ($gpoState.GPOs).
  2. Extracts GPO link references from the collected GPOLinks (via gPLink).
  3. Counts GPOs whose IDs are not referenced by any collected gPLink entry.
  • Test-MtAdGpoTotalCount - Counts the total number of GPOs
  • Test-MtAdGpoLinkedCount - Identifies GPOs that are actively linked
  • Test-MtAdGpoCreatedBefore2020Count - Identifies potentially outdated GPOs
Every attribute of this check
FieldValue
Test IDAD-GPO-04
SeverityLow
SuiteActive Directory
ProductActive Directory
FeatureGroup Policy
AreaInfrastructure hardening
Resource typeGroupPolicy
User impactLow
Implementation costMedium
MITRE ATT&CKNone
PowerShell testTest-MtAdGpoUnlinkedCount
ServicesActiveDirectory
PermissionsActiveDirectory:Ldap:groupPolicyContainer.gPCFileSysPath:ReadProperty, ActiveDirectory:File:SYSVOL:Read