windows注册表-12、DOS下维护注册表的高级技巧11

现在随着电脑应用知识的普及,我想,很多朋友对注册表的修改已经有不少经验和心得。在图形界面下对注册表的维护和修改,就不必再提了,但有时候,我们可能会遇到更辣手的事情,如由于人为错误操作或者恶性病毒感染而使系统切底崩溃,不能进入图形界面时,我们对此是否只有重装这种方法呢?本文将就在DOS下面尽量挽救系统这方面作出阐述。

一、 使用scanreg/restore
  我想这种方法大家也比较熟悉了,只要在DOS界面下输入该命令,就可以在最近的5个注册表备份里恢复,如果幸运的话,系统就可以马上恢复。但,事实上,用这种方法有个致命的缺陷就是你只有最近5天的注册表备份可以选择。因为控制着自动备份的scanreg.exe只会在每天第一次启动电脑时备份,如果哪天你安装的程序或者对注册表的修改比较多,那么你的努力就大多白费了。这种方法就正如是眉毛胡子一起抓,正确和错误的都一起改掉,是否能为恢复系统帮上忙,总有一种听天由命的感觉。所以,笔者鼓励大家使用第二种方法。

二、使用DOS界面的regedit.exe
  如果把scanreg/restore比作是一刀切的话,这种方法更像是一次高明的外科手术,只一矢中的地针对病,把错误修复而完全不影响注册表的其他健康部分。这样,我们就能在最大限度上保留我们的工作成果了。使用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-MACHINE \Software\Microsoft\\CurrentVersion\Run。

2 对注册表进行分析、修改
  在DOS下面只要运行edit就能对*.reg文件进行编辑了,因为我们导出的注册表实际上就是文本文件。不过,要正确找出引起错误的地方并修改,需要我们平时对注册表积累的经验。

下面,我们看一下它的基本结构,以使我们在对它的修改时可以有的放矢。我们知道,注册表里面有6个主分支,其中容易引起致命错误而使不能正常启动的分支有: [HKEY_LOCAL_MACHINE],记录着本地机器的硬件配置以及安装的相应软件,特别是 [HKEY-LOCAL-MACHINE\Enum\PCI]这个分支下面的主键值,一旦出错,WINDOWS往往不能启动。如[HKEY-LOCAL- MACHINE\Enum\PCI
\VEN_8086&DEV-7111&SUBSYS_00000000&REV-01\BUS_00&DEV_07&FUNC-01]记录的是硬盘控制器的详细信息,下面的Logconfig记录着它的各种参数;[HKEY_LOCAL-MACHINE\Enum
\PCI\VEN-1002&DEV-4C42&SUBSYS_4C421071&REV-DC000800]记录的则是显示卡的重要资料和参数,一旦这里出错,往往会导致WINDOWS在启动时黑屏,然后死掉。

  另外还有[HKEY-LOCAL-MACHINE\Software\Microsoft
\Windows\CurrentVersion]里记录着WINDOWS当前版本的信息以及启动时执行的程序等,这是病毒最爱攻击和修改的地方。

  至于还有[HKEY-CLASS-ROOT]是记录文件种类及其关联信息的,[HKEY-CURRENT-USER]里记录着当前用户的各种信息,包括登陆的密码和各方面的设置等,这些一般不会引起WINDOWS的致命错误,这里也不再详细分析了。

  当我们对这些键值分析和修改时,如果碰到什么不清处的地方,可以通过第1点的导出注册表方法,把一些备份注册表的相应分支导出,进行比较。 WINDOWS的注册表备份都放在C:\windows\sysbackup里面,如我们要导出第一个注册表备份的 [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-MACHINE\Enum\PCI]分支导出,键入:regedit /e hdc.reg HKEY-LOCAL-MACHINE\Enum\PCI;接着用EDIT查看关于硬盘控制器的部分,发现有"ChannelOptions"=hex:00,到这里终于发现了,原来是有人把IDE控制器设置成不使用,造成在加载硬盘控制器后,系统不能访问硬盘,所以把它改为:hex:02;再键入命令:regedit hdc.reg,把修改后的信息导入。重新启动机器,一切正常运行了。

  这样,在不损坏任何数据的情况下,就把解决了。希望这个例子能给大家带来这种DOS下维护注册表技巧的启发,毕竟,我们硬盘上面有很多都是无价的数据。
