注册表 基础知识( 五 )


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就行了 。
好了,讲了这么久,我们看看一个具体的案例 。
学院机房里的一台机器在重新启动后,无论用正常模式或者安全模式都不能进入WINDOWS界面,表现为启动过程中硬盘突然不读 。用SCANDISK检查过硬盘,并没有发现问题 。在启动过程中选择生成BOOTLOG.TXT文件,发现启动到硬盘控制器后就断掉了 。本来想用scanreg/restore恢复备份的注册表,可是该机器为了加快启动,并没有自动备份 。于是,用regedit把[HKEY-LOCAL-MACHINEEnumPCI]分支导出,键入:regedit /e hdc.reg HKEY-LOCAL-MACHINEEnumPCI;接着用EDIT查看关于硬盘控制器的部分,发现有"ChannelOptions"=hex:00,问题到这里终于发现了,原来是有人把IDE控制器设置成不使用,造成在加载硬盘控制器后,系统不能访问硬盘,所以把它改为:hex:02;再键入命令:regedit hdc.reg,把修改后的信息导入 。重新启动机器,一切正常运行了 。

推荐阅读