必须在域控制器上通过「默认域策略」或链接至域名的GPO配置密码复杂度策略,路径为Computer Configuration→Policies→Windows Settings→Security Settings→Account Policies→Password Policy,其他位置无效。
域控制器上必须配置的组策略位置
强制执行密码复杂度策略,必须在域控制器上编辑「默认域策略」或链接到域名节点的 gpo,其他位置(比如 ou 级别的 gpo)无法覆盖该设置。因为 password must meet complexity requirements 是域级别安全策略,只在「computer configuration → policies → windows settings → security settings → account policies → password policy」路径下生效。
常见错误是去「User Configuration」里找,或者在非域控制器机器上用本地组策略编辑器修改——这完全无效。
- 确认你在域控制器上运行
gpedit.msc或通过Group Policy Management Console (gpmc.msc)编辑已链接到域名的 GPO - 修改后必须执行
gpupdate /force并重启域控制器(部分策略需重启才生效) - 若使用自定义 GPO,请确保其链接位置是域名(如
DC=contoso,DC=com),且未被阻止继承或被更高优先级 GPO 覆盖
启用复杂度策略后用户仍能设简单密码?检查这几个点
启用 Password must meet complexity requirements 后,用户仍可能成功设置如 123456 或 password 这类弱密码,通常不是策略没生效,而是绕过了验证环节。
最常见原因是:用户通过非标准方式改密(如调用 net user /domain、PowerShell 的 Set-ADAccountPassword 未配合 Set-ADUser -ChangePasswordAtLogon $true)、或管理员用 DSACLS 绕过策略重置密码、或第三方应用直连 LDAP 修改 unicodePwd 属性而跳过密码筛选器。
- Windows 密码复杂度校验由
pwdfilt.dll在域控制器上执行,仅对交互式登录、Ctrl+Alt+Del 改密、以及符合 Kerberos/LDAP 密码修改协议的请求生效 - 用
ldp.exe或脚本直接写unicodePwd属性时,若未启用「Enforce password history」和「Minimum password age」组合限制,可能逃逸校验 - 检查事件查看器中「Security」日志,筛选事件 ID
4723(尝试更改密码)和4724(成功重置密码),对比失败/成功记录中的调用方和方法
密码策略不适用于某些账户?看是否被排除在策略范围外
Password must meet complexity requirements 对所有域用户账户默认生效,但有三类常见例外:
- 内置
Administrator账户(首次安装后未重命名时)可能被系统忽略策略——重命名该账户可恢复校验 - 启用了
PasswdNotReq标志的账户(userAccountControl & 0x0040 != 0),例如某些服务账户,会跳过所有密码策略 - 使用
msDS-ResultantPSO应用了细粒度密码策略(FGPP)的用户,将优先遵循 FGPP 中的设置,而非域默认策略
查账户是否受 FGPP 影响,可用 PowerShell:Get-ADUser username -Properties msDS-ResultantPSO;查 PasswdNotReq 状态,用 Get-ADUser username -Properties userAccountControl | % { $_.userAccountControl -band 0x0040 },结果为 64 表示已启用免密登录。
策略生效延迟与客户端兼容性问题
即使 GPO 已正确配置并推送,客户端可能因缓存、时间不同步或旧系统限制导致策略未即时体现。
- 域成员计算机需与域控制器时间偏差 ≤ 5 分钟,否则 Kerberos 认证失败,密码策略相关操作可能被拒绝或降级处理
- Windows 7 / Server 2008 R2 及更早系统不支持某些复杂度扩展(如 Unicode 字符校验逻辑差异),建议统一升级到 Win10/Server 2016+
- 策略变更后,用户下次改密才会触发新规则;已存在的弱密码不会被自动拒绝或强制重置,除非搭配
Maximum password age和Enforce password history推动轮换
真正容易被忽略的是:策略本身不提供“密码强度实时反馈”,用户只有在提交弱密码时收到模糊提示(如“指定的网络密码不正确”),实际应结合登录脚本或第三方工具做前端校验提示。

















