开始使用 Windows LAPS 和 Windows Server Active Directory
了解如何开始使用 Windows 本地管理员密码解决方案 (Windows LAPS) 和 Windows Server Active Directory。 本文介绍使用 Windows LAPS 将密码备份到 Windows Server Active Directory 的基本过程以及如何检索密码。
域功能级别和域控制器 OS 版本要求
如果域的配置低于 2016 域功能级别 (DFL),则无法启用 Windows LAPS 密码加密期。 如果没有密码加密,则只能将客户端配置为以明文形式存储密码(由 Active Directory ACL 保护),而且不能将 DC 配置为管理其本地 DSRM 帐户。
域达到 2016 DFL 后,可以启用 Windows LAPS 密码加密。 但是,如果你仍在运行任何 WS2016 DC,这些 WS2016 DC 不支持 Windows LAPS,因此无法使用 DSRM 帐户管理功能。
只要知道这些限制,就可以在域控制器上使用早于 WS2016 的受支持的操作系统。
下表汇总了各种支持或不支持的方案:
域详细信息 | 受支持的明文密码存储 | 受支持的加密密码存储(适用于已加入域的客户端) | 受支持的 DSRM 帐户管理(适用于 DC) |
---|---|---|---|
低于 2016 DFL | 是 | 否 | 否 |
包含一个或多个 WS2016 DC 的 2016 DFL | 是 | 是 | 是,但仅适用于 WS2019 及更高版本的 DC |
仅包含 WS2019 及更高版本 DC 的 2016 DFL | 是 | 是 | 是 |
Microsoft 强烈建议客户升级到客户端、服务器和域控制器上的最新可用操作系统,以便利用最新的功能和安全改进。
更新 Windows Server Active Directory 架构
在使用 Windows LAPS 之前,必须更新 Windows Server Active Directory 架构。 此操作是使用 Update-LapsADSchema
cmdlet 执行的。 这是针对整个林的一次性操作。 Update-LapsADSchema
cmdlet 可以在使用 Windows LAPS 更新的 Windows Server 2022 或 Windows Server 2019 域控制器本地上运行,但也可以在非域控制器上运行,只要它支持 Windows LAPS PowerShell 模块。
PS C:\> Update-LapsADSchema
提示
传递 -Verbose
参数以查看有关 Update-LapsADSchema
cmdlet(或 LAPS PowerShell 模块中的任何其他 cmdlet)正在执行的操作的详细信息。
向受管理设备授予更新密码的权限
需要为受管理设备授予更新其密码的权限。 此操作是通过在设备所在的组织单位 (OU) 上设置可继承权限来执行的。 Set-LapsADComputerSelfPermission
用于此目的,例如:
PS C:\> Set-LapsADComputerSelfPermission -Identity NewLaps
Name DistinguishedName
---- -----------------
NewLAPS OU=NewLAPS,DC=laps,DC=com
提示
如果想要设置对域根目录的可继承权限,则可以通过使用 DN 语法指定整个域根目录来实现这一点。 例如,为 -Identity 参数指定“DC=laps,DC=com”。
查询扩展权限
可能为某些用户或组授予了对受管理设备 OU 的扩展权限。 此权限会造成问题,因为它会授予读取机密属性的能力(所有 Windows LAPS 密码属性都标记为机密属性)。 检查为谁授予了这些权限的一种方法是使用 Find-LapsADExtendedRights
cmdlet。 例如:
PS C:\> Find-LapsADExtendedRights -Identity newlaps
ObjectDN ExtendedRightHolders
-------- --------------------
OU=NewLAPS,DC=laps,DC=com {NT AUTHORITY\SYSTEM, LAPS\Domain Admins}
在此示例的输出中,只有受信任的实体(系统管理员和域管理员)才拥有特权。 无需执行其他操作。
配置设备策略
完成几个步骤来配置设备策略。
选择策略部署机制
第一步是选择如何在设备上应用策略。
大多数环境使用 Windows LAPS 组策略将所需设置部署到其已加入 Windows Server Active Directory 域的设备。
如果你的设备也加入了 Microsoft Entra ID 混合域,则你可以使用 Microsoft Intune 和 Windows LAPS 配置服务提供程序 (CSP) 来部署策略。
配置特定策略
必须至少将 BackupDirectory 设置配置为值 2(将密码备份到 Windows Server Active Directory)。
如果未配置 AdministratorAccountName 设置,Windows LAPS 默认将会管理默认的内置本地管理员帐户。 此内置帐户使用其已知相对标识符 (RID) 自动标识,永远不应使用其名称标识。 内置本地管理员帐户的名称因设备的默认区域设置而异。
如果你要配置自定义本地管理员帐户,则应使用该帐户的名称配置 AdministratorAccountName 设置。
重要
如果将 Windows LAPS 配置为管理自定义本地管理员帐户,则必须确保已创建该帐户。 Windows LAPS 不会创建该帐户。 建议使用 RestrictedGroups CSP 创建帐户。
可以根据组织的需要配置其他设置,例如 PasswordLength。
如果未配置给定设置,则会应用默认值 - 请务必了解这些默认值。 例如,假设启用了密码加密但未配置 ADPasswordEncryptionPrincipal 设置,则会对密码进行加密,以确保只有域管理员才能对密码进行解密。 如果希望非域管理员也能解密,则可以使用其他设置配置 ADPasswordEncryptionPrincipal。
更新 Windows Server Active Directory 中的密码
Windows LAPS 定期(每小时)处理当前处于活动状态的策略并响应组策略更改通知。 它根据策略和更改通知做出响应。
若要验证密码是否已在 Windows Server Active Directory 中成功更新,请在事件日志中查找 10018 事件:
若要避免在应用策略后等待一段时间,可以运行 Invoke-LapsPolicyProcessing
PowerShell cmdlet。
从 Windows Server Active Directory 检索密码
使用 Get-LapsADPassword
cmdlet 从 Windows Server Active Directory 检索密码。 例如:
PS C:\> Get-LapsADPassword -Identity lapsAD2 -AsPlainText
ComputerName : LAPSAD2
DistinguishedName : CN=LAPSAD2,OU=NewLAPS,DC=laps,DC=com
Account : Administrator
Password : Zlh+lzC[0e0/VU
PasswordUpdateTime : 7/1/2022 1:23:19 PM
ExpirationTimestamp : 7/31/2022 1:23:19 PM
Source : EncryptedPassword
DecryptionStatus : Success
AuthorizedDecryptor : LAPS\Domain Admins
此输出结果指示已启用密码加密(请参阅 Source
)。 密码加密要求为域配置 Windows Server 2016 域功能级别或更高级别。
轮换密码
Windows LAPS 在每个策略处理周期从 Windows Server Active Directory 读取密码过期时间。 如果密码已过期,则会立即生成并存储新密码。
在某些情况下(例如,在出现安全漏洞后或者在进行临时测试时),你可能需要提前轮换密码。 若要手动强制轮换密码,可以使用 Reset-LapsPassword
cmdlet。
可以使用 Set-LapsADPasswordExpirationTime
cmdlet 来设置存储在 Windows Server Active Directory 中的已计划密码过期时间。 例如:
PS C:\> Set-LapsADPasswordExpirationTime -Identity lapsAD2
DistinguishedName Status
----------------- ------
CN=LAPSAD2,OU=NewLAPS,DC=laps,DC=com PasswordReset
下次唤醒 Windows LAPS 来处理当前策略时,它会看到修改后的密码过期时间并轮换密码。 如果你不想等待,可以运行 Invoke-LapsPolicyProcessing
cmdlet。
可以使用 Reset-LapsPassword
cmdlet 在本地强制立即轮换密码。
在 AD 灾难恢复方案中检索密码
检索 Windows LAPS 密码(包括 DSRM 密码)通常需要至少有一个 Active Directory 域控制器可用。 但是,请考虑到某个域中所有域控制器都发生故障的灾难性场景。 在这种情况下,如何恢复密码?
Active Directory 管理最佳做法建议定期保存所有域控制器的定期备份。 可以通过指定-Port
参数,使用 Get-LapsADPassword
PowerShell cmdlet 查询存储在已装载的备份 AD 数据库中的 Windows LAPS 密码。 Get-LapsADPassword
该 cmdlet 最近进行了改进,以便同时指定和-RecoveryMode
参数时-Port
,密码恢复会成功,无需联系域控制器。 此外,Get-LapsADPassword
现在支持在工作组(未加入域)计算机上以这种模式运行。
提示
dsamain.exe实用工具用于装载 AD 备份介质,并通过 LDAP 对其进行查询。 默认情况下未安装Dsamain.exe,因此必须添加它。 执行此操作的一种方法是使用 Enable-WindowsOptionalFeature
cmdlet。 在 Windows 客户端计算机上,可以运行 Enable-WindowsOptionalFeature -Online -FeatureName DirectoryServices-ADAM-Client
。 在 Windows Server 计算机上,可以运行 Enable-WindowsOptionalFeature -Online -FeatureName DirectoryServices-ADAM
以下示例假定 AD 备份数据库在本地装载在端口 50000 上:
PS C:\> Get-LapsADPassword -Identity lapsDC -AsPlainText -Port 50000 -RecoveryMode
ComputerName : LAPSDC
DistinguishedName : CN=LAPSDC,OU=Domain Controllers,DC=laps,DC=com
Account : Administrator
Password : ArrowheadArdentlyJustifyingKryptonVixen
PasswordUpdateTime : 8/15/2024 10:31:51 AM
ExpirationTimestamp : 9/14/2024 10:31:51 AM
Source : EncryptedDSRMPassword
DecryptionStatus : Success
AuthorizedDecryptor : S-1-5-21-2127521184-1604012920-1887927527-35197
重要
从工作组计算机上装载的 AD 备份数据库中检索加密的 Windows LAPS 密码时,AuthorizedDecryptor 字段将始终以原始 SID 格式显示,因为工作组计算机无法将该 SID 转换为友好名称。
重要
Windows 预览体验版本 27695 及更高版本支持改进的 Get-LapsADPassword 密码检索功能,适用于客户端和服务器 OS 版本。
另请参阅
- 介绍使用 Microsoft Entra ID 的 Windows 本地管理员密码解决方案
- Microsoft Entra ID 中的 Windows 本地管理员密码解决方案
- RestrictedGroups CSP
- Microsoft Intune
- Microsoft Intune 对 Windows LAPS 的支持
- Windows LAPS CSP
- Windows LAPS 故障排除指南