通常来说,Windows系统有很多保护措施,在系统启动之后除非使用合法的工具,否则无法复制、删除和编辑注册表,所以注册表错误也就很少发生。但是微软的Windows实在是太大了,注册表文件损坏的情况还是无法完全避免,比如运行程序的时候提示 “找不到*.dll”、“找不到OLE控件”,或者是单击某个文档的时候提示“找不到应用程序打开这种类型文档”等等,情况严重还会导致硬件无法正常工作,甚至无法启动Windows,可见注册表维护对于保证程序的稳定运行是非常重要的。
一、运行注册表
既然要维护注册表,当然首先要学会运行注册表。选“开始->运行->输入‘regedit’”,确定后,就可以见到注册表了。(如图1)
二、注册表清理
随着频繁地安装删除程序,注册表的体积会越来越大。这样不仅浪费硬盘空间,而且会影响系统的启动速度以及程序运行中对注册表的存取效率。为此,注册表维护首先要做的就是对其进行一番清理。
1. 重建清理
注册表文件采用了类似数据库记录方式,在删除某一个键值的时候,只是将此项的标识删除,但是实际信息仍然保留在注册表文件中,当然键值所占用的空间也不会释放。这样的结果便是Windows在经过一段时间的使用之后体积会明显增长,而采用重建注册表方法可以很好地给注册表减减肥。
首先,在Windows中运行regedit程序,从注册表菜单中导出整个注册表,并将其保存为new.reg。接着用DOS引导盘进入纯DOS状态,并通过“C:\Windows\regedit /c new.reg”命令来重建注册表。其中参数“/c”表示从后面指定的文件中重新生成整个注册表,重建的注册表文件往往比原来的要小很多,因此可以达到优化注册表的目的。
2. 删除注册表文件
在注册表中有很多无用的东西,这时可以在“HKET_LOCAL_MACHINE\Software”和“HKET_CURRENT_USER\Software”主键下找到那些已经被删除的子键并将其删除,而且可以把自己不需要的键值删除。比如在“HKET_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\explore\Tips”中对应的Windows技巧提示、“HKET_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\TimeZone”对应的时区、“HKET_LOCAL_MACHINE\System\CurrentControlSet\Control\Keyboardlayouts”对应的语言种类和输入法等等,都可以根据自己的需要有选择地删除。
3. 删除失效的文件关联
注册表文件中有关文件关联的内容存储在“HKEY_CLASSES_ROOT”键下,其中“a-z”部分用来定义文件类型,“A-Z”部分用来记录打开文件的应用程序。一般说来,在第二部分打开可疑键值之后,如果在子键Command下没有内容,则说明这个键值是空的。或者通过“文件管理器->查看->选项->文件类型”命令来查看那些使用通用文件图标的项目。如果确认用来打开文件的程序已经不存在了,不妨将这个键删除。
4. 删除已卸载软件的残留键值
许多软件在卸载之后,仍然会在注册表文件中留下一些无用的信息。它们一般都保存在“HLEY_LOCAL_MACHINE\Software”和“HKEY_CURRENT_USERS\.DEFAULT\Software”中。在这里查找那些已经被卸载的软件残留信息,并且将其彻底删除。
5. 删除多余的DLL文件
通过注册表可以发现一些无用的DLL文件信息或者是VxD文件信息,把它们删除之后可以提高系统的运行效率。具体的方法是在注册表中打开“KHEY_LOCAL_MACHINE\Software\Microsoft\CurrentVersion\SharedDLLS”,这个子键下包含的项目就表明了共享这个DLL文件的应用程序数目,如果某个DLL文件对应的数值为0,就表示它对系统已经没有用处,不妨毫不担忧地删除它。
除去上述介绍的方法之外,大家还可以通过超级兔子注册表优化软件、RegClean、Registry Optimizer等专业注册表优化减肥工具来完成注册表清理操作。由于这些软件的使用非常简单,笔者在此就不详述了,有兴趣的朋友不妨自行尝试一下。
三、备份注册表
注册表中存放的是Windows系统最重要的信息,但它也是影响系统稳定的关键之一,很多软件故障都与注册表有关,因此备份注册表就成为解决很多问题的重要手段。下面我们就来看看怎样对注册表进行备份。
1. 手工备份注册表
使用注册表,我们一定要养成良好的习惯,在安装软件前不要忘记给注册表备份(特别是实验软件时)。最好每次安装软件前都进行备份,并命名为不同的reg文件。如果发现软件不好,在卸载该软件后,一定别忘了双击备份的reg注册表备份文件。虽然手工备份注册表是一件很烦人的事情,但它确是一种非常方便的措施,尤其在无法进入Windows图形界面的时候,手工的恢复更显示出它的强大威力。
a. Windows 9x/Me的注册表备份
Windows 9x/Me系统中的注册表底层是由System.dat和User.dat这两个文件构成的。它们一般都存放在Windows目录中。如果在控制面板的“密码”中选择了“用户可自定义首选项及桌面设置”,那么系统就会为每个用户创建自己的User.dat文件,并且把它存放在“C;\Windows\Profiles\用户名”目录中,只要备份了这几个文件就完成了注册表的备份。需要提醒大家注意的是,出于安全方面的考虑,System.dat和User.dat文件属性具有系统、隐藏、只读属性,因此我们在Windows中备份的时候一定要在取消这些属性之后进行文件的复制。如果在DOS状态下复制,则可以通过下面的命令去除文件属性:
attrib system.dat -r -h -s
attrib user.dat -r -h -s
b. Windows 2000/XP注册表的备份
Windows 2000/XP注册表文件的系统部分都存储在“C:\Winnt\System32\Config”文件夹中,而用户配置文件信息则保存在“C:\Documents and Settings\用户名”文件夹中。由于Windows的保护机制,我们无法直接对其进行复制,所以需要引导进入DOS系统或者是安装在计算机内的Windows 9x(双系统)进行备份。不过需要提醒大家注意的是,如果Windows 2000/XP采用了NTFS分区结构,那么还要专门的读取NTFS工具帮忙,否则无法读取NTFS分区中的文件。
2. 使用Microsoft备份程序备份注册表
如果觉得上述的手工备份比较麻烦的话,那么大家还可以通过Windows内置的备份程序来备份注册表信息。
a. Windows 9x/Me中的备份
Windows 9x/Me中的“Microsoft备份程序”并不是一个默认安装的程序,所以我们需要通过控制面板中的“添加/删除程序”命令添加这个程序。安装结束后,依次进入“开始->程序->附件->系统工具”程序组运行“备份”命令,接着我们可以按照下述步骤完成注册表的备份。
第1步、点取【备份】标签,在“备份内容”区域中选择Windows 9x/Me所在的目录,同时在右边窗口中选择好需要备份的文件,比如System.dat、User.dat等。
第2步、在“备份至何处”对话框中选择放置注册表备份的目标位置与文件名,此时最好在硬盘中重新创建一个注册表存放目录。
第3步、点击“开始”按钮,则Widnows开始备份注册表。
b. Windows 2000/XP中的备份
虽然Windows 2000/XP中也提供了Microsoft备份程序,但是没有办法直接备份注册表,只能备份所谓的系统状态,这其中也包含了注册表。Windows 2000/XP的备份工具可以通过“开始->程序->附件->系统工具->备份”命令激活,也可以直接在运行窗口中输入“ntbackup”来启动备份程序。
在图2所示的窗口中进入【备份】标签,接着选中“系统状态”一项即可。通常系统状态数据包括注册表、COM+类注册数据库、启动文件等信息,但是由于不能单独针对其中的某一个组件进行备份,因此有时候备份得到的文件个头非常大,这点需要提醒大家注意。
3. 通过注册表编辑器导出注册表
注册表编辑器除了可以编辑注册表之外,还能够导出注册表,以达到备份注册表的目的。使用注册表编辑器导出注册表的时候,选中需要导出的注册表分支,比如“HKEY_CURRENT_USER\Control Panel”,然后选择“注册表”菜单下的“导出注册表文件”选项,此时将弹出一个对话框,在其中输入相应的文件名和路径等信息,点击“保存”按钮之后即可备份选中的注册表分支。同样,我们也可以对整个注册表进行备份,导出的文件是文本格式,还能够通过记事本等编辑器进行查看。不过这种方法对于Windows 9x/Me而言实用性更强一些,因为regedit程序既可以在Windows中使用,也可以在DOS状态下执行导入功能,所以在系统无法进入图形界面的时候就能用它方便地恢复注册表。
三、恢复注册表
对注册表完成备份操作之后,一旦系统遭到破坏,怎样进行恢复呢?下面就让我们来看看。不过在此提醒大家一下,恢复注册表之后,所有备份时间以后对注册表所作的修改都将失效,因此有可能导致在备份之后安装的程序无法运行。
1. 在DOS模式下手工恢复
很多情况下,如果注册表出现问题可以在启动的时候按下“F8”按钮进入DOS模式,然后将备份的注册表文件恢复即可解决问题。
a. Windows 9x/Me的恢复
在Windows 9x/Me的DOS模式中恢复注册表可以按照下述步骤完成:第1步、在DOS提示符下进入Windows目录,通过attrib system.dat -r -h -s和attrib user.dat -r -h -s命令去除System.dat和User.dat文件的属性。第2步、将备份的系统文件复制回来覆盖现在的文件,在系统询问是否覆盖时,要输入“Y”键确认。第3步、通过attrib system.dat +r +h +s和attrib user.dat +r +h +s命令恢复系统文件属性,最后重新启动计算机即可。
b. Windows 2000/XP的恢复
在Windows 2000/XP中无法直接恢复备份的注册表文件,此时也要借助安装的双系统或者是引导进入DOS系统之后,手工复制文件来完成注册表的恢复操作。
2. 使用Microsoft备份程序恢复注册表
启动备份程序之后进入【恢复】标签,在“还原位置”区域中选择备份文件,并且在“要还原的数据”区域选择还原的目标。点击“刷新”按钮可以选择备份集,最后按下“开始”按钮,则备份程序自动恢复注册表。
3. 通过注册表编辑器导入注册表
在Windows 9x/Me/2000/XP中,如果恢复之前曾经通过注册表编辑器导出注册表文件,那么恢复的时候只需要双击这个导出的注册表文件,系统就会自动启动注册表编辑器将其中的注册表信息导入注册表中。另外,也可以在注册表编辑器的“注册表”菜单中选择“引入注册表文件”命令,接着再选择以前备份的文件也可恢复注册表信息。
四、RegRun的注册表监测
在日常使用计算机过程中,经常会有程序更改注册表,从而让我们卸载程序之后还要在注册表中查找有关的键值并将其删除。而且现在还有很多网络病毒、木马程序会自动更改注册表,这些都让我们防不胜防,即使你自认为对注册表已经非常熟悉了,可是遇到这种情况也会一筹莫展的,更不用说刚刚接触电脑没有多长时间的菜鸟了。假如你想真正有效地控制注册表变更,不妨让RegRun来帮忙吧。
RegRun可以在http://www.greatis.com官方站点下载得到。它是一款功能非常强大的注册表监测软件,从开启计算机那一刻,它就对关键的几个系统引导文件进行检测,并驻留在后台全程监控注册表的一举一动。如果有程序需要修改注册表启动选项,或者试图对Autoexec.bat、Config.sys、Win.ini等控制计算机启动文件进行修改的话,RegRun会毫不留情的对其进行拦截,并弹出窗口询问你是否同意此处的修改。对于那些隐藏在系统中的木马程序、病毒或其它来路不明的程序来说,RegRun会在启动前激活之前发出警告,这就可以很轻松地将其从系统中剔除出去了。
使用RegRun的时候,首先双击右下角系统托盘栏的盾牌图标以激活它的主窗口。
在图3所示的设置窗口中选取【监测狗】标签下的“监视变化”、“检查具有危险性的程序”和“监视保护的注册表主键”选项,这样才能够最大程度的发挥RegRun注册表监测功能,保护系统免受任何威胁。而且当你安装了防病毒软件之后,还可以在【防病毒】标签中通过自动检测让RegRun和防病毒软件协同工作,将所有病毒程序都拒之门外。这里的设置好后,RegRun就会以图标形势运行在后台,下面就一起来看看它的实际功能如何吧。
1. 检测启动程序
在【注册表】标签中,能够看见启动选项以及当前运行的程序列表。(如图4)由于这些程序都是在安装RegRun之前就已经驻留在系统中,因此建议大家点击右部最上面的查看按键检测一下它们是否属于正常合法的程序,如果RegRun提示某个程序可能对系统造成破坏,只要点击程序对应的色灯并将其更改为红色就能够暂时中止程序的运行,并将相关的程序从注册表中清理出去。这样就避免了重新开启计算机之后,木马病毒程序驻留内存的危险。
同样,采用上述方法可以在这里对所有的启动程序选项进行检测。需要指出的是,RegRun检测的启动程序非常全面,不仅仅包括了常见的Win.ini、System.ini、Config.sys和Autoexec.bat等程序选项,还有公共启动程序组、VxD驱动器和许多注册表的启动键值。建议大家按照上述步骤对每个启动程序检测都检测一下,以确保系统处于正常稳定的运行状态。
2. 启动程序监测
在正常使用计算机的时候,有可能使用磁盘复制文件或者是浏览网页而感染木马程序与病毒,如果这些程序需要在启动Windows时候就自动运行,那么就必须要更改注册表或者相关的启动文件。只要RegRun驻留在系统后台,这些程序就没有下手的机会了。因为RegRun会始终对这些重要的启动文件进行实时监测,一旦遇到企图修改的情况,它会立即中止正常的操作,并以弹出窗口的形势引起你的注意。此时可以判断是否属于安装超级解霸、病毒防火墙等软件必须在开机运行的程序,确认之后点击下部的“那是正常的”允许修改,或者通过“改回来”禁止此次的修改,这样就能够防止木马和病毒软件驻留在系统启动程序中了。
3. 安全启动
大家都知道Windows 9x启动实际上是先运行DOS内核,然后在其基础上运行Windows程序。为了确保系统的安全,RegRun的安全启动功能可以从DOS开始就监测所有启动选项的变化。激活这项功能只要在【安全启动】标签下选取“在DOS平台中运行”命令即可。以后每次启动计算机的时候,RegRun都会在DOS加载完成后立即对所有的程序进行监测,这除了上述提及的各种启动引导文件之外,连注册表的相关键值都不放过,一旦程序检测到这些启动程序被更改,它还会弹出编辑窗口供你修改确认。因此RegRun的这种运行模式可以在Windows启动之前进行监测,将有可能威胁到系统安全的木马、病毒及时查找出来,让它们无法潜伏在Windows中运行。
4. 定制不同模式启动选项
当Windows使用时间长了之后,速度肯定是会下降的,但开机时间长则是由于加载了过多的程序所致。比如在不上网、不安装软件的时候也许就不需要驻留防火墙,而上网冲浪的时候也不需要超级解霸的光碟伺服器运行在后台,所以我们可以利用RegRun的启动注册表备份功能来定制不同模式的启动选项。
比如我们操作计算机时候主要分为上网冲浪和游戏两种用途,就可以分别定制两种类型的注册表启动文件。首先在RegRun的主窗口中先进入【注册表】标签,将病毒防火墙、MSN、OICQ等不需要的选项删除,接着运行“文件->预设文件保存为”命令将其保存为名称是“游戏”的文件;然后将这些删除的程序恢复,并将虚拟光驱、超级解霸光碟伺服器等不需要的选项删除,再将其保存为名称是“网络”的文件。(如图5)
这样当我们需要上网冲浪的时候,只要进入RegRun安装目录并双击“网络”文件,此时RegRun会自动弹出恢复预设文件窗口,点击“确定”按键并根据提示重新启动计算机就可以在没有虚拟光驱、超级解霸伺服器的环境下上网冲浪;同样载入“游戏”文件也能够去除一些不需要驻留内存的程序,加快游戏的速度。