开始使用 Windows LAPS 和 Windows Server Active Directory

可以使用 Windows 本地管理员密码解决方案 (Windows LAPS) 来管理本地管理员帐户和域控制器目录服务还原模式 (DSRM) 帐户的密码。 本文介绍如何开始使用 Windows LAPS 和 Windows Server Active Directory。 其中介绍了使用 Windows LAPS 将密码备份到 Windows Server Active Directory 以及检索密码的基本过程。

域功能级别和域控制器作系统版本要求

如果域功能级别(DFL)早于 2016 年,则无法启用 Windows LAPS 密码加密。 没有密码加密:

  • 你可以将客户端配置为仅以明文形式存储密码,由 Windows Server Active Directory 访问控制列表(ACL)保护。
  • 无法将域控制器配置为管理其本地 DSRM 帐户。

当域使用 2016 或更高版本的 DFL 时,可以启用 Windows LAPS 密码加密。 但是,运行的任何 Windows Server 2016 和更早版本的域控制器都不支持 Windows LAPS。 因此,这些域控制器无法使用 DSRM 帐户管理功能。

只要你意识到这些限制,就可以在域控制器上使用 Windows Server 2016 和更早版本的作系统。

下表汇总了各种方案中支持的功能:

域详细信息 受支持的明文密码存储 受支持的加密密码存储(适用于已加入域的客户端) 支持的 DSRM 帐户管理(对于域控制器)
DFL 早于 2016 年
具有一个或多个 Windows Server 2016 或更早版本域控制器的 2016 DFL 是,但仅适用于 Windows Server 2019 及更高版本的域控制器
2016 DFL 仅适用于 Windows Server 2019 及更高版本的域控制器

强烈建议升级到客户端、服务器和域控制器上的最新可用作系统,以便利用最新的功能和安全性改进。

准备 Active Directory

在配置已加入 Active Directory 或已混合加入的设备以备份托管账户密码到 Active Directory 之前,请按照以下步骤操作。

注释

如果计划只将密码备份到 Microsoft Entra ID,则无需执行任何这些步骤,包括扩展 AD 架构。

  1. 如果使用组策略中心存储,请手动将 Windows LAPS 组策略模板文件复制到中央存储。 有关详细信息,请参阅 配置 Windows LAPS 的策略设置
  2. 分析、确定和配置适当的 AD 权限,用于密码过期和密码检索。 请参阅 Windows Server Active Directory 密码
  3. 分析和确定用于解密密码的相应授权组。 请参阅 Windows Server Active Directory 密码
  4. 创建一个新的 Windows LAPS 策略,该策略针对受管理设备,并具有先前步骤中确定的适当设置。

更新 Windows Server Active Directory 架构

在使用 Windows LAPS 之前,必须更新 Windows Server Active Directory 架构。 可以使用 Update-LapsADSchema cmdlet 来执行此操作。 这是针对整个林的一次性操作。 可以在使用 Windows LAPS 更新的 Windows Server 2019 或更高版本域控制器上本地运行 Update-LapsADSchema 该 cmdlet。 但是,只要服务器支持 Windows LAPS PowerShell 模块,就可以在不是域控制器的服务器上运行此 cmdlet。

PS C:\> Update-LapsADSchema

提示

在命令行中包含参数 -Verbose ,以查看有关处理过程中 cmdlet 进度的详细信息。 可以将参数 -Verbose 与 LAPS PowerShell 模块中的任何 cmdlet 配合使用。

授予托管设备更新其密码的权限

使用 Windows LAPS 管理设备上的密码时,需要向该托管设备授予更新其密码的权限。 可以通过设置包含设备的组织单位(OU)的可继承权限来执行此作。 可以将 Set-LapsADComputerSelfPermission cmdlet 用于此目的,如以下代码所示:

PS C:\> Set-LapsADComputerSelfPermission -Identity NewLaps
Name    DistinguishedName
----    -----------------
NewLAPS OU=NewLAPS,DC=laps,DC=com

提示

如果你希望在域的根上设置可继承的权限,可以使用可分辨名称(DN)输入格式来指定整个域根。 例如,可以将参数 -Identity 与参数 DC=laps,DC=com一起使用。

授予密码查询权限

必须授予用户权限才能从 Active Directory 查询密码。 可以通过设置包含设备的组织单位(OU)的可继承权限来执行此作。 可以将 Set-LapsADReadPasswordPermission cmdlet 用于此目的,如以下代码所示:

PS C:\> Set-LapsADReadPasswordPermission -Identity NewLAPS -AllowedPrincipals @("laps\LapsPasswordReadersGroup")
Name    DistinguishedName
----    -----------------
NewLAPS OU=NewLAPS,DC=laps,DC=com

