注册表使用及维护
1) 注册表概述
注册表是Windows系统用来存储计算机配置信息的一个庞大数据库,它包含了应用程序和计算机系统的配置、操作系统和应用程序的初始化信息、应用程序和文档的关联关系、硬件设备的说明、状态和属性以及各种状态信息和数据。
注册表中存放着各种参数,直接控制着系统的启动、硬件驱动程序的装载以及一些系统应用程序的运行,从而在整个系统中起着核心作用。
2) 注册表文件组成
注册表是由多个具有系统隐藏属性的文件组成。
不同版本的Windows操作系统其注册表文件的组成也不同,以实验环境Windows XP为例,文件分成系统配置文件和用户配置文件两大部分,其中系统配置文件保存在系统目录下system32\config中,包括AppEvent.Evt、SecEvent.Evt、SysEvent.Evt、default、system和software等多个文件,以及相应的.LOG(日志)文件和.SAV文件;用户配置文件保存在系统根目录下的Documents and Settings目录下的用户名目录中,分别是NTUSER.DAT、ntuser.ini以及日志文件ntuser.dat.LOG文件。
在Windows 2000和Windows XP运行时,无法使用其它的工具将这些注册表文件打开,这一点与Windows 98下的SYSTEM.DAT和USER.DAT不同。
3) 注册表结构
注册表结构类似于目录管理的树状分层结构,由项、子项、配置单元和值项组成。
项:出现在【注册表编辑器】对话框中的文件夹。
项可以包含子项和值项,例如,Software 是HKEY_CURRENT_CONFIG的一个子项。
其中,“预定义项”是代表注册表的一个主要部分的项。
每个“预定义项”都单独显示在【注册表编辑器】对话框的左窗格中。
主要有5个“预定义项”,分别是:
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG
子项:在项的下面是子项,如同子文件夹一样。
项与子项的关系类似于资源管理器中的文件夹与子文件夹,如果某个项包含了子项,则在【注册表编辑器】对话框中代表该项的文件夹的左边会出现一个“+”号,单击“+”号,则可展开该项下的子项,同时“+”号变成“-”号,单击“-”号,则可收敛该项下的子项。
配置单元:作为文件出现在硬盘上的注册表的一部分。
注册表树型结构中的子树部分被划分成配置单元,它位于注册表层的顶部,是项、子项和值项的离散体。
值项:出现在【注册表编辑器】对话框的右窗格中的数据字符串。
项和子项可以包含一个或多个值项,值项由名称、数据类型和值本身三个部分组成。
4) 注册表五个预定义项
HKEY_LOCAL_MACHINE:是注册表的核心,用于存放计算机系统软、硬件以及应用程序的全部配置信息。
它包括以下8个部分:Config系统配置、Driver驱动程序、Enum即插即用设备、Hardware硬件、Network网络、Security安全、Software软件和System系统。
HKEY_USERS:储存了计算机上所有的用户配置文件,其中一个子项HKEY_USERS\DEFAULT 包含用户登录前使用的信息,另一个子项总是映射为HKEY_CURRENT_USER。
HKEY_CURRENT_USER:保存了当前登录用户的信息,它是HKEY_USERS\用户名的快捷方式,若未激活用户配置则它是HKEY_USERS\DEFAULT的快捷方式。
HKEY_CLASSES_ROOT:记录的是系统中各类文件与其应用程序之间的对应关系,即记录了
某类文件和打开该类文件的应用程序之间的相互关联关系,它是HKEY_LOCAL_MACHINE\Software\Classes的快捷方式。
HKEY_CURRENT_CONFIG:存放着计算机当前会话的所有硬件配置信息,它是HKEY_LOCAL_MACHINE\Config的快捷方式。
5) 注册表值项
注册表通过项、子项来管理各种信息,但是,注册表中的所有信息是用不同数据类型的值项的值进行保存的。
值项拥有三个属性,名称、数据类型和值。
注册表支持的数据类型有:字符串类型(REG_SZ):固定长度的文本串。
硬件的标识与文件的描述等信息常用此数据类型表示。
二进制类型(REG_BINARY):未处理的二进制数据。
多数硬件组件信息都以二进制数据存储,而以十六进制格式显示在注册表编辑器中。
DWORD类型(REG_DWORD):值由4字节长的数据表示。
许多设备驱动程序和服务的参数是这种类型并在注册表编辑器中以二进制、十六进制或十进制的格式显示。
可扩充字符串类型(REG_EXPAND_SZ):长度可变的数据串。
该数据类型包含在程序或服务使用该数据时确定的变量。
多重字符串类型(REG_MULTI_SZ):多重字符串。
数据项使用这种类型的项组成多个文本字符串,字符串用空格、逗号或其它标记分开。
REG_FULL_RESOURCE_DESCRIPTOR:设计用来存储硬件元件或驱动程序的资源列表的一列嵌套数组。
其中常用的数据类型有:字符串值(REG_SZ)、二进制值(REG_BINARY)和DWORD值(REG_DWORD)三种。
由于注册表在系统中起着非常重要的作用,为了防止注册表遭到破坏而使整个系统崩溃,所以最好经常给注册表做备份。
如果操作错误或者系统显示“注册表损坏”等情况出现时我们可以将注册表备份导入到注册表编辑器中,实现系统的恢复。
1)备份注册表
如果要完全备份或局部备份注册表,可以使用注册表编辑器中的“导出”命令进行操作。
(1) 打开注册表编辑器。
(2) 选中要导出的“项”或“子项”。
(3) 选择“文件”菜单中“导出”项,弹出【导出注册表文件】对话框,如图9.10所示。
(4) 在该对话框的“导出范围”设置栏中,选中“全部”或“所选分支”单选按钮。
如果想导出全部注册表,则选择“全部”单选按钮,如果要导出局部注册表,则首先要选择需导出的项或子项,然后再选中“所选分支”单选按钮。
(5) 在“保存类型”下拉列表中,选择文件扩展名为“reg”的系统默认类型,将注册表保存为“注
册文件”,此类型文件文本编辑器无法打开查看;如果用户想通过文本编辑器进行查看,可以在“保存类型”下拉列表中,选择文件扩展名为“txt”,实现将注册表导出为文本格式的文件。
(6) 输入要保存的文件名,单击【保存】按钮,完成备份。
2)恢复注册表
(1) 完全恢复注册表:在注册表编辑器中选择“文件”菜单中的“导入”项,弹出【导入注册表文件】对话框,如图9.11所示,然后选择硬盘上相应的备份注册表文件即可。
(2) 部分恢复注册表:使用以前备份的注册表文件或其它注册表文件来覆盖现有的“项”。
首先在注册表编辑器中,将光标移至要还原的“项”上,再选择【导入】项,并在【导入注册表文件】对话框中选择要还原的注册表文件,单击【打开】按钮,确认覆盖现有项后,即可还原该“项”到当前选定的“项”上。
注意:被选择导入的文件必须与注册表编辑器中所选择的“项”内容吻合,即保存的注册表“项”只能还原到原先的位置。