发新话题
打印

[经验技巧] 用Windows Vista的安装光盘重设管理员帐户密码

用Windows Vista的安装光盘重设管理员帐户密码

Windows Vista用户只需一张Windows Vista的安装光盘,就可以重设管理员帐户密码,无需借助ERD Commander、O&O BlueCon或者Offline NT Password & Registry Editor等“外援”的帮助。

1.一个工具包轻松搞定管理员密码
由于本文所涉及的原理和操作相对比较复杂,为了照顾初学者朋友,笔者特地制作了一个工具包,只有5KB大小(请单击这里,下载工具包)。
(1) 首先确保您的Windows Vista安装在C盘,如果安装在别的分区,请不要使用该工具包,而直接查看本文的后面部分。
(2) 请将本工具包解压缩到软盘,然后将这张软盘插入故障计算机。
(3) 利用Windows Vista安装光盘引导系统进入“系统恢复选项”,并单击其上的“命令提示符”,请参考Windows Vista拒绝****系列1─芝麻开门。
(4) 在命令提示符下运行“A:\StartMe”,如果命令结果没有报错,连续两次重启计算机到登录界面。
(5) 第二次启动到登录界面时,点击Test帐户名即可登录,然后就可以重设原来帐户的密码了。
(6) 打开注册表编辑器,删除以下注册表子键即可:
HKLM\SYSTEM\CurrentControlSet\Services\AddUser


2.原理描述
这个工具包里包含两个批处理文件和一个srvany.exe程序,作用如下:
AddUser.bat批处理文件:目的是在Windows Vista系统里创建一个管理员帐户Test,而且密码是空。
StartMe.bat批处理文件:目的是把AddUser.bat文件安装为一个服务,该服务是以LocalSystem身份启动的,这样在开机登录之前,就已经执行AddUser.bat,以便新建Test帐户。
srvany.exe程序:取自Windows Server 2003 Resource Kit Tools工具包,可以在微软官方网站上自由下载。
看到这里,相信很多朋友已经明白,原来这个方法取自笔者以前写过的一篇文章另类方法破解管理员密码。但是还是有区别的,因为Windows Vista系统不支持直接把批处理文件安装为服务,否则服务会启动失败。所以必须借助srvany.exe程序和SCM(服务控制管理器)打交道,才能确保成功。
AddUser.bat批处理文件的内容如下,这和另类方法破解管理员密码没有区别,此处不再赘述。
net user test /add
net localgroup administrators test /add
StartMe.bat批处理文件的内容如下:
copy a:\srvany.exe c:\
copy a:\adduser.bat c:\
reg load HKLM\AddUser_SYSTEM C:\WINDOWS\system32\config\SYSTEM
c:\windows\system32\sc create AddUser Type= own Start= auto Binpath= C:\srvany.exe Obj= LocalSystem
reg add HKLM\SYSTEM\CurrentControlSet\services\AddUser\Parameters /v Application /t REG_SZ /d c:\AddUser.bat
reg copy HKLM\SYSTEM\CurrentControlSet\services\AddUser HKLM\AddUser_SYSTEM\ControlSet001\services\AddUser /s /f
reg unload HKLM\AddUser_SYSTEM

(1) 最上面的两行copy命令没有什么可说的,就是为了把srvany.exe和adduser.bat复制到C盘根目录下。

(2) 而 “reg load HKLM\AddUser_SYSTEM C:\WINDOWS\system32\config\SYSTEM”命令,其目的是为了把C:\WINDOWS\system32\config\SYSTEM配置单元文件加载到注册表的HKLM\AddUser_SYSTEM分支。

提示:为什么要加载C:\WINDOWS\system32\config\SYSTEM配置单元?
原来Windows XP安装光盘的“系统恢复选项”,实际上是一个Windows PE环境。该Windows PE在物理内存里划分出一个32MB的空间作为虚拟的内存磁盘(RamDisk),盘符是X:。该Windows PE加载的注册表,实际上对应于X:\WINDOWS\system32\config目录下的配置单元文件。这可以用Process Explorer来验证,只需查看SYSTEM进程的句柄,即可发现所打开的注册表配置单元位于内存磁盘(RamDisk),如图1所示。
所以,必须把Windows Vista所用的注册表配置单元加载进来,才能最终生效。如果Windows Vista安装在别的分区,则需要把“reg load”命令中的C:改成合适的盘符。

