如何重置被遗忘的域控制器(DC)管理员密码

忘记了DC的管理员密码怎么办?如果你没有别的管理员可以登录DC,那么可以用下面的方法,重置Build-in Domain Administrator的密码。

前提:
要重置Domain Admin密码,要同时具备以下条件:

  1. 可以物理访问DC的
  2. 知道Local Administrator的密码。这个密码实际上在你promote DC之前设置的WindowsLocal Admin密码。如果你不知道,可以使用ERD Commander之类的工具修复本地管理员密码
  3. 有Instsrv.exe和SrvAny.exe文件(这两个文件随2003 Resource Kit Tools一同发布,可以在这里下载

接下来开始恢复过程。

很多人认为Domain Controller是没有Local Admin的,其实不是这样的。Local Admin还是有的,只是在正常登录模式下,不能用于登录而已。而目录服务恢复模式(Directory Service Restore Mode)下,则可以使用Local的账户登录。

第1步,启动Windows 2003到目录服务恢复模式(Directory Service Restore Mode):启动时按F8,然后选择Directory Service Restore Mode。

第2步,当提示登录的时候,使用Local Admin登录(一般是Administrator)。

第3步:INSTSRV.exeSrvAny.exe文件复制到%SYSTEMDRIVE%\temp,为了方便使用,也为了防止权限的影响,也把%WINDIR%\System32\cmd.exe复制到这个目录中。保证3个文件在同一个目录中(如C:\temp)。目录的名字可以随便起,但后面用到的时候也要一致。

第4步:安装SRVANY服务。打开一个命令提示行(Start–>Run–>cmd.exe),输入:

  1. INSTSRV PassRecovery "C:\temp\srvany.exe"

其中PassRecovery是安装的服务的名称,可以随便起,但后面使用PassRecovery的时候,要和这里的一样;引号中的是服务的程序,要SRVANY.exe的全路径格式。

第5步:配置SRVANY的参数,在命令提示符中依次输入下面的命令:

  1. REG ADD HKLM\System\CurrentControlSet\Services\PassRecovery
  2. REG ADD HKLM\System\CurrentControlSet\Services\PassRecovery /v Application /t REG_SZ /v "C:\temp\cmd.exe"
  3. REG ADD HKLM\System\CurrentControlSet\Services\PassRecovery /v AppParameters /t REG_SZ /v "/k net user administrator 123456 /domain"

上面的123456就是Domain Administrator的新密码,如果DC启用了强密码,就换个强密码吧。

第6步:打开管理工具中的服务(services.msc)。双击PassRecovery的服务。做如下配置:

  1. 在General选项卡中,设置服务为自动启动(Startup type=automatic)
  2. 在Log on选项卡中,选中“Allow service to interact with desktop”(允许服务与桌面交互)

至此,密码恢复的配置就算结束了。以正常模式启动DC,然后等待登录界面的出现(这时SRVANY已经将密码修改为你设置的值了)。使用在上面(第5步)设置的新的密码登录DC。

收尾工作

密码已经恢复了,接下来的工作就是删除SRVANY服务。这一步一定要做。执行下面的命令:

  1. net stop PassRecovery
  2. sc delete PassRecovery
  3. rd /s C:\temp

搞定~~~

后记

可能这个方法对于重置Domain Admin密码是比较容易的,不免让人担心DC的安全性。不过想想也是Reasonable的,有能力物理访问DC的人,多少应该具备管理DC的资格吧。

Posted by Wei@4:14 8/08/2007 in Computer Science | Permalink | Trackback | No comments.