在重装系统前,各种文档、软件和桌面设置都能比较简单地备份起来。但你知道如何备份密码吗?在替别人备份系统的时候,如何在不知道对方系统登录密码的情况下替对方把密码备份好,移植到新的机器上?
Windows 98 原理:Windows 98在用户登录时,验证密码的途径是通过校对Windows目录下的“用户名.PWL”文件,如果校对后发现此次登录所用的用户名与密码全与“用户名.PWL”文件相符合,会顺利登录,相反,就无法登录。了解了Windows 98登录的原理后,就可以对“用户名.PWL”文件下“药”了!
备份:新建一记事本文件,输入如下内容,然后把它保存为BACKUP.BAT。
@echo Bakup password.....
@echo off
md D:\pwbak
copy c:\windows\*.pwl D:\pwbak
@echo Bakup password Successfully!
pause
(注:"c:\"为系统盘的位置,"D:\pwbak"为密码要保存的位置,可以按需要更改,下同)
文件创建好后,只要在Windows或DOS下将其运行,即可完成对所有用户密码的备份工作了。
恢复:在重装操作系统,并创建好与原系统中用户名完全相同的新的用户后(新的用户名应与原系统中的完全一样,否则恢复无效),就可以开始恢复系统登录密码了。新建一记事本文件,输入如下内容,然后把它保存为RESTONE.BAT。
@echo Restone password.....
@echo off
@echo y copy D:\pwbak\*.pwl c:\windows
@echo Restone password Successfully!
pause
文件创建好后,也只要在Windwos或DOS下将其运行即可完成对所有用户密码的恢复工作了。
Windows 2000/XP/Server 2003 方法1: 第一步:在命令提示符下输入“at time /interactive regedit.exe”命令,添加一个计划任务。使用at命令,目的是要以system权限运行“注册表编辑器”程序。
小提示 “time”指定运行命令的时间,只要稍离当前时间1~2分钟即可。例如:当前时间为13:43,命令为“at 13:45 /interactive regedit.exe”。“/interactive”允许作业在运行时,与当时登录的用户桌面进行交互。
第二步:打开注册表编辑器,找到[HKEY_LOCAL_ MACHINE\SAM\SAM],现在可以访问了(见图)。右击SAM子键,选择“导出”或单击菜单“文件→导出”,即可导出SAM文件内容。关闭“注册表编辑器”。
小提示
如果要在“注册表编辑器”中单一导出某个账户的用户密码,以备不时之需,打开[HKEY_LOCAL_MACHINE \SAM\SAM\Domains\Account\Users\Names],单击项下的具体用户名,单击“导出”。查看右窗格的默认值,如“Administrator”是“0x1f4”。然后单击“Users” 项下的具体数值,如“000001F4”,单击“导出”。重要警告:不可以任意删除键值,否则可能发生致命错误!
第三步:需要时,双击导出的REG文件,导入注册表文件即可恢复导出时的用户密码,或移植到新的电脑。
方法2: 第一步:下载psu.exe工具(下载地址:),保存到“C:\WINNT\system32”文件夹。
第二步:打开“命令行提示符”窗口,输入“psu -p regedit.exe -i winlogon_pid”命令,打开“注册表编辑器”。其中winlogon_pid值是winlogon.exe进程的PID号。右击桌面任务栏,选择“任务管理器”,或按Ctrl+Alt+Del组合键,打开“Windows任务管理器”,单击“进程”选项卡,可以查看winlogon.exe的PID值。如笔者Windows XP的winlogon.exe的PID值是824,即输入“psu -p regedit.exe -i 824”命令。
小提示 如果在“Windows 任务管理器”查看不到进程的PID值,单击“查看→选择列”,然后选中“PID (进程标识符)”复选项,单击“确定”。
第三步:打开“注册表编辑器”,按F5键刷新,[HKEY_LOCAL_MACHINE\SAM\SAM]分支可以访问了。然后按照“方法1”的第二、三步操作。
小提示 如果执行“psu -p regedit.exe -i winlogon_pid”命令无法访问SAM,打开“C:\WINNT\system32\config”文件夹,右击SAM文件,选择“属性”,单击“安全” 选项卡,单击“system”,单击“允许”栏下的“完全控制”复选框,单击“确定”。然后再执行“psu -p regedit.exe -i winlogon_pid”命令即可。此命令在Windows XP/Server 2003下无效。