必须在域控制器域名级GPO中配置密码策略,路径为计算机配置→策略→Windows设置→安全设置→账户策略→密码策略;启用复杂性要求、设最小长度12、最长有效期60天、最短使用期1天、历史记录24次,并通过gpupdate和gpresult验证生效。要让全网域用户真正用上高强度密码,关键不是点几下鼠标,而是确保策略落在正确位置、生效路径无断点、校验机制不被绕过。
必须在域控制器上配置,且仅限域名级GPO
策略只在「计算机配置 → 策略 → windows 设置 → 安全设置 → 账户策略 → 密码策略」路径下有效。只能编辑「默认域策略」,或新建gpo并明确链接到域名根节点(如 dc=contoso,dc=com)。以下操作无效:
• 在ou级gpo中设置——系统直接忽略
• 在「用户配置」分支下修改——该分支不含密码策略项
• 用本地 gpedit.msc 配置——仅影响单机,对域用户零作用
• 未检查gpo继承状态——若上级ou启用了“阻止继承”或存在更高优先级gpo,策略会被覆盖
启用复杂性要求后,实际约束条件是什么
勾选「密码必须符合复杂性要求」后,系统自动强制:
• 密码至少含大写字母、小写字母、数字、特殊字符中的三类
• 长度不低于8位(即使你设为6,也按8执行)
• 禁止包含用户名、全名中连续2个以上字符(如用户名zhangsan,密码含zhang即被拒)
• 自动过滤常见弱口令(password、123456、qwert等)和重复字符(aaaa)
注意:该策略不清理已有弱密码,只约束后续所有新设或重置行为
配套五项必须同步设置
单靠复杂性不够,需组合生效:
• 最小密码长度:设为12——虽复杂性已保底8位,但12位显著提升抗爆破能力
• 密码最长使用期限:设为60天——超期后登录即提示修改;注意已勾选“密码永不过期”的账户不受此限,需用PowerShell批量清理
• 密码最短使用期限:设为1天——防止当天改密又立刻换回旧密码,绕过历史记录
• 强制密码历史:设为24次——确保近两年内旧密码无法复用
• 启用复杂性要求:必须启用——这是整个策略链的触发开关
验证是否真生效,不能只看配置界面
配完不等于落地,必须实测验证:
• 在域控制器和任意客户端分别运行 gpupdate /force
• 新建测试账户,在登录界面或按 Ctrl+Alt+Del → 更改密码 尝试设123456,观察是否被实时拦截
• 运行 gpresult /h report.html,检查HTML报告中「密码策略」部分是否显示目标GPO已应用
• 查看域控制器「安全」日志,筛选事件ID 4723(改密尝试)和4724(成功重置),确认调用方式走的是标准Kerberos/LDAP协议——若绕过(如PowerShell直写unicodePwd),则校验失效











