🚨 CMMC Phase One started November 10! Here's everything you need to know →

How to Configure Active Directory GPOs to Meet NIST SP 800-171 REV.2 / CMMC 2.0 Level 2 - Control - IA.L2-3.5.7: Enforce Password Complexity and Mandatory Character Changes

Step-by-step guidance for configuring Active Directory Group Policy and Fine-Grained Password Policies to satisfy IA.L2-3.5.7 password complexity and mandatory character change requirements under NIST SP 800-171 Rev.2 / CMMC 2.0 Level 2.

•
March 31, 2026
•
4 min read

Share:

Schedule Your Free Compliance Consultation

Feeling overwhelmed by compliance requirements? Not sure where to start? Get expert guidance tailored to your specific needs in just 15 minutes.

Personalized Compliance Roadmap
Expert Answers to Your Questions
No Obligation, 100% Free

Limited spots available!

Enforcing password complexity and mandatory character changes is a fundamental requirement in the Compliance Framework mapping for IA.L2-3.5.7 (NIST SP 800-171 Rev.2 / CMMC 2.0 Level 2); this post gives practical, Active Directory–focused guidance to implement those controls using domain Group Policy and, when needed, Fine-Grained Password Policies (FGPP/PSOs), with small-business examples, PowerShell commands, and compliance tips.

Why IA.L2-3.5.7 matters for your environment

This control reduces the risk of credential compromise by ensuring passwords are not trivially guessable and that reused or stale credentials are mitigated through policy. For organizations protecting Controlled Unclassified Information (CUI), failing to apply complexity and change controls can result in failed CMMC assessments, loss of DoD contracts, and increased likelihood of brute-force, credential stuffing, and lateral movement after initial compromise. The Compliance Framework expects measurable, enforced settings — not just guidance — so implementing enforceable AD policies is mandatory for domain-joined accounts.

Which AD settings implement IA.L2-3.5.7 (technical specifics)

In Active Directory the core domain-wide password controls live under Account Policies → Password Policy in a GPO linked at the domain root (Default Domain Policy is commonly used). Key settings to configure: "Password must meet complexity requirements" (Enabled), "Minimum password length" (recommend 12 for typical Level 2 environments; 15+ for privileged accounts), "Enforce password history" (recommend 24), "Maximum password age" (commonly 60–90 days for environments that must follow NIST SP 800-171 guidance; note NIST SP 800-63B differs on rotation—document your rationale), and "Minimum password age" (1 day to prevent immediate reuse). Windows’ complexity rule enforces at least three of: uppercase, lowercase, digits, non-alphanumeric characters. For differentiated requirements (e.g., admins), use Fine-Grained Password Policies (PSOs).

Implementing via Group Policy Management Console (GUI)

Steps (domain-level): open Group Policy Management Console (GPMC) on a management workstation or DC, edit the Default Domain Policy (or a carefully-named domain GPO linked at the domain root), navigate to Computer Configuration → Policies → Windows Settings → Security Settings → Account Policies → Password Policy. Set "Password must meet complexity requirements" = Enabled, "Minimum password length" = 12, "Enforce password history" = 24, "Maximum password age" = 90 days (or as required by policy), and "Minimum password age" = 1 day. After you apply, force replication and test: run gpupdate /force on a workstation and verify with gpresult /r or rsop.msc, and run Get-ADDefaultDomainPasswordPolicy to confirm domain policy values.

Implementing via PowerShell and Fine-Grained Password Policies (PSOs)

