锁定排查的四步
域账号被锁定的典型表现是输入正确密码也登不上,等一段时间又自动恢复,这是因为锁定策略在起作用。排查的关键不在于解锁本身,而在于找到持续提交错误密码的那个来源——只要来源还在重试,解锁之后很快会再次被锁。整个过程分四步:确认状态、定位来源、清理错误密码引用、观察复查。真正花时间的通常是第二和第三步,也就是从日志里找出调用方计算机,再到那台设备上清理残留的旧凭据。
基本信息
| 适用平台 | Active Directory 域环境,客户端 Windows 7 及以上 |
|---|---|
| 前置条件 | 查询域账号需要管理模块,读安全日志需要域控上的相应权限 |
| 关键事件 | 账号锁定事件记录锁定发生,登录失败事件记录每次尝试与来源 |
| 锁定策略 | 由域组策略统一下发,包含阈值、观察窗口与锁定时长 |
| 排查工具 | 账号查询命令、事件查询命令、凭据管理命令 |
| 排查重点 | 找出持续重试的来源设备,而不是反复解锁 |
排查步骤
- 第一步确认状态:查询被锁定的账号清单,或直接查看账号属性中的锁定状态
- 第二步找来源:在域控上查账号锁定事件里的调用方计算机名,配合登录失败事件看来源地址
- 第三步清理源头:到来源设备上检查保存的凭据、计划任务、服务账户、映射盘与手机端邮件配置
- 第四步解锁并观察:解锁后持续观察一段时间,确认不再复锁才算完成
- 补充一步:若来源是服务或应用,改完配置要重启该服务,否则旧凭据仍会被继续使用
- 收尾记录:把来源与处置方式写入工单,便于同类问题复用
常用示例
常用示例
# 列出当前被锁定的账号
Search-ADAccount -LockedOut | Select-Object Name, LockedOut, LastLogonDate
# 在域控上查询账号锁定事件,看调用方计算机
Get-WinEvent -ComputerName dc01 -FilterHashtable @{LogName='Security'; Id=4740} -MaxEvents 10 |
Select-Object TimeCreated, @{n='摘要';e={($_.Message -split "`n" | Select-Object -First 8)}}
# 查看登录失败事件的来源地址与账号
Get-WinEvent -ComputerName dc01 -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 20 |
Select-Object TimeCreated, @{n='账号';e={$_.Properties[5].Value}}, @{n='来源';e={$_.Properties[19].Value}}
# 在来源设备上清点保存的凭据
cmdkey /list | findstr /i "corp"
# 清理指定凭据
cmdkey /delete:corp\ops01常见复锁源头
| 来源 | 特征 | 处置方式 |
|---|---|---|
| 保存的凭据 | 凭据管理器中留有旧账号 | 删除对应凭据项 |
| 计划任务 | 以旧密码保存的任务周期性运行 | 更新任务所用凭据 |
| 服务账户 | 服务登录失败反复重试 | 更新服务登录密码并重启服务 |
| 映射网络盘 | 开机脚本用旧凭据重连 | 断开后重新映射 |
| 手机端邮件同步 | 重试间隔长,复锁延迟出现 | 在设备上重新输入密码 |
| 共享凭据的脚本 | 脚本里硬编码了旧密码 | 改为使用受管凭据并更新脚本 |
锁定事件里的调用方计算机名是排查的关键字段,先锁定来源设备,再谈具体是哪个程序在重试。只反复解锁而不清理来源,问题会周期性重现。
移动设备上的邮件同步重试间隔通常较长,清理完来源后复锁可能在数小时后才出现。解锁后应观察足够长的时间窗,再确认处理完毕。