Windows LAPS 通过 Intune 部署与故障排除完全指南(2026):事件 ID、密码轮换与 PowerShell 实战

从 Intune 策略创建、Entra ID 租户启用,到事件 ID 10018/10020/10031/10033/20000 的逐条定位,再到 Get-LapsAADPassword、Reset-LapsPassword 的 PowerShell 实战——本指南覆盖 2026 年 Windows LAPS 云原生部署的全链路故障排查。

Windows LAPS Intune部署故障排除完全指南2026

说实话,自从 2023 年 4 月的安全更新把 Windows LAPS(Local Administrator Password Solution,本地管理员密码解决方案)内置进 Windows 10/11 和 Windows Server 之后,传统那个 Microsoft LAPS CSE 就基本退出历史舞台了。进入 2026 年,企业设备大规模往 Microsoft Entra ID 云加入(Cloud Join)或混合加入(Hybrid Join)迁移,"通过 Intune 管策略"已经成了默认打法。

但麻烦也来了。

我自己在客户现场见过太多次——策略看起来"成功"下发了,Intune 门户里却死活看不到密码;事件日志里 10031、10033、20000 轮番报错,管理员一脸懵。这篇指南就是给 IT 服务台和企业管理员写的,从零到一讲清楚云原生部署流程,给你一份完整的事件 ID 速查表,外加 PowerShell 的实战排查套路。一句话,帮你在 2026 年用最短路径把 LAPS 跑稳。

一、2026 年 Windows LAPS 架构与前提条件

先把基础打牢。Windows LAPS 会把随机生成的本地管理员密码存到以下两个位置之一(注意:是互斥的,只能二选一):

  • Windows Server Active Directory(AD):传统域环境,密码存到计算机对象的属性里(加密或明文,取决于你怎么配)。
  • Microsoft Entra ID:云环境推荐,密码挂在 Entra 设备对象上,靠 Graph API 取回。

如果你走的是 Intune 这条路,被管设备得同时满足下面这些条件,一个都不能少:

  • Windows 10 20H2 或 Windows 11(任意受支持版本),且必须打过 2023 年 4 月及之后的月度累积更新。
  • 设备已 Microsoft Entra 加入(AADJ)或 Microsoft Entra 混合加入(Hybrid AADJ)。
  • 设备已在 Intune 中注册(MDM 托管)。
  • 租户有 Microsoft Entra ID P1 以上授权(LAPS 本身不吃 P1,但你早晚会用上设备合规与条件访问)。
  • 操作人员具有 Intune 管理员或云设备管理员角色——配策略、取密码都靠它。

1.1 与传统 LAPS 的关键差异

这是个老坑:很多管理员想当然地以为 Windows LAPS 和旧版 LAPS(LAPS.x64.msi)可以和平共处。恕我直言,它们是互斥的。如果你在已经打了 2023 年 4 月补丁的设备上硬塞旧版 LAPS CSE 再配旧版 GPO,结果就是双方互掐:Windows LAPS 刷 1003110033,旧版 LAPS 刷事件 ID 6,两个都罢工,密码谁也轮换不了。这种场景我经手过不下五次,每次都是清理旧 MSI 才解决。

二、第 1 步:在 Microsoft Entra 租户中启用 LAPS

这里要划重点——Microsoft Entra ID 默认情况下不允许受管设备回写 LAPS 密码。这也是最常见、也最容易被跳过的一步。十个"策略已应用但密码不显示"的 case,有八个都栽在这个开关上。

  1. 以全局管理员或云设备管理员身份登录 Microsoft Entra 管理中心
  2. 导航到 设备 → 所有设备 → 设备设置(某些租户的路径是 标识 → 设备 → 概述 → 设备设置,UI 偶尔会改,别慌)。
  3. "启用 Microsoft Entra Local Administrator Password Solution (LAPS)" 切到 "是"
  4. 保存,搞定。

如果你有多租户要批量处理,用 Microsoft Graph PowerShell 脚本化会快很多:

Connect-MgGraph -Scopes "Policy.ReadWrite.DeviceConfiguration"

$params = @{
    localAdminPassword = @{
        isEnabled = $true
    }
}
Update-MgPolicyDeviceRegistrationPolicy -BodyParameter $params

# 验证状态
Get-MgPolicyDeviceRegistrationPolicy | Select-Object -ExpandProperty LocalAdminPassword

三、第 2 步:在 Intune 中创建 LAPS 策略