(3) 对于这句命令“c:\windows\system32\sc create AddUser Type= own Start= auto Binpath= C:\srvany.exe Obj= LocalSystem”,其目的是借助系统自带的SC命令在系统中新建一个AddUser服务,其可执行文件指向srvany.exe文件,运行身份是LocalSystem。
由于“系统恢复选项”的Windows PE环境,其Path环境变量并不包含Windows Vista的安装目录,所以必须提供SC命令所在的详细路径(此处假设Windows Vista安装在C盘,请根据实际情况修改该命令)。SC命令的实质是在HKLM\SYSTEM\CurrentControlSet\services下添加AddUser服务的子键。

(4) “reg add HKLM\SYSTEM\CurrentControlSet\services\AddUser\Parameters /v Application /t REG_SZ /d c:\AddUser.bat”这个命令的作用是在服务AddUser的注册表子键下添加相应的参数,让SCM(服务控制器)知道实际上要启动c:\AddUser.bat批处理脚本文件。
注意
以上两条命令对注册表的修改,实际上是作用在X:\WINDOWS\system32\config\SYSTEM配置单元文件上,由于该配置单元保存在内存虚拟磁盘上,而非真正保存在Windows Vista所用的配置单元文件。所以我们需要把注册表键值复制到C:\WINDOWS\system32\config\SYSTEM配置单元(现在已经加载到HKLM\AddUser_SYSTEM注册表分支)。

(5) “reg copy HKLM\SYSTEM\CurrentControlSet\services\AddUser HKLM\AddUser_SYSTEM\ControlSet001\services\AddUser /s /f”命令的作用就是为了复制AddUser的注册表键值到真正需要的地方。

(6) “reg unload HKLM\AddUser_SYSTEM”命令则是卸载C:\WINDOWS\system32\config\SYSTEM配置单元。
运行StartMe.bat脚本后,系统就会自动添加一个AddUser服务,该服务会在登录之前在系统中创建一个Test管理员帐户,以便我们顺利地重设管理员密码。

3.写在后面
这个方法虽然简单,但是当初测试时,笔者却走了不少弯路,这里简单地加以总结:

(1) 为什么我们可以在“系统恢复选项”下为所欲为?
在Windows Vista下时间长了,习惯了UAC环境,每运行一个管理任务,都会习惯等待确认权限提升对话框。但是在“系统恢复选项”下,我们可以随意通过命令提示符启动大部分应用程序,包括记事本、注册表编辑器等,除了Windows Shell程序不能运行外,几乎绝大多数的应用程序和脚本都能直接顺利运行。这是为什么?
原来在“系统恢复选项”下,我们是以LocalSystem身份运行的,难怪可以至高无上的权限对系统进行配置!这里可以用“Whoami /all”命令验证一下,如下图所示。

(2) 为什么不直接运行net user和net localgroup命令?
看了前面部分后,您可能一直存在一个疑问,为什么不直接在命令提示符窗口运行net user和net localgroup命令,反正我们现在是LocalSystem权限,而非得绕那么大一个圈子,借助AddUser脚本在系统中添加一个服务,达到“曲线救国”的目的?
原来正如前面所述,“系统恢复选项”的Windows PE环境,所加载的SAM配置单元文件位于X:\WINDOWS\system32\config目录下,而非C:\WINDOWS\system32\config目录下。所以net命令的结果保存在X:\WINDOWS\system32\config\SAM配置文件里,没有真正生效!
就算加载C:\WINDOWS\system32\config目录下的SAM配置单元,并且采用帐户克隆的方法复制注册表的F和V键值,还是无法生效。

(3) 为什么不把X:\WINDOWS\system32\config\下的SAM文件直接复制到C:\WINDOWS\system32\config目录下?
这实际上类似于在Windows 2000/XP下把C:\WINDOWS\repair目录下的SAM副本复制到C:\WINDOWS\system32\config目录下。结果会具有两个空密码的帐户Administrator和Guest。

然而这种方法并不推荐,因为通常并不能仅仅拷贝SAM配置单元文件,还必须同步拷贝SYSTEM、SOFTWARE等其他配置单元文件,这样会可能导致很多系统和软硬件配置信息丢失,损失更大。


本文来自:Vista中文网 欢迎各位转载,转载请注明出自【VistaHtml.Com】 作者:chobit 您是第1489个浏览者

TOP

今日热门主题

发新话题
欢迎加入vista中文网QQ群--群1:35984465(已满)、群2:53020398(已满)、群3:74225507(可加入)