必须在域控制器上通过链接到域名的GPO(如默认域策略)配置,路径为计算机配置→策略→Windows设置→安全设置→账户策略→密码策略;启用“密码必须符合复杂性要求”后,仅约束交互式改密等合规操作,绕过校验(如PowerShell直写unicodePwd)仍可设弱密码。
必须在域控制器上配置,且只能通过链接到域名的 gpo(如默认域策略)生效,其他位置或本地组策略编辑器的操作均无效。
正确配置路径和位置
打开「组策略管理控制台」(gpmc.msc),在域控制器上操作:
- 定位到你的域名节点(如 DC=contoso,DC=com)→「组策略对象」→ 右键「默认域策略」→「编辑」
- 导航至:计算机配置 → 策略 → Windows 设置 → 安全设置 → 账户策略 → 密码策略
- 双击「密码必须符合复杂性要求」→ 选择「已启用」→ 确定
- 注意:不能在「用户配置」下找,也不能在 OU 级别 GPO 中配置该策略——它只在域名层级的计算机配置路径下起作用
策略生效的关键细节
启用后并非“立即清理旧密码”,而是约束后续所有新设或重置行为:
- 仅对交互式改密(Ctrl+Alt+Del)、域登录时强制修改、以及符合 LDAP/Kerberos 密码修改协议的请求校验
- 若用户仍能设简单密码(如 123456),大概率是绕过了校验:比如用 PowerShell Set-ADAccountPassword 直接重置、或脚本调用 unicodePwd 属性写入
- 检查事件查看器「安全」日志,筛选 ID 4723(尝试改密)和 4724(成功重置),确认调用方式是否合规
配套策略建议一并启用
单靠复杂度不够,需组合使用才能形成有效防护:
- 最小密码长度:设为 12(启用复杂度后,系统自动强制不低于 8,但设 12 更稳妥)
- 密码最长使用期限:建议 60 或 90 天,避免长期不更新
- 密码最短使用期限:设为 1,防止用户秒换回旧密码绕过历史记录
- 强制密码历史:建议 24 次,确保足够长的轮换周期
常见误区与验证方法
策略配完不等于已落地,务必验证是否真正应用:
- 执行 gpupdate /force 刷新策略(部分策略需重启域控制器才完全生效)
- 新建测试用户,在域登录界面或 Ctrl+Alt+Del 改密时尝试弱密码,观察是否被拒
- 运行 gpresult /h report.html 查看实际应用的 GPO 列表和策略值
- 若本地组策略编辑器中该选项呈灰色,说明已被域策略接管——这是正常现象,无需也无法在本地修改










