LAPS 本地管理员密码
LAPS 管的是本地管理员密码,不是域用户密码。它解决的是域控不在时还能救机器,以及统一本地密码导致的横向渗透。
先澄清一个常见误解
LAPS 管理的是本地管理员账户(.\AdminLocal)的密码,不是本地普通用户账户,更不是域用户账户。
这个误解很普遍,因为「密码忘了怎么办」这件事在日常运维里几乎总是以域用户的形式出现——而域用户的场景,域控本来就能解决:
| 场景 | 谁忘了密码 | 谁能重置 | 怎么做 |
|---|---|---|---|
域用户 CORP\zhang |
日常办公用户 | 域管理员 | 用户属性里直接重置 |
本地管理员 .\AdminLocal |
紧急修复账户 | 查 LAPS 存在 AD 里的密码 | LAPS 工具或 PowerShell 读取 |
那 LAPS 到底解决什么问题?域控起效的场景它不管,它管的是域控不在时的三个真实场景。
场景一:域控挂了,进不去系统
域控故障期间,域账户无法登录,本地管理员是唯一入口。没有 LAPS 时,这台机器的本地管理员密码是几年前装机时随手设的——大概率是同一个密码,在全公司所有机器上重复。
场景二:安全合规要求
统一本地管理员密码曾经是很多企业的「标准做法」,它的初衷是管理方便,实际效果是灾难级的横向渗透面:
没有 LAPS 时(曾经的痛):
所有终端的 .\AdminLocal 用同一个密码
│
▼
攻击者拿到一台机器的哈希 ──► 哈希传递 ──► 全网沦陷
有 LAPS 后:
每台终端的 .\AdminLocal 密码随机且定期轮换
│
▼
拿到一台机器的本地哈希 ──► 只能开一台机器的门
LAPS 把这个「全网一把钥匙」变成「一台一把钥匙」,横向移动的成本从「一次哈希传递」变成「逐台爆破」,而爆破行为本身会被锁定策略和日志平台看见。
场景三:离线维修 / PE 环境
系统崩了要进安全模式、域控连不上、域账户无法登录——本地管理员是唯一入口。密码托管在 AD 里,管理员从任何一台加域机器上就能查到目标机器的当前本地密码。
三层账户模型
LAPS 不是孤立存在的,它落在整个账户结构的最底层:
CORP\域用户 日常登录、办公
│ 管理:AD 正常管理
▼
DOMAIN\ITAdmin IT 运维(加入各电脑本地管理员组)
│ 管理:AD 组策略 Restricted Groups
▼
.\AdminLocal(本机) 紧急备用、离线修复
管理:LAPS 随机密码 + 定期轮换
三层各管一件事:日常用域账户,运维走 ITAdmin 组,紧急情况用 LAPS 兜底。这个结构最干净的地方是——没有任何一层需要「所有机器同一个密码」。
部署要点
# 1) 域功能级别与架构准备(在域控上,一次性)
# 需要 AD 架构扩展 + LAPS 客户端 MSI 推送到终端
# 2) 终端安装客户端(随 GPO 或部署工具下发)
msiexec /i LAPS.x64.msi /quiet
# 3) 配置密码策略(复杂度、长度、有效期)
# 计算机配置 → 策略 → 管理模板 → LAPS
# Password Complexity: 大写+小写+数字+特殊,长度 ≥ 14
# Password Age: 30 天
# 4) 授权:只有 ITAdmin 组能读取托管密码
Set-LapsADPermission -Identity "OU=Workstations,DC=corp,DC=internal" `
-AllowedPrincipals "CORP\ITAdmin"
# 5) 查看某台机器的本地管理员密码(应急时)
Get-LapsADPassword -Identity PC01 -AsPlainText
两个容易踩的点:
- 授权范围要精确到 OU。默认状态下读密码的权限给太宽(比如所有域用户可读),LAPS 就从「横向移动的阻碍」变成「横向移动的助力」。
- 密码轮换期间机器离线。离线机器拿不到新密码,恢复时用旧密码或 PE 环境重置——这种情况要写进应急手册,别临场想。
与域控的关系
再强调一次那个结论:域用户密码归域管控,本地管理员密码归 LAPS 管,两者互补,不是替代。域用户密码忘了,重置即可,这是日常运维;本地管理员密码「不知道」恰恰是设计目标——它随机、它轮换、它只在 AD 里。