过去,可以使用组策略首选项来更新加入域的计算机的本地管理员密码。在组策略管理控制台(GPMC)中,右键单击组策略对象(GPO),然后转到“计算机配置”>“首选项”>“控制面板设置”>“本地用户和组”。右键单击右侧的打开区域,然后选择“ 新建”>“本地用户”。

在“新建本地用户属性”窗口上,您可以将“用户名”字段更改为Administrator(内置),但是您会很快注意到,“密码”和“确认密码”字段显示为灰色,并且不能在具有以下功能的任何Management Station上使用已完全修补

clip_image001

2014年5月,Microsoft发布了有关组策略首选项中存储的密码的安全公告MS14-025。这些使用CPassword属性的密码使用易于逆转的加密。这意味着任何有权访问Sysvol文件夹的用户(AD中的所有人)都可以拉出任何包含CPasswords的GPO,反转加密以及学习使用组策略首选项修改的本地帐户(包括管理员帐户)的密码。此外,由于将密码更改推送到系统的整个组织单位(OU),因此***者可以立即知道正在从GPO接收设置的所有系统的密码。

MS14-025安全公告包含一个更新,该更新禁用使用组策略首选项更新本地用户帐户密码以及CPassword的其他用法(例如映射驱动器,服务,计划的任务和ODBC数据源)的功能。换句话说,请勿使用组策略首选项来管理本地管理员帐户的密码。

LAPS介绍

LAPS允许您在加入域的情况下管理本地管理员密码(随机,唯一且定期更改)电脑。这些密码集中存储在Active Directory中,并且仅限使用ACL的授权用户使用。使用Kerberos v5和AES从客户端到服务器的传输密码受到保护。

这个功能实现的是让加域的客户端本地administrator账号密码随机化(每一台都不一样的复杂随机密码),并且随机化密码存储在AD上可以查询到,避免***者猜出一台就等于猜出一片,从客户端到服务器的传输过程采用Kerberos v5和AES保护

LAPS要求

LAPS需要.NET Framework 4.0和PowerShell 2.0或更高版本。在LAPS将管理本地管理员密码的服务器系统上,您必须运行Windows Server 2003 SP1或更高版本;在台式机系统上,您必须运行Windows Vista SP2或更高版本。(很抱歉,但不支持Windows XP。)对于所有台式机和服务器客户端系统,必须安装包含组策略客户端扩展(CSE)的MSI文件,才能管理本地管理员密码。

您的Active Directory环境至少需要运行Windows Server 2003 SP1,并且需要架构更新以支持LAPS来添加ms-Mcs-AdmPwd和ms-Mcs-AdmPwdExpirationTime属性。这些属性用于存储本地管理员密码和密码的到期时间。

LAPS限制

LAPS的最大局限性是需要更新Active Directory架构。对于某些组织来说,这不是问题。但是对于其他组织而言,很难通过变更控制流程来测试和批准架构变更。

如果您创建自己的本地管理员帐户,LAPS也只能管理加入域的计算机上的本地管理员帐户或自定义的本地管理员帐户。(注意:如果您选择重命名该帐户,它还可以管理本地Administrator帐户的密码。)如果计算机未加入域,则将无法使用LAPS。对于诸如SQL或计划任务之类的事情,LAPS也无法管理其他本地服务帐户。

如果您只是想在工作站和服务器的本地Administrator帐户上轮换密码,Microsoft Local Administrator密码解决方案是您组织的免费,易于使用的选项。

在域控上安装LAPS软件

clip_image002

接下来,我们需要打开一个具有管理员权限的PowerShell窗口。在PowerShell提示符下,加载LAPS模块,然后运行

Import-Module AdmPwd.PS

Update-AdmPwdADSchema

clip_image003

可以使用ADSIEdit验证此架构扩展的结果。我们可以连接到默认命名上下文,展开具有至少一个计算机对象的任何OU,然后询问任何计算机对象的属性。在属性列表中,我们应该有两个新条目:ms-Mcs-AdmPwd(密码为明文,握住我们可以使用ACL进行保护的马!)和ms-Mcs-AdmPwdExpirationTime(密码到期时)

clip_image004

更新Active Directory架构后,我们需要检查AD中的权限,以确保只有授权的用户和组才能查看存储在此处的密码。默认情况下,域管理员和企业管理员将有权查看存储的密码以及您委派的任何其他组或用户。首先,打开PowerShell窗口,并确保已加载AdmPwd.PS模块。然后,我们可以使用Find-AdmPwdExtendedRights cmdlet查看哪些用户和组有权访问存储的密码:

Import-Module AdmPwd.PS

Find-AdmPwdExtendedRights -Identity "corp"

clip_image005

正如您在上面的屏幕截图中所看到的,我没有任何用户不应该在我的AD环境中访问。如果确实有一些用户不应该查看显示在“ ExtendedRightHolders”中的存储的密码信息,则需要删除他们对“所有扩展权限”的访问权限。在“ Active Directory用户和计算机(ADUC)”中,单击“ 查看”,并确保已选中“ 高级功能”。右键单击OU名称,然后单击属性,安全性和高级。

clip_image006

接下来,选择不具有访问权限的组(或用户)以查看托管的管理员密码,然后单击“ 编辑”。清除所有扩展权限复选框。单击确定两次以保存更改。