Intune 给 Windows LAPS 配了专门的"账户保护"策略模板,不用再手搓 OMA-URI 了,省心不少。

  1. 登录 Microsoft Intune 管理中心
  2. 进入 终结点安全性 → 账户保护 → 创建策略
  3. 平台选 Windows,配置文件选 "本地管理员密码解决方案 (Windows LAPS)"
  4. 给策略起个能一眼看懂的名字,比如 Prod-LAPS-AzureAD-Default

3.1 关键配置项逐项解析

下面这张表,是 2026 年 Intune 策略 UI 中真正需要你停下来想一想的设置。讲真,很多生产事故都是默认值没改带出来的——

设置推荐值说明
BackupDirectory备份到 Azure AD (1)决定密码回写去 Entra ID 还是本地 AD;0 = 禁用,1 = Entra ID,2 = AD
PasswordAgeDays30密码最大有效期,到期就自动轮换
AdministratorAccountName空(默认)留空就管 SID 以 -500 结尾的内置管理员;要指定自定义账户,必须先用别的策略把那个账户建出来,否则 LAPS 会找不到
PasswordComplexity4大写 + 小写 + 数字 + 特殊字符
PasswordLength20+默认 14;2026 年我的建议是至少 20 位
PostAuthenticationActions3(重置密码并注销)管理员登录后是否自动轮换;5 = 重置并重启
PostAuthenticationResetDelay1(小时)登录后多久触发 Post-Auth 动作

3.2 分配范围

建议用动态设备组分配,比如"所有 Windows 10/11 企业版 AADJ 设备"。生产全量推送前,先找 20–50 台设备做试点,并启用 仅审核(audit)模式——也就是只下发配置、先不轮换密码,观察事件日志一周,再放心推全量。心急真的容易出事。

四、第 3 步:验证策略已生效

到目标设备上,打开 事件查看器 → 应用程序和服务日志 → Microsoft → Windows → LAPS → Operational。刚下发策略那阵,你应该会依次看到:

  • 10003:LAPS 检测到新策略。
  • 10004:LAPS 已应用策略(含参数摘要)。
  • 10018(AD 备份)或 10029(Entra ID 备份):首次密码回写成功。
  • 10020:本地账户的密码已经真的被更新了。

不想等下一个 MDM 同步周期?在提升的 PowerShell 里直接触发:

Invoke-LapsPolicyProcessing
Get-LapsDiagnostics -OutputFolder "C:\Temp\LAPSDiag"

Get-LapsDiagnostics 会打包一份完整的诊断(事件日志、CSP 值、策略快照)。顺便说一句,这个包是你提 Microsoft 支持工单时最值钱的素材——比你自己文字描述管用十倍。

五、第 4 步:使用 PowerShell 检索与轮换密码

5.1 检索 Entra ID 中的密码

Get-LapsAADPassword 其实是 Microsoft Graph PowerShell 的一个包装器,跑之前得先装好 Graph 模块:

Install-Module Microsoft.Graph -Scope CurrentUser
Import-Module LAPS

# 连接 Graph(需要已创建的应用注册及相应权限)
Connect-MgGraph -Scopes "DeviceLocalCredential.Read.All"

# 仅查询元数据(上次回写时间、下次过期时间)
Get-LapsAADPassword -DeviceIds "DESKTOP-ABC123"

# 检索完整密码(明文)
Get-LapsAADPassword -DeviceIds "DESKTOP-ABC123" -IncludePasswords -AsPlainText

# 包含历史密码(需开启密码历史策略)
Get-LapsAADPassword -DeviceIds "8155b933-9cfa-4d86-ba50-dd72ca6579db" `
    -IncludePasswords -AsPlainText -IncludeHistory

权限说明:只读元数据,DeviceLocalCredential.ReadBasic.All 就够;要看明文密码,得有 DeviceLocalCredential.Read.All。2026 年 Microsoft 官方的口风是——用受限权限的专用 Entra 应用去调,不要拿全局管理员账号去做日常检索。这条我非常赞同,审计日志会干净很多。

5.2 手动强制轮换密码

安全事件响应的时候(比如怀疑密码泄露、员工离职),你肯定不想等自然周期到了再轮换。

# 方式 1:在设备上本地执行
Reset-LapsPassword

# 方式 2:从 Intune 门户远程触发
# 设备 → 选中设备 → 概述 → ... → 轮换本地管理员密码

# 方式 3:通过 Graph API 批量触发
$deviceId = "8155b933-9cfa-4d86-ba50-dd72ca6579db"
Invoke-MgGraphRequest -Method POST `
    -Uri "https://graph.microsoft.com/beta/deviceManagement/managedDevices/$deviceId/rotateLocalAdminPassword"

