DOS下修改和恢复注册表的技巧

当我们人为错误操作或者恶性病毒感染而使系统切底崩溃 , 不能进入WINDOWS图形界面时 , 我们可以在DOS下面尽量挽救系统 。
一、使用scanreg/restore
DOS界面下输入该命令 , 就可以在最近的5个注册表备份里恢复 , 这种方法有个致命的缺陷就是只有最近5天的注册表备份可以选择 。因为控制着自动备份的scanreg.exe只会在每天第一次启动电脑时备份 , 如果哪天你安装的程序或者对注册表的修改比较多 , 那么你的努力就大多白费了 。
二、使用regedit.exe
这种方法可以把错误修复而完全不影响注册表的其他健康部分 。这样 , 我们就能在最大限度上保留我们的工作成果了 。使用regedit.exe对注册表实行局部修改的思路是:首先 , 把注册表里有嫌疑的分支导出;然后 , 使用edit对它进行分析和修改;最后 , 把健康的分支重新导入注册表里 。好了 , 我们来看看整个过程的具体操作 。
1 导出注册表分支
在DOS下导出注册表分支的命令格式是:Regedit[/L:system] [/R:user] /E filename [regpath1] 。/L:system是指定system.dat的路径 , /R:user是指定user.dat的路径 , 如果不说明 , 系统就会在默认的路径下找;/E:是导出注册表分支的文件名 , regpath1是要导出的注册表分支 。比如 , 我们要导出默认注册表关于控制系统启动的分支到test.reg里 , 命令如下:
regedit /e test.reg HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRun
2 对注册表进行分析、修改
在DOS下面只要运行edit就能对*.reg文件进行编辑了 , 因为我们导出的注册表实际上就是文本文件 。不过 , 要正确找出引起错误的地方并修改 , 需要我们平时对注册表积累的经验 。下面 , 我们看一下它的基本结构 , 以使我们在对它的修改时可以有的放矢 。
注册表里面有6个主分支 , 其中容易引起致命错误而使WINDOWS不能正常启动的分支有: [HKEY_LOCAL_MACHINE] , 记录着本地机器的硬件配置以及安装的相应软件 , 特别是[HKEY-LOCAL-MACHINEEnumPCI]这个分支下面的主键值 , 一旦出错 , WINDOWS往往不能启动 。如[HKEY-LOCAL-MACHINEEnumPCIVEN_8086&DEV-7111&SUBSYS_00000000&REV-01BUS_00&DEV_07&FUNC-01]记录的是硬盘控制器的详细信息 , 下面的Logconfig记录着它的各种参数;[HKEY_LOCAL-MACHINEEnumPCIVEN-1002&DEV-4C42&SUBSYS_4C421071&REV-DC00800]记录的则是显示卡的重要资料和参数 , 一旦这里出错 , 往往会导致WINDOWS在启动时黑屏 , 然后死掉 。
另外还有[HKEY-LOCAL-M ACHINESoftwareMicrosoftWindowsCurrentVersion]里记录着WINDOWS当前版本的信息以及启动时执行的程序等 , 这是病毒最爱攻击和修改的地方 。
至于还有[HKEY-CLASS-ROOT]是记录文件种类及其关联信息的 , [HKEY-CURRENT-USER]里记录着当前用户的各种信息 , 包括登陆的密码和各方面的设置等 , 这些一般不会引起WINDOWS的致命错误 , 这里也不再详细分析了 。
当我们对这些键值分析和修改时 , 如果碰到什么不清处的地方 , 可以通过第1点的导出注册表方法 , 把一些备份注册表的相应分支导出 , 进行比较 。WINDOWS的注册表备份都放在C:windowssysbackup里面 , 如我们要导出第一个注册表备份的[HKEY_LOCAL_MACHINE]分支 , 那么我们可以先进入该目录 , 然后键入命令:extract /e rb000.cab *.* , 先把system.dat和user.dat解压出来 , 再键入命令:regedit /L:system.dat /R:user.dat /e backup.reg HKEY-LOCAL-MACHINE 。
3 把修改好的注册表分支重新导入
命令的格式为:regedit /L:system /R:user file1.reg file2.reg 。我们一般都要修改默认的注册表文件 , 所以在实际使用中只需键入:regedit file1.reg就行了 。

推荐阅读