Papa Labs

AD 账号反复被锁的五大惯犯:一份实战排查清单

用户改完密码之后,账号开始反复被锁:解锁、几分钟后又锁上,循环往复。用户发誓自己输的密码是对的——她没说谎,锁她的根本不是她自己,而是某个还拿着旧密码不断重试的东西

这个问题排查过几次之后,惯犯名单其实高度固定。按命中率排序:

五个还记着旧密码的嫌疑人:映射网盘、幽灵会话、手机邮件、计划任务、恶意程序

五大惯犯一览——手机邮件客户端是现代环境的头号嫌疑人

五大惯犯

  1. 映射网盘(mapped drive)——某台机器上的网络驱动器映射保存了旧凭据,系统在后台不断用旧密码重连,几次失败就触发锁定阈值;
  2. 没退出的 RDS / 远程桌面会话——改密码之前在某台服务器上登过远程桌面,点了「切换用户」而不是注销。那个幽灵会话还活着,里面的进程继续用旧密码请求资源;
  3. 手机邮件客户端——ActiveSync / POP3 / SMTP 配置里存着旧密码,手机每隔几分钟同步一次邮件 = 每隔几分钟锁一次号。这是现代环境里最常见的一个
  4. 计划任务(scheduled task)——用该账号身份运行的任务,凭据还是旧的,每次触发就贡献一次失败登录;
  5. 恶意程序或爆破——某台失陷机器在反复尝试这个账号。概率最低,但必须排除,因为后果最重。

定位锁定源头

猜不如查。锁定事件会记录在 PDC 模拟器角色的 DC 上(锁定信息最终都汇聚到它那里):

# 在 PDC 上查 Event 4740(账号被锁定),CallerComputerName 就是元凶所在的机器
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4740} -MaxEvents 50 |
  Where-Object { $_.Message -match '<用户名>' } |
  Select-Object TimeCreated, Message

4740 事件里的 Caller Computer Name 直接告诉你锁定请求来自哪台机器。然后到那台机器上按惯犯名单逐项检查:

  • net use 看映射盘;
  • quser / 任务管理器-用户 tab 看幽灵会话;
  • 任务计划程序里筛该账号身份的任务;
  • 手机的话,让用户检查所有配了公司邮箱的设备(包括平板和旧手机)。

微软的 Lockout Status 工具(LockoutStatus.exe) 也很好用,能一次列出所有 DC 上该账号的锁定状态和最后失败来源。

教训

  1. 用户改密码后被反复锁定 ≈ 100% 是残留凭据,先信这个假设再排其他;
  2. 改密码的正确姿势应该包含:注销所有远程会话、更新手机邮件密码、检查映射盘——这三句话值得写进给用户的改密码指引里;
  3. Event 4740 的 Caller Computer Name 是这类问题的最短路径,比逐台机器猜快一个数量级。
← 全部文章