第 18章 使用注册表
本章学习目标
? 本章主要讲解注册表的基本知识。通过本
章学习,读者应该掌握以下知识:
注册表的作用;
注册表的结构;
注册表子目录树的功能;
注册表编辑器的使用。
18.1 注册表概述
? 18.1.1 什么是注册表
? 注册表是一个树状分层的数据库,包含计算机中每个用户
的配置文件、有关系统硬件的信息、安装的程序及属性设
置等各种计算机软、硬件配置数据。注册表中存放着各种
参数,直接控制着 Windows的启动、硬件驱动程序的装载
以及一些 Windows应用程序的运行,在整个 Windows系统
中起着核心作用。用户可以通过注册表调整软件的运行性
能、检测和恢复系统错误、定制桌面等。系统管理员还可
以通过注册表来完成系统远程管理等。概括起来,注册表
包括如下一些主要内容:
? ( 1)软、硬件的有关配置和状态信息。注册表中保存有应
用程序的初始条件、首选项等信息。
? ( 2)整个计算机系统的设置和各种许可,文件扩展名与应
用程序的关联关系,硬件部件的描述、状态和属性等。
? ( 3)性能记录和其它底层的系统状态信息。
18.1.2 注册表的作用 (1)
? 注册表在 Windows Server 2003中起到中介的作
用,负责系统同软件、硬件、用户之间的沟通。
在 Windows Server 2003中运行一个应用程序的
时候,系统会从注册表取得相关信息,如数据文
件的类型、保存文件的位置、菜单的样式、工具
栏的内容、相应软件的安装日期、用户名、版本
号、序列号等。用户可以定制应用软件的菜单、
工具栏和外观,相关信息即存储在注册表中。利
用注册表的这些特性,许多软件的试用版都可限
制用户的使用次数或时间。
18.1.2 注册表的作用 (2)
? 注册表会自动记录用户操作的结果。当用户改变
了窗口的位置,大小和状态后,下一次打开同一
窗口时,窗口会保持同样的位置和大小。这是因
为在关闭窗口时,窗口的位置、状态(如最大
化)、大小等信息也同时被保存在注册表中。在
下一次打开窗口时,系统会从注册表取相应的参
数,然后按照这些参数配置打开的窗口。同样,
桌面的图标、任务栏的大小和位置也由注册表控
制,当改变它们的大小和位置时,注册表会记录
下它们在关机之前的位置。在下一次启动时,再
从注册表取得相应的数据,并按照注册表中的信
息显示这些对象。
18.1.3 注册表的结构
图 18-1 注册表结构图
注册表子目录树 (1)
? Windows有两个注册表子目录树:
HKEY_LOCAL_MACHINE和 HKEY_USERS。为
了使注册表中的信息更容易查找,注册表编辑器
显示出五个子目录树,它们分别是:
? ( 1) HKEY_LOCAL_MACHINE:包含本地计算
机的系统信息,用于任何用户。包括硬件和应用
程序信息。如总线类型、系统内存、设备驱动程
序和计算机专用的各类软件设置信息。
注册表子目录树 (2)
? ( 2) HKEY_USERS:包含所有登录用户
的信息。这些信息告诉系统当前用户使用
的图标、激活的程序组、开始菜单的内容
以及颜色、字体等。远程访问服务器的用
户在服务器中注册表的该项下没有配置文
件,他们的配置文件加载到他们自己计算
机的注册表中。
注册表子目录树 (3)
? ( 3) HKEY_CLASSES_ROOT:包含启动
应用程序所需的全部信息。包括扩展名、
应用程序与文档之间的关系、驱动程序名、
OLE信息、应用程序与文档的图标等。该
子目录树是从 HKEY_LOCAL_MACHINE中
映射出来的。该子目录树指向
HKEY_LOCAL_MACHINE\SOFTWARE\Cl
asses。
注册表子目录树 (4)
? ( 4) HKEY_CURRENT_USER:包含当
前登录用户的配置信息,包括环境变量、
个人程序、桌面设置等。
HKEY_CURRENT_USER 是
HKEY_USERS 的子项。任何对
HKEY_CURRENT_USER根键中的信息的
修改都会导致 HKEY_USERS\.DEFAULT子
键信息的修改。该信息被称为用户配置文
件。
注册表子目录树 (5)
? ( 5) HKEY_CURRENT_CONFIG:包含有关本
地计算机在系统启动时使用的硬件配置文件的信
息。例如要加载的设备驱动程序或显示时使用的
分辨率。如果你在 Windows中设置了两个或者两
个以上的硬件配置文件( Hardware Configuration
file),则系统在启动时将会让用户选择使用哪个
配置文件,其根键中存放的是当前配置文件的信
息。 HKEY_CURRENT_CONFIG的信息是从
HKEY_LOCAL_MACHINE中映射出来的。该子
目录树指向
HKEY_LOCAL_MACHINE\SYSTEM\CurrentCon
trolSet\HardwareProfiles\Current。
2,注册表配置单元和文件
? 注册表配置单元是注册表中的一组项、子项和值,对应一
组支持文件,这些文件包含其数据的备份。在 Windows
Server 2003中,除 HKEY_CURRENT_USER之外,所有
其他配置单元的支持文件都位于
%SystemRoot%\System32\Config文件夹中
( %SystemRoot%指操作系统根目录)。其中包括 default、
SAM,SECURITY,Software,System和以 log,sav为
扩展名的同名文件。 HKEY_CURRENT_USER的支持文
件(包括 Ntuser.dat和 Ntuser.dat.log)位于对应用户的文
件夹中。例如,如果用户 super的 Windows Server 2003
系统文件在 c分区的 Windows目录中,则配置单元文件被
存储在 c:\windows\system32\config文件夹中。而用户
super的配置文件则在 C:\Documents and Settings\super
文件夹中。注册表配置单元也称注册表文件或注册表日志
文件。
3.注册表项中的值项
? 每个注册表项或子项都可以包含称为值项
的数据。有些值项存储每个用户的特殊信
息,而有些值项则存储应用于该计算机中
所有用户的信息。值项包括三部分:值的
名称、值的数据类型和值本身。
表 18-2 由系统定义和使用的数据类型
数据类型 说明
R E G _S Z 固定长度的字符串。
R E G _B I N A R Y ( 二进制值 )
原始二进制数据。大多数硬件组件信息作为二进制数据存储,
以十六进制的格式显示在注册表编辑器中。
R E G _D W O R D ( 双字节数 )
由 4 字节长( 32 位整数)的数字表示的数据。设备驱动程序
和服务的许多参数都是此类型,以二进制、十六进制或十进制
格式显示在注册表编辑器中。与之有 关的值 是
D W OR D _ L IT T L E_ EN D IAN (最不重要的字节在最低位地址)
和 R EG _ D W OR D _ BIG _ EN D IAN (最不重要的字节在最高位
地址)。
R E G _E X P A N D _S Z
长度可变的字符串。该数据类型包含在程序或服务中使用的各
种数据变量。
R E G _M U L T I _S Z
多个字符串。可被用户读取的列表或具有多个值的项目通常为
该类型。 各条目之间用空格、逗号或其他标记分隔。
R E G _F U L L _R E S O U R C E _D E S C R I P T O R
设计用来存储硬件元件或驱动程序的资源列表的一列嵌套数
组。
18.1.4 注册表编辑器 (1)
? 注册表编辑器是用来查看或更改系统注册
表设置的实用程序。 Windows Server 2003
提供了注册表编辑器 Regedit.exe,它被自
动安装在 %SystemRoot%文件夹中。
18.1.4 注册表编辑器 (2)
图 8-2 Regedit注册表编辑器
18.2 注册表子目录树
? 在 Windows Server 2003中,注册表由多个文件
组成,不同的文件包含有不同的内容。通过系统
提供的注册表编辑器,可把保存在不同文件中的
系统配置信息关联起来,组织成一个分级的树型
结构,每一类功能的配置信息被组织在一起,每
一类都被称为一项。针对某一项中的内容,再根
据功能和作用进行更细致的划分,划分为若干个
更小的类,其中的每一个小类都是一个子项。注
册表的每一项都有一个项名,用户可以设置每一
项的项值。系统正是利用为每一项所赋的值为硬
件和软件进行配置的。
18.2.1 HKEY_CURRENT_USER(1)
? HKEY_CURRENT_USER子目录树是
Windows Server 2003注册表最重要的部分
之一,它包含 Windows Server 2003系统以
及应用软件的配置信息,包括声音、时间、
控制面板的功能(如桌面、鼠标、配色方
案、屏幕保护程序)、键盘等建立的配置
信息以及安装软件时由安装程序建立的项
和值(如图 18-3所示)。下面介绍一些
HKEY_CURRENT_USER中常用项。
18.2.1 HKEY_CURRENT_USER(2)
图 8-3 HKEY_CURRENT_USER子目录树
18.2.1 HKEY_CURRENT_USER(3)
? 1,HKEY_CURRENT_USER\AppEvents
? HKEY_CURRENT_USER\AppEvents及其子项,
定义了系统特定事件的名称以及发生该事件时系
统的声音提示。其中,
HKEY_CURRENT_USER\AppEvents\EventLab
els子项定义了特定事件的名称,如“最大化”、
“启动 Windows”、“电池电力不足警告”等,此
处的设置在控制面板中“声音和音频设备”对话
框的“声音”选项卡的“程序事件”列表中列出。
HKEY_CURRENT_USER\AppEvents\Schemes
子项则定义了发生特定的事件时系统要播放的声
音文件。
18.2.1 HKEY_CURRENT_USER(4)
? 2,HKEY_CURRENT_USER\Console
? HKEY_CURRENT_USER\Console定义了“命令
提示符”窗口的一些特性,如光标大小、窗口大
小、字体、屏幕及字体颜色等内容。对应的在
“命令提示符属性”对话框中可以进行相应的设
置,其设置的结果就保存在该项中。
? 3,HKEY_CURRENT_USER\Control Panel
? 用户在“控制面板”中进行的大部分设置,都保
存在此项中,包括辅助功能选项、显示器、鼠标、
区域选项、屏幕保护等信息。
18.2.1 HKEY_CURRENT_USER(5)
? 4,HKEY_CURRENT_USER\Environment
? 该项目定义了系统以及其他登录用户的临时文件的存放目
录。
? 5,HKEY_CURRENT_USER\Printers
? 此项目列出了有关打印机的设置信息,其中
DevModePerUser子项中保存本地安装的所有打印机及其
设置信息。
? 6,HKEY_CURRENT_USER\Keyboard Layout
? 该项目中保存着系统的键盘布局设置,其中 Preload子项
保存已添加的输入法的编号。在“区域选项”对话框中的
“输入法区域设置”选项卡中可以对该子项进行设置。
? 7,HKEY_CURRENT_USER\software
? 该项目包含系统、系统附带的应用软件以及已经在系统中
安装的其他软件的设置信息。使用这些软件时所作的设置
以及应用软件的默认设置信息,都将保存在相应子项中。
18.2.2 HKEY_LOCAL_MACHINE(1)
? HKEY_LOCAL_MACHINE子目录树中的设置内
容是关于本地计算机系统的信息,包括硬件和操
作系统数据,如总线类型、系统内存、设备驱动
程序和启动控制数据。这些信息只与本地的用户
有关。 HKEY_LOCAL_MACHINE包含五个子项
(如图 18-5所示)。注意不能使用注册表编辑器
修改 HKEY_LOCAL_MACHINE子目录树中的
SAM子项和 SECURITY子项,这些子项对应的是
“计算机管理器”等系统功能。
18.2.2 HKEY_LOCAL_MACHINE(2)
图 8-4 HKEY_LOCAL_MACHINE子目录树
18.2.2 HKEY_LOCAL_MACHINE(3)
? 1,HKEY_LOCAL_MACHINE\HARDWAR
E
? 该子目录保存了 Windows Server 2003 系
统中的所有硬件信息。在 Windows Server
2003中,系统和应用程序都是通过该项的
设置与具体的硬件进行沟通。
18.2.2 HKEY_LOCAL_MACHINE(4)
? 2,HEKY_LOCAL_MACHINE\SOFTWARE
? 该子项包含系统中软件的设置信息。由于用户安
装的软件不同,该项中的设置信息也会不同。
? 3,HEKY_LOCAL_MACHINE\SYSTEM
? 该子项包含系统启动需要的详细信息,包含设备
的驱动程序及其配置信息、控制数据、系统分区
及其他驱动器的设置信息,以及系统不能启动时,
如何恢复正确配置信息。
18.2.3 HKEY_CLASSES_ROOT(1)
? 为了加强对系统数据类型的管理,Windows
Server 2003在注册表中组织了
HKEY_CLASSES_ROOT子目录树,它包含了对
数据文件类型的定义;每一种在系统中注册过的
文件类型,都会在此建立一个子项(如图 18-5所
示)。在每一个子项中定义了数据文档的扩展名、
扩展名的说明性文字、在文件列表窗口中显示的
图标以及与数据文档关联的应用程序和应用程序
对数据文档的操作方式。如果用户要动手注册新
的数据文档,可以在 HKEY_CLASSES_ROOT中
创建相应的子项。
18.2.3 HKEY_CLASSES_ROOT(2)
图 8-5 HKEY_CLASSES_ROOT子目录树
18.2.3 HKEY_CLASSES_ROOT(3)
? 用户选择“我的电脑”窗口中的选择菜单
“工具” /“文件夹选项”命令,打开“文件
夹选项”对话框,在“文件类型”选项卡
中所做的任何更改都会如实记录到
HKEY_CLASSES_ROOT子目录树中。但
这种方式不能对 HKEY_CLASSES_ROOT
中所有子项进行修改,如果要实现某些特
殊功能,还需手工配置
HKEY_CLASSES_ROOT中的一些子项。
18.2.4 HKEY_USERS(1)
? HKEY_USERS子目录树(如图 18-6所示)是控
制用户配置文件的,它包含所有用户的配置文件
的内容。每个用户都对应 HKEY_USERS项中一
个子项,如 S-1-5-19。
? HKEY_USERS\.DEFAULT子项定义了默认登录
用户的环境变量,如果用户对该子项进行了修改,
将会影响登录到本机上的所有新用户的系统环境;
但是如果管理员已经为用户定义了与默认配置不
同的配置文件,对该子项的修改不会影响该用户。
18.2.4 HKEY_USERS(2)
图 8-6 HKEY_USERS子目录树
18.2.4 HKEY_USERS(3)
? HKEY_USERS\S-1-5-21-xxxxxxxxxx-xxxxxxxxxx-
xxxxxxxxxx-500( x表示一整数,不同计算机不同)子项
是当前登录用户的配置信息。每一个登录的用户都会有一
个类似的子项,作为该用户的数字标识,每个用户的数字
标识都是独一无二的。
? 如果没有为用户设置不同于 HKEY_USERS\.DEFAULT子
项的配置文件,该用户将使用 HKEY_USERS\.DEFAULT
子项的配置文件。在登录用户的配置信息中,有两个子项
是 HKEY_USERS\.DEFAULT不包含的子项,它们分别是
Network和 Printers子项。其中 Network子项中包含网络用
户使用的映射驱动器的定义,Printers子项定义了有关共
享打印机的设置。
18.2.5 HKEY_CURRENT_CONFIG(1)
? HKEY_CURRENT_CONFIG子目录树是用来控制系统硬
件配置信息的,它包含系统不同的硬件配置信息之间的差
异。如果在系统中设置了多个不同的正确配置文件,则系
统在启动时会让用户选择要使用的配置文件。
HKEY_CURRENT_CONFIG控制项代表的就是用户或用
户选择的硬件配置文件,但是它只列出用户选择的配置文
件与其它配置文件不同的地方。
? HKEY_CURRENT_CONFIG子目录树中有两个子项,如
图 18-7所示,其中 Software子项保存了不同硬件配置信息
在硬件驱动程序上的差异,如果不同硬件配置信息在硬件
所使用的软件上没有差异,在该子项中不会列出任何信息。
System\CurrentControlSet\Control子项中保存着当前配置
文件与其它正确的配置文件,在是否激活上存在的差异。
18.2.5 HKEY_CURRENT_CONFIG(2)
图 8-7 HKEY_CURRENT_CONFIG子目录树
18.3 注册表的管理和维护
? 如前所述,使用注册表编辑器,可以实现
对注册表的维护。选择“开始”菜单的
“运行”命令,在“运行”对话框中输入
regedit或者 regedt32,单击“确定”按钮
即可启动注册表编辑器。
18.3.1 导出注册表文件 (1)
? 步骤一,打开注册表编辑器;
? 步骤二,选择“注册表”菜单中的“导出
注册表文件”命令,打开如图 18-8对话框;
? 步骤三,根据需要选择导出“整个”注册
表或者“导出所选分支”,即当前某个子
目录树或者子项;
? 步骤四,选择导出路径,在“文件名”下
拉文本框中输入存储注册表文件的名称。
? 步骤五,单击“保存”按钮,完成操作。
18.3.1 导出注册表文件 (1)
图 18-8 导出注册表文件
18.3.2 导入注册表文件
? 当注册表出现错误或者需要还原导出的注册表配
置信息,通过注册表编辑器的导入功能可很快恢
复注册表配置信息,过程如下:
? 步骤一,打开注册表编辑器;
? 步骤二,选择“注册表”菜单中的“导入注册表
文件”命令,打开对话框;
? 步骤三,找到已经导出的注册表文件,然后单击
“打开”按钮即可对现有的注册表信息进行还原。
18.3.3 查找字符串、值或注册表项 (1)
? 由于注册表是计算机系统的核心,包括的内容特别多。注
册表编辑器提供类似于我们常用的文本编辑软件中的查找
功能,可以快速找到要操作的对象,过程如下:
? 步骤一,在注册表编辑器中,选择“编辑”菜单中的“查
找”命令,打开“查找”对话框,如图 18-9所示。
? 步骤二,在“查找目标”文本框中,输入要查找的内容。
? 步骤三,选择查找范围,包括“项”、“值”、“数据”,
根据需要选择“全字匹配”复选框,以匹配要搜索的类型,
然后单击“查找下一个”按钮即可开始查找。
18.3.3 查找字符串、值或注册表项 (2)
图 18-9 查找字符串、值或注册表项
18.3.4 添加项和值 (1)
? 步骤一,打开 REGEDIT注册表编辑器。
? 步骤二,选择要添加子项或者值的项目,例如
HKEY_LOCAL_MACHINE\SAM项目,然后选择
“编辑”菜单中的“新建”子菜单。
? 步骤三,如果要添加子项,选择“新建”菜单中
的“项”命令,编辑器就会在所选择的项目下添
加一个子项,默认名称为“新项 #1”,如图 18-10
所示。
? 步骤四,修改新项的名称,然后回车即可。
18.3.4 添加项和值 (2)
图 8-10 添加子项
18.3.5 连接网络注册表 (1)
? 如果要查看网络上其它机器的注册表,选
择“注册表”菜单中的“连接网络注册
表”,打开如图 18-12所示对话,输入要查
看的计算机名,或者点击“位置”按钮,
选择要查询的位置,从网络上查找要连接
的计算机。
18.3.5 连接网络注册表 (2)
图 8-12 连接网络注册表
18.3.6 装载和卸载配置单元 (1)
?,加载配置单元”和“卸载配置单元”命令
仅仅影响显示 HKEY_USERS和
HKEY_LOCAL_MACHINE的注册窗口。只
有当 HKEY_LOCAL_MACHINE或
HKEY_USERS目录项被选择时,“加载配
置单元”命令才是可用的。只有当子目录
树或其中的一个项被选择时,“卸载配置
单元”命令才是可用的。
18.3.6 装载和卸载配置单元 (2)
? 步骤一,选择 HKEY_LOCAL_MACHINE或
HKEY_USERS子目录树。
? 步骤二,在注册表编辑器的“文件”菜单中,选择“加载
配置单元”命令,打开“加载配置单元”对话框。
? 步骤三,在“查找范围”中,选择要加载配置单元的文件
名和路径,然后单击“打开”按钮即可。这个文件在注册
表中创建一个新的子目录树,用户可以用包括空格在内的
任意字符来指定这个配置单元文件在注册表中的子项的名
字。另外,用户不能装入一个已存在的子目录树,装入到
配置单元中的数据在 HKEY_USERS或
HKEY_LOCAL_MACHINE下以新子目录树的形式出现。
直到被卸载之前,装入的配置单元始终保留在系统中。
18.3.7 维护注册表的安全性 (1)
? 1.给注册表项指派权限
? 要想真正保护注册表的安全,建议必须设置注册表的安全
权限,方法如下:
? 步骤一,打开 REGEDT注册表编辑器。
? 步骤二,选择要指派权限的项(如 HKEY_
LOCAL_MACHINE),然后选择“编辑”菜单的“权限”
命令,打开所选项目的权限对话框,如图 18-13所示。
? 步骤三,根据需要为用户指派不同的权限。如果要授予用
户读取该项内容的权限,不能更改文件的内容,则可在
“名称的权限”列表框中选择要设置权限的用户,然后启
用“读取”后面的“允许”复选框。
? 步骤四,单击“确定”按钮,保存设置。
18.3.7 维护注册表的安全性 (2)
图 8-13 设置注册表
的权限
18.3.7 维护注册表的安全性 (3)
? 2.给注册表项指派特殊访问
? 给注册表项指派特殊访问步骤 如下:
? 步骤一,打开 REGEDT注册表编辑器。
? 步骤二,单击要指派特殊访问权限的项。
? 步骤三,单击“编辑”菜单上的“权限”。
? 步骤四,单击“高级”,再双击要为其指派特殊访问权限
的用户或组。
? 步骤五,在“权限”下,对每个要允许或拒绝的权限,选
中“允许”或“拒绝”复选框。
? 同时,还可以通过向权限列表中添加 /删除用户或组,审
核注册表项的活动,取得注册表项的所有权等方法来维护
注册表的安全性。
18.4 注册表使用实例 (1)
? 18.4.1 正确使用注册表
? 在 Windows Server 2003 中,系统配置信息集存储在注
册表中。但对注册表的错误编辑却可能造成操作系统瘫痪。
下面对安全使用注册表和注册表编辑器给出一些建议。
? 1.在更改注册表之前,首先建立注册表备份副本。同时,
为了排除故障,保留对注册表所作更改的列表。
? 2.不要使用其他版本的 Windows 操作系统的注册表来替
换 Windows Server 2003的注册表。
? 3.谨慎编辑注册表。编辑注册表不当可能会严重损坏系
统。
? 4.不要让注册表编辑器在无人参与的状态下运行。
? 5.不要让过多的用户有权访问注册表。
18.4 注册表使用实例 (2)
? 6.除非必要,否则不要以 Administrator 身份运
行注册表编辑器。
? 如果恶意用户以 Administrator 身份取得对注册表
编辑器的访问权,可能会对操作系统和软件造成
严重破坏。只有在查看或更改注册表项别无他法
时,才能以 Administrator 身份运行注册表编辑器。
? 7.不要使用能够模拟多个用户的服务对
HKEY_CURRENT_USER 或
HKEY_CLASSES_ROOT 进行访问。
18.4.2 注册表修改实例 (1)
? 1.让 Windows 启动时自动执行某一程序
? 路径:
HKEY_LOCAL_MACHINE\SOFTWARE\\Microsoft\
Windows\CurrentVersion\Run
? 键值名称:新建主键,名字自己定义。
? 键值:其值为“要执行文件的路径及文件名”
? 2.查找系统的安装注册码
? 路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
Windows\CurrentVersion
? 键值名称,ProductKey
? 键值:其值为系统安装时必不可少的注册码。
18.4.2 注册表修改实例 (2)
? 3.删除自动执行的 Windows程序
? 路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microso
ft\Windows\CurrentVersion\Run
? 键值:找到你要删除的程序,选择 "删除 "。
? 4.清理软件删除后的遗留信息
? 路径,HEKY_CURRENT_USER\software
? 键值名称:查找相应软件信息
? 键值:其值为删除子项或键指
18.4.2 注册表修改实例 (3)
? 5.隐藏桌面上的所有图标
? 路径:
HKEY_CURRENT_USER\Software\Micros
oft\Windows\CurrentVersion\
? Policies\Explorer
? 键值名称:新建 "NoDesktop"
? 数据类型,DWORD
? 键值:其值为 1表示生效,即隐藏桌面上的
所有图标;若为 0,则相反。
本章小结
? 本章主要介绍了注册表的作用、结构、子
目录树等,以及使用注册表编辑器管理注
册表的方法。介绍了注册表的各个子目录
树包括的一些主要内容。最后给出了安全
注册表的修改、导入和到出等使用方法,
以及使用编辑注册表满足用户特殊需求的
实例。