如何重置 Active Directory 域管理员密码
在本文中,我们将了解 Active Directory 域管理员密码重置方案。如果由于退休管理员的遗忘或故意破坏、黑客攻击等原因导致域管理员权限丢失,您可能需要它。要成功重置域管理员密码,您必须能够物理或远程访问 AD 域控制器控制台(使用虚拟 DC 时为 iLO、iDRAC 或 VMware vSphere/Hyper-V/Proxmox 控制台)。
在此示例中,我们将在运行 Windows Server 2019 的域控制器上重置管理员密码。如果网络上有多个域控制器,您可以在其中任何一个域控制器上重置域管理员密码。
为了重置域管理员密码,您必须使用 DSRM 管理员密码(在 Windows Server 提升为域控制器时设置)访问目录服务还原模式 (DSRM)。事实上,它是存储在域控制器上的本地 SAM 数据库中的本地管理员帐户。如果您不知道 DSRM 密码,请使用方法 1 或 2。
如果您不知道 DSRM 密码,如何重置丢失的域管理员密码?
从任何 Windows 安装介质(可以是 Windows 安装 USB 记忆棒或 ISO 映像)启动服务器:
按
Shift+F10在 Windows 设置屏幕上打开命令提示符;
现在您需要知道分配给安装 Windows Server 的分区的盘符。运行命令:
wmic logicaldisk get volumename,name在我的示例中,您可以看到我的脱机 Windows Server 映像位于 C: 上。这是我们将在以下命令中使用的驱动器号。
备份原来的utilman.exe文件:
copy C:\windows\system32\utilman.exe C:\windows\system32\utilman.exebak然后将 utilman.exe 文件替换为 cmd.exe:
copy c:\windows\system32\cmd.exe c:\windows\system32\utilman.exe /y提取启动映像 (USB/ISO) 并重新启动主机:
wpeutil reboot域控制器启动后,单击登录屏幕上的“轻松访问”按钮。这将打开命令提示符;
跑过
whoami命令以确保命令提示符以 NT Authority\SYSTEM 身份运行;
列出有关管理员帐户的信息:
net user administrator在此示例中,您可以看到该用户是域管理员组的成员,现已被禁用:
Account active: No启用域管理员帐户:
net user administrator /active:yes您现在可以重置域管理员密码:
net user administrator *设置新的管理员密码(新密码必须符合域密码策略);。
再次从安装介质启动服务器,并将 utilman.exe 替换为原始文件(以避免在服务器中留下安全漏洞):
copy c:\windows\system32\utilman.exebak c:\windows\system32\utilman.exe /y在正常模式下重新启动域控制器,并确保您现在可以使用新的域管理员密码登录到 DC。
在虚拟域控制器上重置域管理员密码
如果您有在任何虚拟机管理程序(ESXi、Hyper-V、Proxmox)上运行的虚拟化域控制器,则可以使用 DSInternals PowerShell 模块重置管理员密码。
为此:
关闭运行 AD DS 角色(域控制器)的 VM,并将其虚拟驱动器(vhdx、vmdk 等)连接到运行 Windows 的任何其他 VM。为其指定一个驱动器号,例如,
E:;
从 PowerShell 库安装 DSInternals 模块:
Install-Module DSInternals -Force当 Internet 连接不可用时,可以离线安装 PowerShell 模块。
获取用于加密 AD 数据库 (ntds.dit) 中的密码哈希值的启动密钥:
$bootkey= Get-BootKey -SystemHiveFilePath "E:\Windows\System32\config\SYSTEM"您现在可以获得有关 AD 数据库中任何用户帐户的信息:
Get-ADDBAccount -SamAccountName 'Administrator' -DBPath "E:\Windows\NTDS\ntds.dit" -BootKey $bootkey如果域管理员帐户被禁用,请将其启用并设置新密码:
Enable-ADDBAccount -SamAccountName 'Administrator' -DBPath "E:\Windows\NTDS\ntds.dit" Set-ADDBAccountPassword -SamAccountName 'administrator' -DBPath "E:\Windows\NTDS\ntds.dit" -BootKey $bootkey断开虚拟驱动器,重新连接源虚拟机,然后给域控制器上电;
之后,新的域管理员密码将被复制到所有DC。
从 DSRM 重置域管理员密码
如果您知道 DSRM 管理员密码,则可以通过从“高级启动选项”菜单中选择适当的选项将 DC 启动到 DSRM。
在登录屏幕上输入本地用户名(管理员)和密码(DSRM 密码)。
在本例中,域控制器名称为 DC01。
让我们通过运行以下命令来检查哪个用户登录到系统:
whoami /userUSER INFORMATION
----------------
User Name SID
================== ============================================
dc01\administrator S-1-5-21-3244332244-312345677-2454632109-500如您所见,我们以本地管理员用户身份登录。
下一步是更改 Active Directory 管理员密码(默认情况下,该帐户也称为“管理员”)。要重置域管理员的密码,我们将创建一个服务来重置 SYSTEM 下管理员帐户的密码:
sc create ResetADPass binPath= "%ComSpec% /k net user administrator P1SSsw0rd21!" start= auto注意。请注意,在 binPath 变量中设置路径时,“=”号与其值之间需要有一个空格。此外,新密码必须满足域对密码长度和复杂性的要求。
确保服务已创建:
sc qc ResetADPass[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: ResetADPass
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 2 AUTO_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : C:\Windows\system32\cmd.exe /k net user administrator P@ssw0rd1
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : ResetADPass
DEPENDENCIES :
SERVICE_START_NAME : LocalSystem
以正常模式重新启动域控制器:
shutdown -r -t 0启动时,我们创建的服务会将域管理员密码更改为P1SSsw0rd21!。使用该帐号和密码登录DC。
whoami /userUSER INFORMATION
----------------
User Name SID
===================== ============================================
corp\administrator S-1-5-21-1737425439-23123122-1234318981-500然后删除我们刚刚创建的Windows服务:
sc delete ResetADPass[SC] DeleteService SUCCESS在本文中,我们将了解如何重置 AD 域管理员的密码。我们想重申确保 IT 基础设施物理安全的重要性。如果除授权人员之外的其他人对运行域控制器的物理主机具有本地访问权限,他们可以轻松重置任何用户或管理员密码。如果您需要在不太受信任的位置部署 DC,建议您使用只读域控制器 (RODC) 功能。