触发后等个 10–30 分钟(看设备签入频率),在事件日志里确认有 10044(密码已轮换并完成登录后操作)就算圆满。

六、事件 ID 完整参考表

下面这张表,列的是 2026 年 Windows LAPS 操作日志里最常见的事件 ID。我个人的建议是——把它打印出来贴在运维手册里,当一线服务台的排查圣经使。

事件 ID类型含义与处置
10003 / 10004Info策略检测与应用成功
10013Warning找不到要管理的本地账户——查 AdministratorAccountName 设置与账户是否存在
10018Info密码已成功回写到本地 AD
10020Info本地账户密码已更新
10029Info密码已成功回写到 Microsoft Entra ID
10031Warning外部密码修改请求被阻断——遗留 LAPS 或其他密码管理工具冲突的经典信号
10032 / 10033Error与旧版 LAPS 仿真模式冲突——卸载旧版 CSE 或关闭仿真
10041Info检测到管理员账户登录成功(Post-Auth 流程启动)
10042InfoPost-Auth 宽限期已过,将执行登录后动作
10043Error密码重置失败——检查本地密码策略冲突、账户锁定状态
10044Info密码已重置并完成登录后动作
20000Error设备未加入目标目录——CSP 拒绝配置;先跑 dsregcmd /status 确认加入状态

七、五大常见故障场景与排查步骤

7.1 场景一:Intune 门户看不到密码,但策略显示"成功"

老实说,这是我 hotline 接到最多的一类案子。三大根因:

  1. 租户级 LAPS 开关没启用(请回翻第二节,别偷懒)。
  2. 设备只在 Intune 注册,但没加入 Entra ID——跑一下 dsregcmd /status,确认 AzureAdJoinedYES;如果是 NO,那这台设备多半是 "Registered" 而非 "Joined",根本没法回写 LAPS 密码。
  3. 账号权限不够——看密码至少需要云设备管理员、Intune 管理员、服务台管理员、安全读者或安全管理员角色之一;光有"报告读取者"是不行的。

7.2 场景二:事件 10031 + 10033 反复刷屏

几乎百分百是遗留 LAPS(LAPS.x64.msi)没卸干净。在受影响设备上,这样收拾:

# 静默卸载旧版 LAPS MSI
msiexec.exe /q /uninstall {97E2CA7B-B657-4FF7-A6DB-30ECC73E1E28}

# 如果是通过 Intune Win32 应用装的,在 Intune 门户把旧版 LAPS 应用分配改成"卸载"

# 确认 CSE 已卸载
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*" |
    Where-Object { $_.DisplayName -like "*Local Administrator Password*" }

卸完重启,再跑 Invoke-LapsPolicyProcessing,盯事件日志看能不能恢复到 10018/10029 正常回写的状态。大多数情况下,这一套做完世界就清净了。

7.3 场景三:事件 10043,密码重置失败

Windows LAPS 生成的密码,必须满足本地密码策略。举个具体例子:本地有条老的 GPO 把最短密码长度卡在 24 位,而你的 LAPS 策略设的是 20 位——就是会失败。

# 检查生效的本地密码策略
net accounts

# 检查密码复杂度 GPO
secedit /export /cfg C:\Temp\secpol.cfg /areas SECURITYPOLICY
Get-Content C:\Temp\secpol.cfg | Select-String "Password"

处理方式有两条:要么把 Intune LAPS 策略的长度调到 ≥ 本地要求,要么干脆在 Intune 里用同一套"账户保护 → 账户锁定 / 密码策略"统一下发,别再让 GPO 和 MDM 两边打架了。

7.4 场景四:事件 20000,设备未加入

最典型的原因是设备处在"双重状态"(同时 Entra Registered 和 Hybrid Joined),早期 Windows 10 版本特别容易中招。推荐操作:

# 确认当前加入状态
dsregcmd /status

# 升级到 Windows 10 1803+ / Windows 11,系统会自动清掉冗余的 Registered 状态
# 如需手动清理
dsregcmd /leave

# 重新加入
dsregcmd /join