PowerShell is useful for automation and FGPPs. Example to set domain defaults (requires ActiveDirectory module and privileges on a DC):
Import-Module ActiveDirectory
Set-ADDefaultDomainPasswordPolicy -Identity 'yourdomain.com' -MinPasswordLength 12 -MaxPasswordAge (New-TimeSpan -Days 90) -MinPasswordAge (New-TimeSpan -Days 1) -PasswordHistoryCount 24 -ComplexityEnabled $true
To create a stronger PSO for the "Domain Admins" group:
New-ADFineGrainedPasswordPolicy -Name 'PSO-Privileged' -Precedence 1 -MinPasswordLength 15 -MaxPasswordAge (New-TimeSpan -Days 60) -PasswordHistoryCount 24 -ComplexityEnabled $true -ReversibleEncryptionEnabled $false; then associate with group using Add-ADFineGrainedPasswordPolicySubject -Identity 'PSO-Privileged' -Subjects 'Domain Admins'. These PSOs give small businesses the flexibility to protect high-value accounts without imposing the same burden on all users.

Small business scenarios and real-world examples

Scenario A — single domain, 25 users: Update the Default Domain Policy with a 12-character minimum and 90-day expiration, enable complexity, and deploy a brief user training + password manager rollout. This keeps administrative overhead low while meeting IA.L2-3.5.7. Scenario B — 50 users with 3 admins: Use a PSO for admins with 15-character minimum, 60-day rotation, and separate monitoring. Scenario C — hybrid Azure AD/AD Connect: enforce domain password policy for on-prem accounts and combine with Azure AD Conditional Access + MFA for remote access; document the interplay for auditors (on-prem password policy covers domain auth; Azure policies cover cloud-based authentication and SSPR behavior).

Compliance tips and best practices

1) Document: record the chosen values, rationale (mapping to NIST SP 800-171/CMMC), and exceptions. 2) Prefer MFA: password policy is necessary but use Multi-Factor Authentication for true risk reduction. 3) User experience: deploy a vetted password manager and training so complexity doesn't drive risky workarounds. 4) Testing: after applying, use gpresult, Get-ADDefaultDomainPasswordPolicy and test account creation/reset flows. 5) Auditing: enable Account Management audit categories to track password / policy changes and PSO assignments, and retain logs to satisfy assessment evidence requirements.

Risks of not implementing IA.L2-3.5.7 correctly

Without enforced complexity and proper history/rotation policies you increase exposure to brute-force and credential stuffing attacks and make it easier for attackers to reuse stolen credentials. For organizations under DoD contracts, noncompliance can lead to failed CMMC assessments and contract penalties. Operationally, poor password hygiene leads to increased incident response costs, lateral movement risk, and potential exfiltration of CUI.

In summary, satisfy IA.L2-3.5.7 by applying domain-level password policies via Default Domain Policy or an approved domain-linked GPO, use Fine-Grained Password Policies for privileged accounts, document decisions vis-à-vis the Compliance Framework, and pair these controls with MFA, auditing, and user training so your Active Directory deployment both meets NIST SP 800-171 Rev.2 / CMMC 2.0 Level 2 expectations and reduces real-world credential risk.

 

Quick & Simple

Discover Our Cybersecurity Compliance Solutions:

Whether you need to meet and maintain your compliance requirements, help your clients meet them, or verify supplier compliance we have the expertise and solution for you

 CMMC Level 1 Compliance App

CMMC Level 1 Compliance

Become compliant, provide compliance services, or verify partner compliance with CMMC Level 1 Basic Safeguarding of Covered Contractor Information Systems requirements.
 NIST SP 800-171 & CMMC Level 2 Compliance App

NIST SP 800-171 & CMMC Level 2 Compliance

Become compliant, provide compliance services, or verify partner compliance with NIST SP 800-171 and CMMC Level 2 requirements.
 HIPAA Compliance App

HIPAA Compliance

Become compliant, provide compliance services, or verify partner compliance with HIPAA security rule requirements.
 ISO 27001 Compliance App

ISO 27001 Compliance

Become compliant, provide compliance services, or verify partner compliance with ISO 27001 requirements.
 FAR 52.204-21 Compliance App

FAR 52.204-21 Compliance

Become compliant, provide compliance services, or verify partner compliance with FAR 52.204-21 Basic Safeguarding of Covered Contractor Information Systems requirements.
 
Hello! How can we help today? 😃

Chat with Lakeridge

We typically reply within minutes