13、在DOS下使用注册表扫描程序

从windows98之后,windows系统加入了对注册表的管理程序,该程序有两个版本,scanregw.exe工作在windows环境中, Scanreg.exe工作在dos环境.并用一个Scanreg.ini文件与之辅助.介绍该程序For windows版本的文章很多,朋友们可以自己查找参阅.这里仅介绍如何在dos下使用Scanreg.exe程序.

  由于程序是在dos模式下工作.因此,尽管你的是中文版的windows,这时出现的也是英文字符界面.程序操作是由命令行和一些选项开关组成.命令只有一个Scanreg,后面是/,之后就是所谓的开关了.如果你键入:Scanreg/?,会出现简单的帮助信息.其具体分析如下:

  Scanreg/backup 备份注册表的命令.这个命令执行后开始备份注册表,速度很快,备份结束出现dos默认的提示符号.

  Scanreg/restore 它执行后,系统会列出所备份的注册表文件,至于能列出多少个备份文件,与scanreg.ini文件中的设置有关,一般默认是5个备份文件.每个文件后面都有备份的日期.移动光条,选择一个,执行restore就可以回复选定的注册表.

  Scanreg /fix 注册表有时可以用这个来修复,修复时间较长,也许是我的机器很长时间没有进行过注册表修复操作,我在自己的机器上(P166MMX超频到187MHz,32M内存)执行这个命令后,用了十多分钟,其间有进度条指示修复完成的情况.

  系统出现问题,多数与注册表有关系,这时如果将注册表恢复到较早的一个,说不定就能解决问题.当你遇到的故障使得系统不能工作在windows模式下时,dos模式下恢复注册表就是唯一的选择了,愿我这里介绍的一点点知识,能在你遇到上述难题时,助你一臂之力.
14、在DOS下解决注册表问题

当您的Windows 95/98因注册表问题而无法启动到图形界面时,您此时只有在DOS下使用一些工具软件修复注册表。Windows 95/98的RegEdit、ScanReg是最合适不过的修复与维护工具软件。
在DOS下使用注册表编辑器。

在DOS提示符下键入Regedit命令,将出现一个帮助屏。此屏幕给出了其命令行参数及其使用方法。
语法:
Regedit [/L:system] [/R:user] filename1
Regedit [/L:system] [/R:user] /C filename2
Regedit [/L:system] [/R:user] /E filename3 [regpath]

其中:
/L:system 指定system.dat文件的存放位置。
/L:user 指定user.dat文件的存放位置。
filename1 指定引入注册表数据库的文件名。
/C filename2 指定形成注册表数据库的文件名。
/E filename3 指定导出注册表文件的文件名。

regpath 指定导出注册表文件的开始关键字(缺省为全部关键字)现举几个例子说明regedit.exe在DOS下的使用方法。
【例1】 将系统注册表数据库registry导出到reg1.reg文件中。
regedit /E reg1.reg

【例2】 reg1.reg形成系统注册表数据库registry(全部)中。
regedit /C reg1.reg

【例3】 将reg.dat引入系统注册表数据库中(部分)。
regedit reg.dat

【例4】 将CGJ开始的关键字导出注册表数据库,并命名为cgj.reg。
regedit /E cgj.reg cgj

【例5】 指定system/dat存放在D:\PWIN中和user.dat存放在E:\PWIN中,将reg.dat数据文件形成一个新的注册表数据库registry。
regedit /L:D:\PWIN /R:E:\PWIN /C reg.dat

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《windows注册表-12、DOS下维护注册表的高级技巧11
本文地址:https://www.zhiletu.com/archives-2318.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微