Windows LAPS 实务指南——告别全部 PC 通用的本地管理员密码
· 更新日期: · Go Komura · Windows, 安全, LAPS, 密码管理, Active Directory, Intune, PowerShell, 信息系统
更新记录(仅首版,2026年08月01日 发布)
- 首次发布
引用本文(DOI(已登记存档): 10.5281/zenodo.22175661)
以下 DOI 指向先前登记的存档,内容可能与当前正文不同。引用当前正文时,请使用本页网址。
Go Komura(2026)。《Windows LAPS 实务指南——告别全部 PC 通用的本地管理员密码》。小村软件有限公司。 https://comcomponent.com/zh-CN/blog/windows-laps-guide/
- DOI(已登记存档)
- 10.5281/zenodo.22175661
- DOI(上次登记版本)
- 10.5281/zenodo.22175662
如果全部 PC 都用同一个本地管理员密码,那么从一台设备泄露出去的凭据,就成了入侵其他设备的“备用钥匙”。哪怕维护步骤很简单,这种配置仍然留着一条让入侵横向扩散的通路。
把这个通用密码改成每台设备各不相同,并把定期更改与保存到目录这两件事自动化的,就是 OS 标准功能 Windows LAPS(Local Administrator Password Solution)。不过,光是系统里带着它并不会运行。要先定下保存位置、受管账户、权限以及维护之后的善后处理,再应用策略。12
本文面向中小企业的信息系统负责人,以及承接 PC 装机与维护运维的开发者,依据截至 2026 年 8 月的一手资料进行说明。这是继 BitLocker、WSUS 停用、防火墙、证书存储之后,面向信息系统人员的安全系列文章之一。
1. 先要定下来的事——保存位置、账户、权限、善后处理
把部署时要定下来的事和部署后要确认的事分开,工作的先后顺序就显出来了。
| 要定下来、要确认的事 | 判断要点 | 阅读位置 |
|---|---|---|
| 把密码保存到哪里 | 配合设备的加入状态,在 AD 与 Entra ID 之间选一个。工作组设备用不了 | 第 3 章 |
| 管理哪个账户 | 在内置 Administrator 与自定义维护账户之间做选择,并确认要用的时候它是否处于启用状态 | 第 4 章 |
| 谁来经手密码 | 在 AD 中把自我更新、查看、解密、更改有效期的权限拆开设计。在 Entra ID 中确认角色与 Graph 权限 | 第 5、6 章 |
| 维护作业之后做什么 | 自动重置的起点是“认证”,不是“查看”。哪怕只是把密码取出来了,也要把作业后的显式轮换写进步骤 | 第 7 章 |
| 怎么从旧版 LAPS 切换 | 不要让同一个账户同时由新旧两方管理。先摘掉旧的管理,再启用新的管理 | 第 8 章 |
| 怎么确认它真的运行了 | 把设备端的处理与保存结果,同管理员查看密码的审计分开确认 | 第 9 章 |
想了解机制就从第 2 章开始;要推进部署,就先用第 3、4 章定下方针,然后用 AD + GPO 看第 5 章,用 Entra ID + Intune 看第 6 章。如果正在运行旧版 LAPS,在下发新策略之前还要确认第 8 章的迁移顺序。
最先要抓住的一点是,Windows LAPS 的默认值是禁用。只有用 BackupDirectory 指定了保存位置,它才开始运行。另外,“密码已经保存下来了”和“能用那个账户做恢复作业”是两项不同的确认事项。2
图中实线表示始终成立的关系,虚线表示带条件的关系(成立条件写在详情页各关系的说明中)。关系的完整列表(共 31 条,附依据与确信度)以及主要概念的定义,汇总在知识地图详情页(日文)。数据:JSON-LD / Turtle
2. Windows LAPS 能减少哪种风险
2.1. 通用密码,就是通用的 NT 哈希
受管理的对象,是内置 Administrator,以及装机时创建的维护用账户这类本地管理员账户。
Windows 保存着由本地账户密码计算出来的 NT 哈希。在 NTLM 认证中,这个哈希就是认证的材料。因此,密码在全部设备上相同,哈希也就在全部设备上相同。
攻击者只要夺走一台设备的管理员权限,从内存或本地数据库(SAM)里取出哈希,就能不还原成明文密码直接用于认证。这就是 Pass-the-Hash 攻击。在通用密码的环境里,从一台设备拿到的哈希在其他设备上照样能用,入侵于是横向扩散。认证的机制在“图解 NTLM 与 Kerberos”中有详细说明。13
flowchart TB
subgraph BEFORE["通用密码的环境"]
A1["攻陷 PC-01<br/>(恶意软件、定向攻击)"] --> H["取得管理员的 NT 哈希"]
H -->|"Pass-the-Hash"| B1["PC-02"]
H -->|"Pass-the-Hash"| B2["PC-03"]
H -->|"Pass-the-Hash"| B3["…横向扩散到全部设备"]
end
subgraph AFTER["部署 LAPS 之后"]
C1["攻陷 PC-01"] --> H2["取得 PC-01 的哈希"]
H2 -->|"每台设备的密码都不同,所以"| STOP["在其他 PC 上无法用这个<br/>哈希认证(经由本地管理员<br/>的横向扩散被阻断)"]
end
图1:让每台设备的密码各不相同,就能切断把一台设备上取得的本地管理员哈希复用到其他设备的通路。
2.2. 别让个性化与定期更改停留在手工作业
对策就是让本地管理员密码按设备各不相同,并且定期更改。不过,把几十台设备的密码分别生成、记入台账、持续更新,这样的运维会成为负担。通用密码之所以被长期沿用,背后正是这笔管理成本。
Windows LAPS 把按设备个性化、自动轮换、保存到目录这几件事一并接了过去。Microsoft 也把应对 Pass-the-Hash 与横向扩散(lateral-traversal)列为它的首要优势。1
LAPS 切断的,是本地管理员账户被反复复用而形成的横向扩散通路。它并不会把其他横向扩散通路也一并堵死,比如从被攻陷的 PC 上窃取域凭据。日常业务不要用管理员账户来做,维护用账户的用途也要收窄。另请参阅“Windows 什么时候需要管理员权限”。
2.3. 旧版 LAPS 与 Windows LAPS 是两套不同的实现
旧版 LAPS(传统的 Microsoft LAPS)是 Microsoft 在 2016 年发布的、需要额外安装的工具。它用 MSI 把组策略扩展(CSE)装进每台设备,把密码以明文保存到 AD 的 ms-Mcs-AdmPwd 属性里,再用 ACL 保护。1
Windows LAPS 是作为它的后继者内置到 OS 中的另一套实现。它包含在 2023 年 4 月 11 日更新程序以后的 Windows 10、Windows 11 21H2/22H2、Windows Server 2019/2022 中,而 Windows 11 23H2 及以后版本和 Windows Server 2025 及以后版本一开始就带着它。只要是符合条件的操作系统与更新程序组合,就不需要额外安装。1
| 视角 | 旧版 LAPS(传统) | Windows LAPS |
|---|---|---|
| 提供形式 | 把 MSI 分发到全部设备并安装 | 内置于 OS(2023 年 4 月更新以后)。无需额外安装1 |
| 密码保存位置 | 仅 Active Directory | Active Directory 或 Microsoft Entra ID1 |
| AD 中的加密 | 不支持(明文 + ACL 保护) | 支持(DFL 2016 以上可加密保存、保存历史)4 |
| DSRM 密码管理 | 不支持 | 域控制器的 DSRM 账户也能管理1 |
| 认证后的自动重置 | 无 | 用 PostAuthenticationActions 在认证后自动重置 + 注销等2 |
| PowerShell | AdmPwd.PS 模块 | LAPS 模块(Get-LapsADPassword 等)5 |
| 今后 | Windows 11 23H2 以后已弃用。新系统上 MSI 安装本身被阻止1 | 当前的标准 |
Windows LAPS 不是旧版 LAPS 的简单改良版,它在 AD 中用的架构属性也是 msLAPS-* 这一套不同的属性。即使已经部署过旧版 LAPS,Windows LAPS 用的架构扩展仍然要重新做一次。5
也有让 Windows LAPS 解释旧 GPO 的“仿真模式”,但那是为迁移准备的机制,新部署没有理由选它。限制与切换步骤在第 8 章说明。
3. 从设备的加入状态出发,选择保存位置
3.1. 保存位置只能是 AD 或 Entra ID 中的一个
Windows LAPS 生成的密码会“备份”到目录中。不能同时保存到 AD 和 Entra ID 两边。1
| 环境 | 保存位置 | 策略下发 | 查看密码的手段 | 判断 |
|---|---|---|---|---|
| 仅加入 AD 域 | Active Directory(计算机对象的 msLAPS-* 属性) |
组策略(LAPS.admx) | Get-LapsADPassword、Active Directory 用户和计算机的属性界面4 |
以本地部署为主的中小企业的首选。需要事先做架构扩展与权限配置 |
| 仅加入 Entra(+Intune) | Microsoft Entra ID | 从 Intune 经 LAPS CSP 下发 | Entra 管理中心/Intune 管理中心、Get-LapsAADPassword(Microsoft Graph)6 |
已经转向云管理的选这个。需要在租户侧启用该功能 |
| 混合加入 | 在 AD 与 Entra ID 中选一个1 | GPO 或 Intune | 按选定的保存位置对应上面某一项 | 由服务台平时看哪一侧办事来决定 |
| 工作组(未加入) | 没有保存位置,无法使用1 | ─ | ─ | 替代方案是按设备设置各自的密码并做台账的人工运维。设备数量增多就该考虑迁移到加入 Entra/加入域 |
工作组设备没有可作保存位置的目录,因此用不了 Windows LAPS。要继续这样运维,就在装机时给每台设备设置不同的密码,并用密码管理器之类的工具安全地做台账管理。如果装机已经脚本化,那就把按设备生成密码也一并纳入脚本。另请参阅“用 winget + PowerShell 自动化 PC 装机”。
3.2. 保存到 AD 时,要区分密码属性与有效期属性
保存到 AD 时,写入的是计算机对象的属性。密码本体与它的有效期,在机密性上的处理并不相同。7
| 属性 | 保存的内容 | 是否机密属性 |
|---|---|---|
msLAPS-Password |
明文密码与附带信息 | 机密属性。仅有普通的读取权限看不到 |
msLAPS-EncryptedPassword 等 msLAPS-Encrypted* |
加密后的密码等 | 机密属性。查看属性与解密内容是两种不同的权限 |
msLAPS-PasswordExpirationTime |
密码的有效期 | 不是机密属性(SearchFlags: 0)。用默认的读取权限就能看到的元数据 |
加密保存与密码历史需要域功能级别(DFL)2016 以上。另一方面,加密配置 ADPasswordEncryptionEnabled 的默认值是启用。在 DFL 低于 2016 的域里,不要指望它会自动切回明文,而要在策略里显式关闭加密,做成明文 + ACL 保护的配置。42
3.3. 把 LAPS 本身的许可和管理服务的许可分开看
Windows LAPS 的功能本身是免费的。保存到 AD 没有额外的许可要求,保存到 Entra ID 也可以用 Microsoft Entra ID Free 及以上的许可。1
不过,用 Intune 下发策略所需的 Intune 许可这类周边功能的要求,要另外确认。保存到 Entra ID 时,还需要在租户侧启用功能。具体步骤汇总在第 6 章。
4. 定下受管账户与要应用的策略
4.1. “管理密码”和“让账户能用”是两码事
如果不指定 AdministratorAccountName,Windows LAPS 会用已知的 RID 定位内置 Administrator。只有在管理自定义维护账户时才指定名称。这项设置并不会创建自定义账户,账户本身要另行准备。2
还有一件必须做的事,是确认启用与禁用状态。内置 Administrator 会在 Windows 安装过程中被禁用。Windows LAPS 也会管理已禁用账户的密码,但在这种常规配置下它不会启用账户。32
因此可能出现“密码保存下来了,但恢复时登录不进去”的状态。如果要用于恢复,就在下面几项里显式选一个。
| 受管对象的选法 | 要准备、要确认的事 |
|---|---|
| 使用内置 Administrator | 决定把它启用起来运行,使其可用 |
| 使用自定义维护账户 | 创建并启用账户,然后指定受管对象名 |
| 使用自动账户管理 | 在 Windows 11 24H2 / Server 2025 及以后版本上,用 AutomaticAccountManagement 系列设置连启用状态一起管理 |
4.2. 指定了保存位置,它才开始运行
Windows LAPS 的 BackupDirectory 默认是禁用(0)。保存到 AD 就指定 2,保存到 Entra ID 就指定 1。这里不配置,密码备份就不会开始。2
主要设置汇总如下。AdministratorAccountName 的说明针对的是不使用自动账户管理的常规配置。本表中的 PasswordExpirationProtectionEnabled 和 ADPasswordEncryptionEnabled 是面向保存到 AD 的设置,不适用于保存到 Entra ID。
| 设置 | 默认值 | 实务中的思路 |
|---|---|---|
| BackupDirectory | 禁用(0) | 必填。AD=2、Entra ID=12 |
| AdministratorAccountName | 未指定(管理内置 Administrator) | 未指定时用 RID 自动定位内置账户。只有在管理自定义维护账户时才指定名称。账户本身不会被创建,要另行创建2 |
| PasswordAgeDays | 30 天 | 轮换周期。1~365 天(保存到 Entra 时最短 7 天)2 |
| PasswordLength / PasswordComplexity | 14 个字符 / 大小写字母数字符号(4) | 保持默认就够用。复杂度 1~3 是为兼容旧版 LAPS 准备的,不推荐2 |
| PasswordExpirationProtectionEnabled | 启用 | 防止把有效期延长到超过策略上限2 |
| ADPasswordEncryptionEnabled | 启用(需要 DFL 2016 以上) | 加密保存。默认只有 Domain Admins 能解密(5.2 节)2 |
| PostAuthenticationResetDelay / PostAuthenticationActions | 24 小时 / 重置 + 注销(3) | 认证后的自动作废(7.3 节)2 |
本章确定的是配置方针,实际的策略下发要等保存位置准备完毕之后再做。用 AD 就进入下一章,用 Entra ID 就进入第 6 章。
5. 以 AD + GPO 配置部署
5.1. 准备林的架构与目标 OU 的权限
保存到 AD 时,要在下发策略之前把架构与权限准备好。架构扩展在整个林里只做一次,自我更新、查看、更改有效期的权限则配合目标 OU 与负责的组来配置。4
下面的 OU、域名、组名以及后面出现的 PC 名都是示例。请替换成自己环境中的对象再执行。
# 1. 架构扩展(整个林只做一次。以 Schema Admins 权限执行)
Update-LapsADSchema
# 2. 给目标 OU 下的计算机授予更新自身密码属性的权限
Set-LapsADComputerSelfPermission -Identity "OU=公司PC,DC=example,DC=co,DC=jp"
# 3. 授予可以查看密码的组(Domain Admins 默认就能查看)
Set-LapsADReadPasswordPermission -Identity "OU=公司PC,DC=example,DC=co,DC=jp" `
-AllowedPrincipals @("EXAMPLE\HelpdeskAdmins")
# 4. 授予可以操作密码有效期(立即失效=下达重置指示)的组
# (7.1 节的 Set-LapsADPasswordExpirationTime 需要它。Domain Admins 默认就可以)
Set-LapsADResetPasswordPermission -Identity "OU=公司PC,DC=example,DC=co,DC=jp" `
-AllowedPrincipals @("EXAMPLE\HelpdeskAdmins")
# 5. 确认有没有意料之外的查看权限持有者(5.2 节详述)
Find-LapsADExtendedRights -Identity "OU=公司PC,DC=example,DC=co,DC=jp"
Update-LapsADSchema 与旧版 LAPS 的 Update-AdmPwdADSchema 是不同的 cmdlet。它追加的属性也不一样,因此只做过旧版 LAPS 的准备是不够的。5
5.2. 查看、解密、更改有效期,要分别授权
使用加密保存时,只给了查看权限是解不了密码的。默认能解密的只有 Domain Admins。如果要把取密码的工作委派给服务台,就在策略的 ADPasswordEncryptionPrincipal 里也指定目标组(按上面的示例就是 EXAMPLE\HelpdeskAdmins)。42
| 需要的操作 | 权限、设置 | 忘了会发生什么 |
|---|---|---|
| 设备更新自身的属性 | Set-LapsADComputerSelfPermission |
设备无法保存密码 |
| 管理员读取密码属性 | Set-LapsADReadPasswordPermission |
负责取密码的管理员读不到属性 |
| 解密加密后的内容 | ADPasswordEncryptionPrincipal |
读得到属性,却取不到明文密码 |
| 管理员操作有效期 | Set-LapsADResetPasswordPermission |
无法用 Set-LapsADPasswordExpirationTime 下达过期指示 |
到这一步,别只看已经授权的组就算完。对目标 OU 拥有 All Extended Rights(扩展权利)的主体,同样能读取机密属性。如果过去宽泛的权限委派还留着,就会出现意料之外的组也能读的状态。用 Find-LapsADExtendedRights 把持有者清点出来,一旦出现 SYSTEM 和 Domain Admins 以外的对象,就重新审视委派内容。4
有了加密保存,就能把属性的查看与解密分离开。“服务台只能解密自己负责的 OU 的密码”这样的设计,就是靠这两道防线来实现的。
5.3. 准备好管理模板,再下发 GPO
GPO 的配置位置是“计算机配置 > 策略 > 管理模板 > 系统 > LAPS”。除了第 4 章定下的受管对象与密码设置之外,还要指定 BackupDirectory = 2。DFL 与加密的组合见 3.2 节,解密的组见 5.2 节。24
如果使用 GPO 的中央存储(Central Store),还需要复制模板。Windows Update 不会把 Windows LAPS 的模板自动复制到中央存储。2
要把 %windir%\PolicyDefinitions\LAPS.admx 和对应语言的 LAPS.adml 成对复制过去。如果是日语界面,就把 ja-JP 子文件夹里的 ADML 放到中央存储对应的语言文件夹中。请注意,只放 ADMX 会让 GPMC 报资源错误。
5.4. 在目标设备上确认保存,从管理端取得密码
Windows LAPS 每小时处理一次生效的策略。如果不想等它自然生效,就在目标设备上执行立即处理,再确认事件日志。4
# 设备端:立即处理策略(验证时的常规做法)
Invoke-LapsPolicyProcessing
# 设备端:用事件日志确认结果
# 10003=处理开始 / 10004=成功 / 10005=失败 / 10018=保存到 AD 成功
Get-WinEvent -LogName "Microsoft-Windows-LAPS/Operational" -MaxEvents 20
保存下来的密码,由管理端拥有查看、解密权限的使用者取得。4
# 从 AD 取得密码(不加 -AsPlainText 时可以在不暴露字符串的状态下处理)
Get-LapsADPassword -Identity PC-0123 -AsPlainText
# 输出示例:会返回 Account、Password、PasswordUpdateTime、ExpirationTimestamp、
# Source(EncryptedPassword 表示加密保存)、AuthorizedDecryptor 等
不加 -AsPlainText 时,可以在不暴露字符串的状态下处理它。在图形界面上,可以从“Active Directory 用户和计算机”里计算机属性的 LAPS 选项卡查看。1
确认过保存与取得之后,还要确认 4.1 节定下的账户能否用于恢复用途。取得之后的轮换见第 7 章,日志的分辨方式见第 9 章。
6. 以 Entra ID + Intune 配置部署
保存到 Entra ID 时,不需要给 AD 做架构扩展,也不需要配置 OU 的 ACL。取而代之,要确认租户侧的启用状态,以及 Entra ID 侧的查看权限。6
| 步骤 | 要做的事 |
|---|---|
| 1. 租户的准备 | 在 Microsoft Entra 租户的“设备设置”里启用本地管理员密码管理 |
| 2. 策略下发 | 从 Intune 经 LAPS CSP 下发,应用 BackupDirectory = 1 以及受管账户、密码相关设置 |
| 3. 确认保存结果 | 在目标设备的事件日志里确认保存到 Entra ID 成功的 10029 |
| 4. 取得密码 | 使用 Entra 管理中心/Intune 管理中心,或者经 Microsoft Graph 的 Get-LapsAADPassword |
如果没有在租户侧启用功能,设备就保存不了密码。另外,保存到 AD 成功是 10018,而 Entra ID 是 10029。要确认与保存位置相符的事件。68
在 Entra ID 中,默认由全局管理员等特权角色查看密码。从 Microsoft Graph 取得时,也要用具备所需权限的连接来执行。下面是用委派访问显式声明作用域的例子。6
# 经 Graph 取得保存在 Entra ID 中的密码(委派访问的例子)
# 连接时显式请求所需的作用域
Connect-MgGraph -Scopes "Device.Read.All","DeviceLocalCredential.Read.All"
Get-LapsAADPassword -DeviceIds PC-0123 -IncludePasswords -AsPlainText
受管账户的启用状态,在保存到 Entra ID 时同样需要 4.1 节那样的确认。维护之后的轮换,不要用仅限 AD 的有效期更改 cmdlet,而要用 7.2 节说明的设备端操作或 Intune 的操作。
7. 维护作业之后,轮换密码
7.1. 区分“下达过期指示”与“设备上完成更改”
在维护作业中取过密码之后,或者怀疑发生了入侵时,不要等到下一次定期轮换,直接更改。请按命令分清执行的位置,以及在那里完成的事。45
| 操作 | 执行的位置 | 做的事 |
|---|---|---|
Set-LapsADPasswordExpirationTime |
拥有 AD 有效期更改权限的管理端 | 把 AD 上的有效期设为“现在”,让设备在下一次处理时轮换。仅用于保存到 AD |
Invoke-LapsPolicyProcessing |
受管的目标设备上 | 立即处理 LAPS 策略。与上面的过期指示组合起来,就能不等定期处理直接完成更改 |
Reset-LapsPassword |
受管的目标设备上 | 直接、立即轮换该设备的受管密码 |
保存到 AD 时,按下面的方式区分使用。前两条命令的执行位置并不相同。
# 从管理端:把有效期设为“现在”,让下一次处理完成轮换
Set-LapsADPasswordExpirationTime -Identity PC-0123
# 在目标设备上触发立即处理,当场就换成新密码
Invoke-LapsPolicyProcessing
# 在目标设备上直接立即轮换时
Reset-LapsPassword
更改有效期的命令成功了,和目标设备的密码已经换新了,不是一回事。要一直确认到目标设备的处理结果与保存成功的日志。
7.2. 保存到 Entra ID 时,从目标设备或 Intune 更改
Set-LapsADPasswordExpirationTime 仅用于保存到 AD。保存到 Entra ID 的设备,要在目标设备上执行 Reset-LapsPassword,或者使用 Intune 的本地管理员密码轮换操作。请这样理解:保存位置不同,管理侧的操作也不同。65
7.3. 自动重置是在“认证之后”,不是“查看之后”
Windows LAPS 有 PostAuthenticationActions,它在检测到受管账户完成认证之后,等宽限时间过去再做善后处理。默认在 24 小时后执行“重置密码 + 注销”。2
| PostAuthenticationActions | 动作 |
|---|---|
| 1 | 重置密码 |
| 3(默认) | 重置 + 注销交互式会话(同时断开 SMB 会话)2 |
| 5 | 重置 + 重启设备2 |
| 11 | 重置 + 注销 + 结束残留进程(Windows 11 24H2 / Server 2025 及以后版本)2 |
这不是“用过的瞬间就失效”的功能。在宽限时间之内,同一个密码依然有效。此外,还要区分下面两点。
| 设置、操作 | 自动处理的表现 |
|---|---|
把 PostAuthenticationResetDelay 设为 0 |
不是立即执行,而是认证后的处理本身被关闭 |
| 只是从目录里查看了密码,并没有用它认证 | 不会成为认证后处理的起点,这项自动重置不会运行 |
为了不让密码留在备忘或聊天记录里,也要把取得之后,无论用没用过,都在作业完成时做显式轮换固定进操作步骤。用 AD 就按 7.1 节、用 Entra ID 就按 7.2 节的方法做,并且确认到结果为止。
8. 从旧版 LAPS 迁移时,不要造出双重管理
8.1. Windows LAPS 的优先,和停用旧 CSE 是两回事
同一个账户同时由旧版 LAPS 和 Windows LAPS 管理的配置,不受支持。因为两套机制会互相更改同一个密码,会成为安全风险。9
容易混为一谈的是下面两件事。
| Windows LAPS 侧的行为 | 光靠它停不下来的东西 |
|---|---|
| 只要有一条 Windows LAPS 的策略生效,Windows LAPS 自身就会忽略旧版 LAPS 的策略 | 已安装的旧 CSE 会独立地继续处理旧 GPO |
也就是说,并不是“反正 Windows LAPS 优先,旧 CSE 留着也没关系”。如果把设备留在旧 GPO 的应用范围内就启用新策略,就会变成两边同时轮换同一个账户的状态。9
8.2. 确认仿真模式生效的条件
让 Windows LAPS 处理旧版 LAPS 的 GPO 的仿真模式,只在没有安装旧 CSE 的设备上生效。它会原样沿用旧架构、旧 ACL 等旧版 LAPS 环境的前提,但用不了加密、保存到 Entra ID 等新功能。9
有时只是更新了操作系统,还留着旧 GPO 的设备就会在无意中开始以仿真模式运行。如果想避免装机刚结束时出现意料之外的密码更改,可以用本地配置项设置 BackupDirectory = 0 来抑制它。9
8.3. 先摘掉旧的管理,再启用新的管理
迁移按下面的顺序推进。
- 把目标 OU 从旧版 LAPS 的 GPO 应用范围里摘出去,或者卸载旧 CSE,解除旧的管理。
- 应用 Windows LAPS 的策略。
- 清理掉旧 GPO、旧 CSE 的残留。
要点是按设备把“是哪一套机制在管理”唯一确定下来。顺序反过来,就会在还留着旧 CSE 的设备上造出双重管理。
9. 把动作确认的日志与密码查看的审计分开
9.1. 在设备上确认处理、保存位置与生效的策略
Windows LAPS 的运行情况记录在事件查看器的“应用程序和服务日志 > Microsoft > Windows > LAPS > Operational”里。8
| 事件 ID | 要确认的事 |
|---|---|
| 10003 | 策略处理开始 |
| 10004 / 10005 | 策略处理成功 / 失败 |
| 10018 / 10029 | 密码保存成功。AD 是 10018,Entra ID 是 10029 |
| 10021 / 10022 / 10023 | 生效中策略的内容。保存到 AD / 保存到 Entra ID / 旧版 LAPS 仿真 |
可以用 5.4 节的 Get-WinEvent 取得。遇到“不运行”“取不到”的情况时,要分开确认:策略是否生效、保存位置是否准备好、保存是否成功、取的一方有没有查看与解密权限。
9.2. 在目录一侧留下“谁、在什么时候看过”
设备正常完成轮换的记录,代替不了管理员查看密码的历史。对集中保存的密码,其查看行为要另行审计。
保存到 AD 时,用 Set-LapsADAuditing 配置目标 OU 的审计设置,把对密码属性的访问记录到域控制器的安全日志里。保存到 Entra ID 时,用 Entra 侧的审计日志与报告功能来追踪。51
10. 总结——保存成功了,部署还没有结束
Windows LAPS 是把全部 PC 通用的本地管理员密码,变成按设备单独管理并自动轮换的机制。它内置在受支持的 Windows 中,所以不需要额外安装,但没有指定保存位置的策略它就不会运行。新部署要选 Windows LAPS,旧版 LAPS 则要规划迁移。12
部署与维护的确认,要一直做到下面这些地步。
| 确认的阶段 | 完成的判断标准 |
|---|---|
| 保存位置 | 选好了与设备加入状态相符的 AD 或 Entra ID,并完成了必要的准备与策略配置 |
| 受管对象 | 要管理的账户确实存在,并定下了恢复时可用的启用状态 |
| 权限 | 确认过有没有意料之外的查看者,并给负责人配置了必要的查看、解密、更改有效期的权限 |
| 日常运维 | 取得之后无论用没用过都做轮换,并且有确认到设备端处理与保存结果的步骤 |
| 迁移与审计 | 不存在与旧版 LAPS 的双重管理,设备的动作与密码的查看都能分别追踪 |
工作组设备不在 LAPS 的适用范围内,因此需要人工按设备管理密码,或者重新考虑加入 Entra ID、加入域。另外,LAPS 处理的是本地管理员密码被反复复用的问题,并不能连其他凭据的窃取也一并防住。
重要的是把“能保存”“需要的负责人能取得”“能用于恢复”“作业之后能更改”这几件事,作为一套运维一并确认。
相关文章
- BitLocker 实务指南——从恢复密钥管理入手的驱动器加密
- 图解 NTLM 与 Kerberos——为什么认证会“回退”到 NTLM
- Windows 什么时候需要管理员权限 - UAC、保护区域与设计上的辨别方式
- 用 winget + PowerShell 自动化 PC 装机——让操作手册可执行
- Windows 的 TPM 是什么——图解“不外泄密钥的保险柜”与度量启动
- 报废 Windows 电脑之前应该做的事——数据清除、账户解绑、备份的实务检查清单
相关咨询领域
合同会社小村软件承接 PC 装机自动化脚本的编写、包含 Windows LAPS 部署在内的终端安全配置整备,以及从现有通用密码运维迁移出去的计划制定。从“装机操作手册倒是有,但完全依赖个人”“想上 LAPS,但对 AD 的权限配置没把握”这样的阶段开始谈也完全可以。
参考链接
-
Microsoft Learn, What is Windows LAPS?. 关于 Windows LAPS 是自动管理并备份已加入 Entra 或已加入 AD 的设备的本地管理员账户密码的 Windows 功能;支持的操作系统(2023 年 4 月 11 日更新以后的 Windows 10、Windows 11 21H2/22H2、Windows Server 2019/2022,以及 Windows 11 23H2 及以后版本、Windows Server 2025 及以后版本原生自带);首要优势是抵御 Pass-the-Hash 攻击与横向扩散攻击;按加入状态确定的保存位置限制(仅加入 Entra→Entra ID,仅加入 AD→AD,混合→二选一,不能同时保存到两边);旧版 LAPS 自 Windows 11 23H2 起被弃用且新系统会阻止 MSI 安装;旧版 LAPS 是 2016 年发布的另一款产品,Windows LAPS 是完全不同的实现;可通过 Active Directory 用户和计算机的属性界面、专用事件日志通道、PowerShell 模块进行管理;功能本身免费,保存到 AD 无需额外许可,保存到 Entra ID 用 Entra ID Free 及以上即可等内容。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12 ↩13 ↩14 ↩15 ↩16
-
Microsoft Learn, Configure policy settings for Windows LAPS. 关于通过 GPO(计算机配置>策略>管理模板>系统>LAPS,模板位于 %windir%\PolicyDefinitions\LAPS.admx)与 LAPS CSP 配置策略;LAPS.admx 需要手动复制到 GPO 中央存储;各项设置的默认值(BackupDirectory=禁用,PasswordAgeDays=30 天、最短 1 天、保存到 Entra 时最短 7 天,PasswordLength=14,PasswordComplexity=4 且 1~3 用于兼容旧版 LAPS,PasswordExpirationProtectionEnabled=启用,ADPasswordEncryptionEnabled=启用且需要 DFL 2016 以上,PostAuthenticationResetDelay=24 小时且设为 0 会被关闭,PostAuthenticationActions=3);未指定 AdministratorAccountName 时用 RID 自动定位内置账户,且 LAPS 不会创建自定义账户;PostAuthenticationActions 各取值(1=重置,3=重置+注销+删除 SMB 会话,5=重置+重启,11=重置+注销+结束进程,需 Windows 11 24H2/Server 2025 及以后版本)等内容。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12 ↩13 ↩14 ↩15 ↩16 ↩17 ↩18 ↩19 ↩20 ↩21 ↩22
-
Microsoft Learn, Local accounts. 关于内置 Administrator 账户会在 Windows 安装过程中被禁用,并转而创建另一个属于 Administrators 组的本地账户;被禁用的 Administrator 账户除安全模式下的特例外无法使用;本地管理员账户的密码反复复用会带来 Pass-the-Hash 攻击导致横向扩散的风险,并把 LAPS 列为随机化的首要手段等内容。 ↩ ↩2
-
Microsoft Learn, Get started with Windows LAPS and Windows Server Active Directory. 关于用 Update-LapsADSchema 在整个林中做一次架构扩展;用 Set-LapsADComputerSelfPermission 授予计算机自身的更新权限;用 Set-LapsADReadPasswordPermission 授予查看权限(Domain Admins 默认就能查看);用 Set-LapsADResetPasswordPermission 授予设置有效期(立即失效)的权限(Domain Admins 默认持有);查看权限与解密权限是两回事,由 ADPasswordEncryptionPrincipal(默认是 Domain Admins)决定谁能解密;用 Find-LapsADExtendedRights 确认扩展权利的持有者(LAPS 的密码属性全都是机密属性,扩展权利持有者可以读取);BackupDirectory=2 是必填设置;策略每小时处理一次,可用事件 10018 确认保存到 AD 成功;用 Invoke-LapsPolicyProcessing 立即处理;用 Get-LapsADPassword 取得密码;用 Set-LapsADPasswordExpirationTime 设置过期,用 Reset-LapsPassword 在设备上立即轮换;加密需要 DFL 2016 以上,低于该级别只能以明文(ACL 保护)保存等内容。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10
-
Microsoft Learn, Overview of Windows LAPS PowerShell cmdlets. 关于 LAPS PowerShell 模块各个 cmdlet(Get-LapsAADPassword、Get-LapsADPassword、Invoke-LapsPolicyProcessing、Reset-LapsPassword、Set-LapsADAuditing、Set-LapsADComputerSelfPermission、Set-LapsADPasswordExpirationTime、Set-LapsADReadPasswordPermission、Set-LapsADResetPasswordPermission、Update-LapsADSchema、Find-LapsADExtendedRights、Get-LapsDiagnostics)的职责;与旧版 LAPS 的 AdmPwd.PS 模块的对应表;Windows LAPS 的 cmdlet 作用于与旧版 LAPS 完全不同的架构扩展等内容。 ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
Microsoft Learn, Get started with Windows LAPS and Microsoft Entra ID. 关于保存到 Entra ID 时需要在租户的设备设置中启用该功能;向已加入 Entra 的设备下发策略推荐使用 Intune + LAPS CSP;保存到 Entra 时生效的设置子集;取得密码要经 Microsoft Graph(Get-LapsAADPassword 是 Graph PowerShell 的包装)或在 Entra/Intune 管理中心的界面上进行;所需的 Graph 权限(Device.Read.All 与 DeviceLocalCredential.Read.All 或 DeviceLocalCredential.ReadBasic.All);保存成功可用事件 10029 确认等内容。 ↩ ↩2 ↩3 ↩4 ↩5
-
Microsoft Learn, Windows LAPS schema extensions reference. 关于 Update-LapsADSchema 给计算机对象追加的 msLAPS-* 属性(msLAPS-Password=明文密码与附带信息,msLAPS-PasswordExpirationTime=有效期,msLAPS-EncryptedPassword=加密后的密码等)的规格;密码类属性的 SearchFlags 为 904(含 fCONFIDENTIAL=机密属性),而 msLAPS-PasswordExpirationTime 的 SearchFlags 为 0、没有被标记为机密等内容。 ↩
-
Microsoft Learn, Use Windows LAPS event logs. 关于全部动作都记录在专用事件日志通道(事件查看器的应用程序和服务日志>Microsoft>Windows>LAPS>Operational)中;策略处理的开始 10003、成功 10004、失败 10005;生效中策略内容的记录(保存到 AD 10021、保存到 Entra 10022、旧版 LAPS 仿真 10023);密码保存成功的事件(AD=10018,Entra ID=10029)等内容。 ↩ ↩2
-
Microsoft Learn, Get started with Windows LAPS in legacy Microsoft LAPS emulation mode. 关于由 Windows LAPS 解释旧版 LAPS 的 GPO 设置来运行的仿真模式的限制(只能明文保存;旧架构扩展、旧 GPO 定义、旧 ACL 管理需要安装旧版 LAPS;存在 Windows LAPS 策略时始终以它优先并忽略旧策略;在装有旧版 LAPS CSE 的设备上不生效);同一个账户由两套机制管理的配置属于安全风险且不受支持;可在本地配置项中设置 BackupDirectory=0 来抑制仿真模式等内容。 ↩ ↩2 ↩3 ↩4
相关文章
共享相同标签的最新文章。可以围绕相近的主题进一步加深理解。
组策略(GPO)实务入门——原理、生效确认与 Intune 分工
还不清楚“用 GPO 下发”的含义就在操作 AD 环境吗?本文从实务角度讲解组策略原理与 LSDOU 应用顺序、用 gpupdate、gpresult 确认生效、与 Intune 分工,以及客户方 GPO 改变应用行为的陷阱。
SMB 签名与 LDAP 通道绑定——在实务中收紧 NTLM 对策的“另一半”
在停用 NTLM 之前,抑制中继攻击危害的防御手段是 SMB 签名与 LDAP 签名、通道绑定。本文从实务角度梳理各操作系统的默认值、审计事件的解读方法、推进到强制的步骤,以及业务应用和设备的修复方法。
NTLM 停用会导致业务应用停止运行吗——审计日志的采集方法与消除依赖的顺序
围绕 NTLM 停用,整理出梳理本公司 Windows 环境与业务应用在何处依赖 NTLM 的步骤:审计策略、NTLM/Operational 日志中事件 8001~8004 的追踪方法、回退到 NTLM 的典型模式与修复方式,以及 SMB 的 NTLM 阻止。
Windows 安全审核策略与事件日志排查实务——成为看得懂 4625 的信息系统负责人
这是一份用于回应“帮忙查一下登录失败日志”的实务指南。讲解基本审核策略与高级审核策略的关系、至少应启用的子类别、事件 ID 4624/4625/4688 的读法、Security 日志的容量设计,以及用 Get-WinEvent 提取日志的方法。
Windows 证书存储实务指南——应该放入用户存储还是计算机存储
客户端证书应该放入用户存储还是计算机存储。从 certmgr.msc 与 certlm.msc 的区别、私钥的权限授予,到用 PowerShell 盘点有效期,系统性地消除证书典型故障的实务指南。
相关主题
与本文相近的主题页面。以本文为起点,可以进一步了解相关服务和其他文章。
Windows 技术主题
汇整 KomuraSoft LLC 关于 Windows 开发、故障调查与既有资产活用文章的主题中心。
常见问题
汇总了咨询这一主题时常见的问题。
- 我们已经在运行旧版 LAPS(以 MSI 分发的 Microsoft LAPS),需要做点什么吗?
- 请开始制定迁移计划。旧版 LAPS 自 Windows 11 23H2 起已被弃用,在新系统上 MSI 安装本身就会被阻止。当前的操作系统(已应用 2023 年 4 月更新的 Windows 10/11,以及 Windows Server 2019/2022 及以后版本)已内置 Windows LAPS,因此无需额外安装即可迁移。迁移期间也可以用 Windows LAPS 的“旧版 LAPS 仿真模式”继续处理旧策略,但存在限制:在装有旧版 LAPS CSE 的设备上不生效,也用不了加密、保存到 Entra ID 等新功能。同一个账户由新旧两套机制同时管理的配置不受支持,因此请按设备明确是哪一方在管理,再进行切换。
- 取出的密码用完之后就那样放着不管可以吗?
- 默认配置下会自动善后,但不是立即执行。Windows LAPS 有 PostAuthenticationActions,它在检测到受管账户完成认证(登录)之后,等宽限时间过去再执行处理,默认在认证后 24 小时执行密码重置与注销。反过来说,在宽限时间结束之前,同一个密码仍然有效可用,并不是“用过的瞬间就失效”。而且这套机制只在“用密码完成了认证”时才会启动,仅仅“从目录里查看了一下”并不会启动它。可靠的做法是在作业完成时显式地让它失效。保存到 AD 时,用 Set-LapsADPasswordExpirationTime 让它过期(该 cmdlet 仅用于保存到 AD 的情形)。保存到 Entra ID 时,在目标设备上执行 Reset-LapsPassword,或者使用 Intune 的本地管理员密码轮换操作。
- 既没有加入域、也没有加入 Entra ID 的工作组 PC 能用吗?
- 用不了。Windows LAPS 需要 Active Directory 或 Microsoft Entra ID 作为密码的保存位置,两边都没有加入的设备没有可备份的去处。如果要继续以工作组方式运维,现实的替代方案是人工运维:为每台设备设置各不相同的本地管理员密码,并在安全的地方(密码管理器等)做台账管理。当设备数量变多时,为了享受包括 LAPS 在内的集中管理带来的好处,就该考虑迁移到加入 Entra ID(+Intune)或加入域了。
- 保存下来的密码谁能查看?
- 保存到 Active Directory 时,默认能查看的是 Domain Admins 的成员,其他用户或组需要用 Set-LapsADReadPasswordPermission 显式授权。不过,密码属性虽然是机密属性(confidential),但对 OU 拥有扩展权利(All Extended Rights)的主体依然能读取,因此部署时务必用 Find-LapsADExtendedRights 确认有没有意料之外的持有者。进一步用 ADPasswordEncryptionEnabled 启用加密(需要域功能级别 2016 以上),还能把可解密的对象收窄到用 ADPasswordEncryptionPrincipal 指定的组。保存到 Entra ID 时,默认是全局管理员等特权角色能查看,通过 Microsoft Graph 获取则需要 DeviceLocalCredential.Read.All 权限。
- 使用 Windows LAPS 需要额外的许可吗?
- 功能本身是免费的。Windows LAPS 是受支持的 Windows 内置的标准功能,把密码保存到 Active Directory 没有额外的许可要求。保存到 Microsoft Entra ID 也可以用 Microsoft Entra ID Free 及以上的许可。至于用 Intune 下发策略所需的 Intune 许可这类周边的 Entra/Intune 相关功能,可能另有许可要求,单独确认这一点即可。