顺带验证下设备能不能访问企业注册终结点:https://enterpriseregistration.windows.net。代理或防火墙把这个地址挡在外面,是另一个我踩过三次的坑。

7.5 场景五:混合加入设备策略漂移

混合加入设备很特殊,它可能同时被 GPO 和 Intune 两边管着。Windows LAPS 的 策略优先级是这样的:CSP/MDM(Intune)> 组策略 > 本地。如果 AD 里还留着旧的 LAPS GPO,跑一下:

gpresult /h C:\Temp\gpreport.html

# 查找应用的 LAPS 相关 GPO
Get-Content C:\Temp\gpreport.html | Select-String -Pattern "LAPS" -Context 2

把冗余 GPO 的"已验证身份的用户"读取权限撤掉,或者在 Intune 侧先显式设 BackupDirectory = 0 禁用 LAPS,确认清理干净了再切回 1/2。两步走,稳妥。

八、最佳实践与安全加固(2026)

  • 密码长度至少 20 位:以现在 GPU 的离线破解能力看,14 位已经扛不住定向攻击了。
  • 启用密码历史(Entra ID 模式支持):Post-Auth 强制轮换以后也能追溯前 N 次密码,取证的时候真的救命。
  • 与条件访问联动:检索 LAPS 密码的 Graph 调用,强制要求设备合规 + 多因素认证。
  • 按角色最小化授权:服务台级人员给"服务台管理员"就够了,千万别随手配"云设备管理员"。
  • 审计日志接 SIEM:所有 Get-LapsAADPassword 调用都会在 Microsoft Entra 审计日志的"DeviceManagement"类别里留痕——定期导出到 SIEM,盯异常批量检索行为。
  • 灾备提醒:在 Entra ID 里删掉设备对象之后,绑定的 LAPS 密码就永久丢了。对于要下线回收的设备,先取密码、再删对象,这个顺序千万别反。

九、常见问题解答(FAQ)

Q1:Windows LAPS 要不要额外付费?

不要。Windows LAPS 是 Windows 操作系统自带的功能,零额外授权费。通过 Intune 管理需要 Intune 授权(通常已经包含在 Microsoft 365 E3/E5 里了),密码存 Entra ID 也不另收钱。

Q2:Windows LAPS 能同时备份到本地 AD 和 Entra ID 吗?

不行。BackupDirectory 是互斥的:0 = 禁用,1 = Entra ID,2 = 本地 AD。每台设备在任何时刻只能选一个目标目录。要切目标的话,先把旧目标的设置清空(避免留孤儿数据),再切到新的。

Q3:用户用 Intune 门户或 PowerShell 检索过的 LAPS 密码,会被审计吗?

会。所有检索操作都会记到 Microsoft Entra 审计日志,类别是"DeviceManagement",活动名为"Recover device local administrator password"。建议把审计日志接到 Microsoft Sentinel 或第三方 SIEM,方便合规留存。

Q4:设备长时间离线(比如 60 天),Windows LAPS 会咋处理?

设备离线期间没办法回写新密码,所以 Entra ID 里存的还是上次在线时回写的那个。一旦设备重新联网并完成下次 MDM 签入,Windows LAPS 会立刻检查密码过期时间——如果已经过期,几分钟内就会生成新密码并回写,对应事件 ID 10029 + 10020。

Q5:Windows LAPS 能不能和第三方 PAM(特权访问管理)工具(比如 CyberArk、BeyondTrust)并用?

技术上行,但必须协调好。任何外部尝试改 LAPS 管理账户密码的动作都会被阻断并记 10031。通常的做法是:让 PAM 工具通过 Get-LapsAADPassword / Graph API 按需"借出"密码,而不是让 PAM 自己去管密码轮换。这样 LAPS 做唯一写入方,PAM 做会话审计与工单集成——各司其职,互不打架。

结语

2026 年的 Windows LAPS,已经毫无悬念地成为 Windows 终端本地管理员账户管理的默认最佳实践。相比传统 LAPS,它跟 Intune/Entra ID 的深度集成、专用事件日志通道、加上一套成熟的 PowerShell 模块,极大简化了大规模运维——前提是你真的看得懂事件日志

老实讲,真正的难点从来不是"能不能部署",而是"部署后出了问题能不能 15 分钟内定位"。所以我再啰嗦一次:把第六节那张事件 ID 表打印出来贴在运维墙上。这一张纸,未来每一次排障都会帮你省下半小时。

关于作者 Editorial Team

Our team of expert writers and editors.