clip_image007

如果要授予其他组访问权限以查看密码,则可以使用Set-AdmPwdReadPasswordPermission cmdlet使用户或组能够读取属性:

Import-Module AdmPwd.PS

Set-AdmPwdReadPasswordPermission -Identity "Corp" -AllowedPrincipals "HelpDesk"

Find-AdmPwdExtendedRights -Identity "corp"

clip_image008

另一个关键配置是为计算机分配权限,以在Active Directory中写入密码。我们可以手动执行此操作,但是最好的方法是使用Set-AdmPwdComputerSelfPermission cmdlet。我们只需要提供要分配该权限的OU。结果将是一个SELF对象,该对象在ms-Mcs-AdmPwd和ms-Mcs-AdmPwdExpirationTime属性上获得写权限

clip_image009

最后,我们需要使计算机能够更新Active Directory中的ms-Mcs-AdmPwd和ms-Mcs-AdmPwdExpirationTime属性。首先重新加载模块(如果尚未加载模块),然后运行Set-AdmPwdComputerSelfPermission

Import-Module AdmPwd.PS

Set-AdmPwdComputerSelfPermission -Identity "Corp"

clip_image010

您将需要为每个拥有受管理计算机的OU(而不是子OU)运行此命令,因为新权限将应用于子OU。

此时,我们的Active Directory基础结构已配置为支持新的Active Directory属性和这些属性的权限。

更新Active Directory(AD)架构和权限后,设置Microsoft本地管理员密码解决方案(LAPS)的最后一步是安装客户端应用程序并配置组策略

接下来,打开组策略管理控制台(GPMC),然后为您的计算机编辑现有的组策略对象(GPO)或创建一个新的组策略对象,然后单击鼠标右键进行编辑。在GPO中,转到“计算机配置”>“策略”>“管理模板”>“ LAPS”

首先,您需要通过将“启用本地管理员密码管理”策略设置为Enabled来启用 LAPS密码管理

clip_image011

接下来,您将要启用密码设置并配置密码选项。使用此设置,您可以配置复杂性(大写字母,小写字母,数字和特殊字符),长度和最长密码使用期限

clip_image012

即使您已在任何系统上重命名了Administrator帐户,LAPS仍可以使用其众所周知的SID检测本地Administrator帐户。如果您创建了辅助本地管理员帐户,并且希望LAPS管理其密码,则可以使用“要管理的管理员帐户名称”策略来设置该帐户的用户名

clip_image013

接下来就是安装客户端

MSI文件默认为仅安装组策略位,而无需任何添加

clip_image014

您可以使用所选的部署工具并运行

# For 64-bit/x64 systems

msiexec /q /i <a href="file:///\\server\path\LAPS.x64.msi">\\server\path\LAPS.x64.msi</a>

# For 32-bit/x86 systems

msiexec /q /I <a href="file:///\\server\path\LAPS.x86.msi">\\server\path\LAPS.x86.msi</a>

Msiexec /I C:\Temp\LAPS.x64.msi /quiet

clip_image015

备注:LAPS仅支持Windows Vista和更高版本的客户端系统以及Windows Server 2003 SP1服务器以上系统。如果您的环境中仍然有Windows XP,则不包括对Windows XP的支持。

使用GUI查看密码

有两种方法可以查看具有LAPS管理的管理员密码的计算机的密码。第一种方法是使用Active Directory用户和计算机(ADUC)。在ADUC中,单击“ 查看”,然后确认“高级功能”已被选中。如果不是,单击它将启用高级功能

clip_image016

找到计算机,双击它,然后单击“ 属性编辑器”选项卡。如果缺少“属性编辑器”选项卡,则说明您尚未启用“高级功能”,或者您所使用的帐户对计算机对象没有适当的权限。向下滚动,直到找到ms-Mcs-AdmPwd属性以查看密码

clip_image017

如果您安装了用于LAPS的整套管理工具,则“胖客户端UI”将安装在Management Station上。实际安装的应用程序称为LAPS UI,可以在“开始”屏幕上找到(需要右键以管理员身份打开)

clip_image018

运行LAPS UI应用程序时,需要输入计算机的全名。不幸的是,LAPS应用程序当前不允许您在Active Directory中搜索计算机。因此,您需要知道计算机的全名。输入计算机名称后,单击“ 搜索”按钮将显示当前的管理员密码以及密码到期的日期和时间。LAPS UI应用程序还允许您设置新的到期时间或强制立即到期。如果密码或有效期字段为空,则您正在使用的帐户很可能没有足够的权限来读取AD中的属性

clip_image019

使用PowerShell查看密码

管理工具还包括一个PowerShell模块,您可以使用该模块查看密码和强制到期。首先,您需要加载AdmPwd.PS模块,然后使用

Import-Module AdmPwd.PS

Get-AdmPwdPassword -ComputerName Win8-pc

clip_image020

如果需要强制更改密码,则可以使用Reset-AdmPwdPassword cmdlet强制立即更改密码

使用Reset-AdmPwdPassword强制重置本地管理员密码

Reset-AdmPwdPassword -ComputerName win8-pc

clip_image021

添加-WhenEffective允许您控制密码在计算机上更新的日期和时间::

Reset-AdmPwdPassword -ComputerName win8-pc -WhenEffective "4.28.2020 18:00"