提示

默认情况下,域管理员组的成员已具有密码查询权限。

提示

授予用户从 Active Directory 查询密码的权限时,不会自动暗示用户有权解密加密密码。 当设备将密码存储在 Active Directory 中时,使用 ADPasswordEncryptionPrincipal 策略设置配置解密加密密码的权限。 默认情况下,ADPasswordEncryptionPrincipal的策略设置为域管理员组。

授予密码过期权限

必须授予用户权限才能设置 Active Directory 中存储的密码的过期时间。 在 Active Directory 中将密码标记为过期时,设备将在下一个处理周期轮换密码。 用户可以使用此机制将剩余时间缩短(或延长)到下一个预期的密码轮换。

可以通过设置包含设备的组织单位(OU)的可继承权限来执行此作。 可以将 Set-LapsADResetPasswordPermission cmdlet 用于此目的,如以下代码所示:

PS C:\> Set-LapsADResetPasswordPermission -Identity NewLAPS -AllowedPrincipals @("laps\LapsPasswordExpirersGroup")
Name    DistinguishedName
----    -----------------
NewLAPS OU=NewLAPS,DC=laps,DC=com

提示

默认情况下,域管理员组的成员已具有密码过期权限。

提示

授予 Set-LapsADPasswordExpirationTime 权限后,该 cmdlet 可用于在 Active Directory 中设置给定设备的密码过期时间。

查询扩展权限

某些用户或组可能对托管设备的 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}

在输出中,只有受信任的实体 SYSTEM 和域管理员才具有权限。 在这种情况下,不需要执行任何其他操作。

配置设备策略

以下部分演示如何配置设备策略。

选择策略部署机制

第一步是选择如何在设备上应用策略。

大多数环境使用 Windows LAPS 组策略将所需设置部署到其已加入 Windows Server Active Directory 域的设备。

如果你的设备也加入了 Microsoft Entra ID 混合域,则你可以使用 Microsoft IntuneWindows 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 LAPS 会响应组策略更改通知。

若要验证密码是否已在 Windows Server Active Directory 中成功更新,请查找 ID 为 10018 的事件的事件日志:

事件日志的屏幕截图。选择了 ID 为 10018 的事件。其日志显示已成功在 Windows Server Active Directory 中更新密码。

为了避免在应用策略后等待,可以运行 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            : <password>
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 或更高版本 DFL 配置域。

如果拒绝访问查询密码,可以调整密码读取权限。 请参阅 “授予密码查询权限”。

轮换密码

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 在本地强制立即轮换密码。

在 Windows Server Active Directory 灾难恢复方案中检索密码

若要检索 Windows LAPS 密码(包括 DSRM 密码),通常需要至少一个 Windows Server Active Directory 域控制器才能可用。 在灾难性场景中,域中的所有域控制器可能会瘫痪。 在这种情况下,如何恢复密码?

Windows Server Active Directory 管理的最佳做法建议定期备份所有域控制器。 可以使用 PowerShell cmdlet 并指定 Get-LapsADPassword 参数,查询存储在装载的备份 Windows Server Active Directory 数据库中的 Windows LAPS 密码。

在 Windows Insider 预览体验计划版本 27695 及更高版本中,Get-LapsADPassword cmdlet 提供增强的密码检索功能。 具体而言,使用 Get-LapsADPassword cmdlet 并同时指定 -Port-RecoveryMode 参数时,密码恢复会成功,无需联系域控制器。 此外,还可以在此模式下在工作组(未加入域)计算机上运行 Get-LapsADPassword 。 此功能在客户端和服务器作系统中可用。

提示

可以使用该 dsamain.exe 实用工具装载 Windows Server Active Directory 备份媒体,并通过轻型目录访问协议(LDAP)对其进行查询。 dsamain.exe该工具默认未安装,因此必须添加该工具。 可以使用 Enable-WindowsOptionalFeature cmdlet 来启用它。

  • 在 Windows 客户端计算机上,可以运行 Enable-WindowsOptionalFeature -Online -FeatureName DirectoryServices-ADAM-Client
  • 在 Windows Server 计算机上,可以运行 Enable-WindowsOptionalFeature -Online -FeatureName DirectoryServices-ADAM

以下代码查询存储在端口 50000 上本地装载的 Windows Server Active Directory 备份数据库中的 Windows LAPS 密码:

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            : <password>
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

重要

从工作组计算机上装载的 Windows Server Active Directory 备份数据库中检索加密的 Windows LAPS 密码时,该 AuthorizedDecryptor 字段始终以原始安全标识符 (SID) 格式显示。 工作组计算机无法将 SID 转换为友好名称。

另请参阅

后续步骤