-20-
由 0晋身 200%注册表 +BIOS高手
第一部分第一部分
注册表基础知识
-21-
注册表基础知识
注册表基础
第1章第1章
1.1 注册表的由来
1.2 注册表的文件组成
1.3 注册表的结构分析
1.4 编辑注册表
-22-
由 0晋身 200%注册表 +BIOS高手
1.1 注册表的由来
注册表最初出现是基于Windows系统对软硬件工作环境配置的需要。虽然每种设备或应用程序都
有自己的 ini文件来描述定义相关配置,但是其文件长度不能超过64KB,并且数量太多不便于管理。而
注册表,正是一个将设备及应用程序的信息资源、配置信息集中进行管理的“数据库”。用户可以修改
其中“隐藏”的参数来提高系统的性能或是进行个性化设置,同时,对硬件、系统参数、应用程序和
设备驱动程序进行跟踪配置。不同用户可以以自己的特定设置建立自己的注册表保存在计算机上。
注册表对于Windows 系统的左右如同大脑神经支配一个人,注册表正是用它复杂而有有序的各
种子键和键值项参数全面而深入地控制着系统各个“神经末梢”,如果注册表出现问题,轻者你无法运
行某个软件或者无法启动计算机,重者就会是Windows 系统崩溃。所以注册表是如此的重要,你无法
忽视,只有全面了解才能让系统发挥最大效益。
Windosw的注册表系统分为两部分,一个是注册表这个“数据中心”,另外一个是注册表编辑器
— regedit.exe,用于查看、修改和维护注册表的数据。要想玩转注册表,不仅需要对注册表的结构
和作用了如指掌,更需要学会怎么运用注册表编辑器,打造完全体现自己需求的注册表!
注册表是树形的分层结构,如同计算机硬盘里的目录结构,它由根键→子键→键值项组织,按层
叠式结构排列,如图 1-1-1所示。
图 1 - 1 - 1 注册表的树形结构
根键
系统定义的配置单元,位于注册表结构的“第一层”,类似“根”的位置,键名以“HKEY_”打
头。Windows 2000/XP的注册表包含五个这样的键,省略了Windows 98中的一个 HKEY_DYN_DATA
键。
这五个键的作用分别如下:
1. HKEY_CLASSES _ROOT,基层类别键,定义了系统中所有已经注册的文件扩展名、文件类型
和文件图标等,以确保资源管理器打开文件的时候打开正确的文件。
2. HKEY_CURRENT_USER,定义了当前登录用户的所有权限,被称为用户配置文件,实际上就是
HKEY_USERS\.Default下面的一部分内容,用户文件夹、屏幕颜色和控制面板设置都存储到这里;
5个根键
子键
子键包含键值,键值由
名称、类型、数据三个
部分组成。
-23-
注册表基础知识
3. HKEY_LOCAL_MACHlNE,定义了本地计算机(相对网络环境而言)软硬件的全部配置信息。当
系统的配置和设置发生变化时,其下面的登录项也会随之改变;
4. HKEY_USERS,定义了所有用户的配置文件,HKEY_CURRENT_USER是它的子项,它的大部分设
置都可以通过“控制面板”来修改;
5. HKEY_CURRENT_CONFIG,定义了计算机的当前配置情况,如显示器、打印机等可选外部设备
及其设置信息等。
子键
在树型结构中属于“子树”,以主HKEY_配置单元的子目录的形式存在,可以执行某些功能,没有
附带的数据,只负责组织对数据的访问。
键值项
包含计算机及其应用程序执行时使用的实际数据,键值项包括名称、数据类型和数据,数据类型
可分为字符串值、二进制值和双字节值,都可以用注册表编辑器进行修改。
小提示
双字节值:只允许一个键值,并且必须为l~8个16进制数据(即双字);
字符串值:只允许一个键值,并且作为要存储的字符率来解释;
二进制值:只允许一个值,是 16进制数字串,每对作为一个字节值解释。
1.2 注册表的文件组成
注册表文件的组成根据操作系统版本不同文件也有所不同。在Windows 9x/Me操作系统中,注
册表主要由“system.dat”和“user.dat”这两个注册表数据库文件组成。它们是隐含文件,由二进制
数据组成,位于Windows文件夹中,通常是 C:\Windows中。System.dat包含系统硬件和软件的设置,
User.dat保存着与用户有关的信息。例如“我的电脑”的设置、颜色
以及网络口令等等,若因系统
不正常的关机或硬盘的问题而导致这些文件损坏的话,有些时候会出现应用软件无法正常使用的情况,
甚至会导致系统崩溃而无法工作。除了这两个主要文件,另外还包括其他四个文件。
1. 系统配置注册表文件 System.dat
该文件的作用类似Windows 3.X中的 System.ini文件,其主要作用如下:
描述单一的 PC配置;
描述安装在一单独的 PC上的信息;
安装即插即用类型的设备硬件配置,如设备的 I/ O地址、 IRQ级和 DMA通道等。
2. 用户平台配置注册表文件 User.dat
该文件类似于Windows 3.x中的Win.ini文件,其主要作用如下:
定义用户优先权,如用户平台配置等;
特定于某一个用户的应用程序的安装信息。
-24-
由 0晋身 200%注册表 +BIOS高手
3. 系统配置注册表备份文件 System.da0
System.da0统配置注册表 System.dat的备份文件,该文件在 System.dat文件遭到意外破坏时,将
由系统自动将 System.da0拷贝为 System.dat。
4. 用户平台配置注册表备份文件 User.da0
User.da0是用户平台配置注册表文件User.dat的备份文件。该文件在User.dat遭到意外破坏时,将
由系统将 User.da0拷贝为 User.dat。
5. 网络管理注册表文件— Config.pol
Config.pol文件主要用于Windows 98的网络用户的管理策略。
6. 网络管理注册表备份文件— Config.po0
Config.po0是 Config.pol的备份文件,它被存放在网络服务器中。
小技巧
如果用户在 Windows文件夹
中找不到该文件,需要先进行以下操
作,打开资源管理器,连续选择菜单
“工具”、“文件夹选项”、“查看”,在其
中的“显示所有文件和文件夹”复选框
中打“√”,如图 1-2-1所示。
Windows Me比Windows 9x多一个CLASSES.DAT文件。Windows 2000/NT/XP 中注册表的位置
和Windows 9x一样,并且Windows 2000的注册表也分为两个部分,但包括多个文件,其中用户配置
文件保存在根目录“Document and Setttings”下用户名的目录中,包括两个隐含文件,NTUSER.DAT、
NTUSER.INI 以及 NTUSER.DAT.LOG 日志文件。系统配置文件位于Windows 2000 系统目录下的
“SYSTEM32\CONFIG"中,包括.DEFAULT、SOFTWARE、SYSTEM、APPEVENTh.EVT、SECEVENT.EVT、
SYSEVENT.EVT等多个隐藏文件及其相应的.LOG文件和.SAV文件。这些注册表文件在Windows 2000
运行时无法用其它工具打开,
这一点与Windows 9x下的 System.dat和 user.dat不同。
1.3 注册表的结构分析
Windows的注册表是一个二进制的数据库,在这个数据库里保存着系统正常运行和大型软件运行
所需的绝大部分信息。Windows每次启动时都会根据上次关机时创建的一系列信息文件重新创建注册
图 1-2-1 文件夹属性
勾选这个选项
显示隐藏文件
-25-
注册表基础知识
表并载入内存。从某种意义上来说,注册表实
质上是保存着各种系统参数的数据库,也是
计算机行为和能力的数据交换中心。在使用
注册表编辑器对其进行编辑之前,需要对整
个注册表的结构有一个大概的了解。因此,我
们对五个根键及其下的主要子键和对应键值
的设置意义做一个详细的介绍。
1.3.1 HKEY_CLASSES_
ROOT
HKEY_CLASSES_ROOT根键下保存了操作
系统所有的关联数据、类型标识以及鼠标右
键的常规和扩展功能数据等。实质上
HEKY_CLASSES_ROOT根键是 HKEY_LOCAL_
MACHINE\Software\Classes子键的分支内容,
打开 HKEY_CLASSES_ROOT和 HKEY_LOCAL_
MACHINE\Software\Classes,会看到它们具有
相同的内容,如图 1-3-1、1-3-2所示。把
HKEY_LOCAL_MACHINE\Software\Classes独立
作为一个根键可见其在系统中的重要性。同
时这也方便了对系统结构进行维护。Windows
2000和以前版本的Windows操作系统相比功
能有很大的增强,其得益于注册表中增加了
文件关联功能。更改了 HKEY_CLASSE_ROOT
或者 HKEY_ LOCAL_MACH INE\So f twa re\
Classes中的任何一部分内容,系统都会自动
地对整个注册表相应的部分进行改动。
1.3.2 HKEY_CURRENT_
USER
从字面意义上理解,HKEY_CURRENT_
USER 根键就是当前登录用户的信息。因此
H K E Y _ C U R R E N T _ U S E R 根键的内容和
HKEY_USERS根键下按 SID列出的内容是相同
的,它们之间任何一者的改动都会影响另一
者。如图 1-3-3、图 1-3-4所示。
图 1-3-2 HKEY_LOCAL_MACHINE\Software\Classes
图 1-3-1 HEKY_CLASSES_ROOT
图 1-3-3 HKEY_CURRENT_USER
图 1-3-4 HKEY_USERS
-26-
由 0晋身 200%注册表 +BIOS高手
1.3.3 HKEY_LOCAL_MACHINE
HKEY_LOCAL_MACHINE根键下包含了系统和
绝大多数应用软件的配置信息,这些设置与当前
登录的具体用户无关。HKEY_LOCAL_MACHINE根
键下共有五个子键,如图 1-3-5所示。
在图中的五个子键中,HARDWARE保存了计算机的所有硬件信息,SOFTWARE下保存几乎所有的
软件配置信息,SYSTEM下保存了当前的系统信息。这三项内容都是可以由用户进行修改和设定的,但
是对于 SAM和 SECURITY,由于它们保存的是Windows 2000 Server和Windows 2000 Advanced Server
的系统安全信息,主要由Active Directory用户管理器进行管理,因此用户不能随便对它们进行修改或
者设置,相应的在注册表编辑器中,这两项内容是灰色的。
HARDWARE子键
HARDWARE子键保存了所有硬件设备的配置
信息,在一般情况下,该键的右边内容是空的,不
允许对这些信息直接进行控制,以避免出现难以
预料的错误。如图 1-3-6所示。
1. ACPI分支
ACPI是Advanced Control Power Interface(高
级控制电源接口)的缩写,它是通过BIOS设置参
数并且最终通过操作系统来实现其控制功能。在
ACPI分支下保存了 BIOS中的ACPI数据,如图 1-
3-7所示。
图 1-3-5 HKEY_LOCAL_MACHINE的五个子键
五个子键
图 1-3-6 HARDWARE子键
图 1-3-7 ACPI 分支
-27-
注册表基础知识
2. DESCRIPTION分支
在 DESCRIPTION分支下只有 SYSTEM一个子
键,SYSTEM的子键下分别保存着BIOS、CPU、数
学协处理器和总线控制器的信息。如图1-3-8所
示。
从图 1-3-8的右边我们可以得到 SystemBiosDate、SystemBiosVesion、VideOBiosDate等有关于 BIOS
的配置信息。
(1)在 CentralProcessor下一般情况下只有一个 0键,如果系统专备了多个 CPU,则会出现 l、2、3
等于键。在 0键下保存着对应 CPU的各种信息。
(2)和 CentralProcessor子键一样,FloatingPointProcessor子键下保存与
协处理器相关的信息。
(3)MultifunctionAdaPter子键下共有 0~6七个子键,分别保存了 PCI BIOS、PCI总线、APM、PNP
BIOS、ISA总线、ACPI BIOS等适配器信息。
3. DEVICEMAP分支
DEVICEMAP分支保存指向所有硬件设备驱动
程序和系统设置的指针,通常指向当前位于系统
内的控制集,如图 1-3-9所示。
* FullscreenVedio子键保存着全屏视频的信息设置,该值由 \Device\FSDideo的键值确定。
* K e y b o a r d C l a s s 子键指向控制集和控制集内列出的键盘类驱动程序的信息,该值由
\Device\KeyboardClass0的键值确定。
* PARALLEL PORTS子键向控制集和控制集内列出的并行口的驱动程序信息。该值由 \Device\
Parallel0的键值确定。
*PointClass子键指向控制集和控制集内列出的鼠标驱动程序信息,该值由\Device\PointClass0的
键值确定。
* Scsi子键保存着所有的 SCSI设备及其位置。
* SERIALCOMM子键列出了已安装的串口的名字。
* VIDEO子键指向控制集和控制集列出的视频驱动程序。
图 1-3-8 DESCRIPTION分支
图 1-3-9 DEVICEMAP分支
-28-
由 0晋身 200%注册表 +BIOS高手
4. RESOURCEMAP分支
RESOURCEMAP分支保存了系统设备的连接
配置,如 IRQ、DMA、I/ O端口地址等,如图 1-
3-10所示。
*Hardware Abstraction Layer子键保存着硬件抽象层从软件和操作系统中分离出来的系统设备信
息。这样即使出现了严重的应用程序错误,系统也不会崩溃。
* PnP Manager保存系统可以检测到的所有的 PnP设备的信息。
* System Resources子键保存着虚拟内存等系统资源信息。
SOFTWARE子键
SOFTWARE子键下列出了系统已安装的32位软件和应用程序的设置信息。这一项对于不同的机器
随安装软件的不同而不同,但总体结构还是相似的。
1. Classes分支
这一项内容我们在前面已经介绍过,它和HKEY_CLASSES_R00T根键下的内容是一致的,都保存着
相同的系统文件关联数据。
2. Microsoft分支
Microsoft子键下保存着系统里所有与Microsoft相关的软件配置信息,如 Internet ExPlorer、Microsoft
Visual Studio、DevStudio等。
SYSTEM子键
System子键保存着系统的启动信息和系统
出现故障时的恢复信息,这些信息主要通过控制
集的方法搜集和存储,如图 1-3-11所示。
图 1-3-10 RESOURCEMAP 分支
图 1-3-11 SYSTEM 子键
-29-
注册表基础知识
1. CurrentControlset分支
CurrentControlset子键下分为 CurrentControlSet、Controlset001、ControlSet002三个子键。这三个子
键保存的内容是一致的。下面简单介绍一下 CurrentControklSet子键的内容。
Control子键包含了Windows控制面版中的各个功能模块的设置信息,一般情况下只需要在控制面
版中对其进行间接的修改就可以了。
下面简单的介绍一下Control子键下各个分支功能:
(1)Arbiters子键
该子键下保存系统分配的系统资源顺序,如图
1-3-12所示。
(2)BackupRestore子键
该子键下保存系统用来恢复和备份系统的设置
信息,如图 1-3-13所示。
(3)BIOSInfo子键
该子键下保存主板 BIOS上使用的 INF文件和 BIOS日期等信息。
(4)BootverificationProgram子键
该子键下保存所有的启动检验程序信息。
(5)Class子键
该子键下保存了系统各种设备的类标识(CLSID),这些类标识都可以在HKEY_CLASSES_ROOT根键
中找到相应的说明。
(6)CODeviceInstallers
该子键下用类标识说明列出了系统中所有设备的安装器的安装程序,这样系统就能够自动安装设
备需要的驱动程序。
(7)COMNameArbiter子键
该子键保存 COM名称数据,这些数据为 COMDB所使用,一般不用修改此项设置。
(8)ComputerName子键
该子键保存计算机的名称和当前登录计算机的用户名称。
图 1-3-13 BackupRestore子键
图 1-3-12 Arb iters 子键
-30-
由 0晋身 200%注册表 +BIOS高手
(9)ContentIndex子键
该子键下保存与内容索引有关的信息和数据。
(10)ContentlndexCommon子键
该子键下保存内容索引器的各种公用数据。
(11)CrashControl子键
该子键保存当系统出现崩溃时的动作,可以为AutoReboot、CrashDumpEnabled、SentAlert等。如图
1-3-14所示。图中右边的各项设置都与“启动与故障恢复”对话框中的设置意义对应,如 1-3-15图
所示。(注:右击桌面“我的电脑”,选择“属性”,进入“系统”属性窗口,单击“高级”选项,选择
“启动与故障恢复”即可打开“启动与故障恢复”对话框)
(12)CriticalDeviceDateBase子键
该子键保存系统正常启动所需的关键性设备的数据,这些数据不能被修改,否则会出现不可预料
的后果。
(13)DeviceClasses子键
该子键保存在“设备管理器理”中列出设备的类标识,这些类标识都可以在HKEY_CLASSES_ROOT
根键中找到相应的说明。
(14)Filesystem
该子键保存关于文件系统的数据,例如 NTFS文件系统、Windows 3.1文件系统等等。
(15)FontAssoc
该子键保存系统的字体设置信息,包括关联字符集、缺省关联字体、关联字体等。
(16)GraphicsDrivers子键
该子键保存图驱动程序的刷新时间。
(17)GraphorderList
该子键保存系统设备组的次序列表,这些设备通常都用类标识来描述。
(18)Hivelist子键
该子键保存系统注册表的Hive文件位置及其名称。
(19)IDConfigDB子键
该子键保存系统配置的标识数据,包括系统配置别名,当前 Dock信息和硬件配置文件等。
(20)Keyboard Layout子键
该子键保存系统的 DOS键盘布局信息,包括 DOS键盘代码、DOS键盘标识等。
(21)Keyboard Layouts子键
该子键保存系统所支持的语言列表。
图 1-3-14 CrashContro l子键 图 1 - 3 - 1 5 启动与故障恢复
-31-
注册表基础知识
(22)Lsa子键
该子键保存系统的审核机制信息,这些数据不能被用户修改。
(23)MediaCategories子键
该子键保存系统多媒体声音所对应的类标识。
(24)MediaInterfaces子键
该子键保存系统提供的多媒体接口的类标识数据。
(25)MediaProperties子键
该子键保存系统的多媒体特性参数,包括 Joystick、MIDI等。
(26)MedisResouces子键
该子键下保存系统的多媒体资源信息,包括 Joystick、MIDI、DirectSound等。
(27)MediaSets子键
该子键保存系统的多媒体集设置参数信息。
(28)Network子键
该子键保存系统的网络协议、网络服务、
网络工具等信息,这些信息都可以在控制面板
上的“网络与拨号连接”属性中设置,如图1-
3-16所示。
(29)NetworkProvider子键
该子键设定了网络的供应商。
(30)NIS子键
该子健保存系统的代码页信息,这些代码也都由 *.nls文件确定。
(31)NTMS子键
该子键保存系统支持的磁带格式。
(32) PnP
该子键保存系统的 PCI总线的 IRQ中断数据。
(33)Print子键
该子健保存系统的打印机管理设置数据,包括打印机类型、打印格式、USB监视器等。
(34)PriorotyControl子键
该子键保存系统的优先级数据。
(35)ProductOptions子键
该子键保存系统的终端服务器、网络管
理器的设置数据信息。
(36)SafeBoot子键
该子健保存系统使用安全模式启动时的
数据,这些数据一般不用手动修改,如图1-3-
17所示。
图 1-3-16 Network 子键
图 1-3-17 SafeBoot 子键
SafeBoot下的子键
-32-
由 0晋身 200%注册表 +BIOS高手
(37)ScsiPort子键
该子键保存系统的SCSI端口数据。
(38)SecurePipeServer
该子键保存系统安全管道服务程序的设置信息。
(39)SecurityProviders子键
该子键保存安全系统的名称。
(40) Server Applications子键
该子键保存系统的服务数据,包括 COM、RAS、DNS、DHCP、WINS等。
(41)ServerGroupOrder子键
该子键保存系统服务组的次序。
(42)ServerProviders子键
该子键保存系统服务的供应商。
(43) Session Manager子键
该子键保存系统对话框管理器所需的数据。
(44)Setup子键
该子键保存系统安装时的
设置,如
图 1-3-18所示。
(45)StillImage子键
该子键存储系统图像监控过程、图像客户应用程序等设置信息。
(46)SystemResources子键
该子键保存系统的总线资源次序、总线数值等信息。
(47)Terminal Server子键
该子键保存系统终端服务的设置数据。
(48)TimeZoneInformation子键
该子键保存系统当前的时区信息。
(49)Update子键
该子键使系统处于自动更新状态,能够实现自动更新。
(50) VirtualDeviceDrivers子键
该子键保存系统虚拟驱动程序的配置数
据。
(51)WebPost子键
该子键保存Web供应商的名称信息。
(52)Windows子键
该子键保存系统的错误模式、关闭时
间、系统目录、系统启动目录等数据,如图
1-3-19所示。
图 1-3-18 Set up 子键
Setup子键的设置
图 1-3-19 Windows 子键
错误模式、关闭时间、
系统目录等设置
-33-
注册表基础知识
* Enum子键保存使用总线枚举器所列举的系统总线数据,包括 ACPI、ACPI_HAL、DISPLAY、
ESS_SOLD、FDC、HTREE等。
* Hardware Profiles子键保存系统硬件配置文件的选择设置,其中的Current为当前的硬件配置文
件,000是最为原始的硬件配置文件,001是系统所创建的第二个配置文件。
* Services子键包含了系统自带的所有的标准服务,包括Abiosdsk、 ACPI、 ACPIEC、 AFD等。
2. MountedDevices分支
MountedDevices分支列出了系统中被加载的设备的信息。
3. Select分支
Select分支列出了系统启动时选择的控制集,通常会被保存为 LastKonwGood种制定的设置。
4. setup分支
Setup分支列出了系统分区,设置状态遗迹和与系统设置进程有关的其他信息。
HKEY_USERS
HKEY_USERS根键可以将用户信息保存到注
册表中,以便默认的用户和系统当前的登录用户
使用这些用户信息数据。用户信息保存在
%SystemRoot%\Profiles\DefaultUser\ NTUSER.
DAT文件和针对用户的专用配置文件%System
Root%\Profiles\用户名 \NTUSER.DAT中。在
HKEY_USERS根键下,各个用户是用其安全标识
(SID)列出的,并不显示用户名信息,如图1-3-
20所示。
1. .Default子键
该子键保存默认用户的设置,其中包括环
境变量、屏幕、声音和其他用户相关的设置信
息。当系统创建新用户时,首先读取该子键下的
内容,然后创建用户的专用配置信息,如图 1-
2-21所示。
(1)AppEvents子键
APPEvent子键下保存各个不同的系统功能
的事件标签、描述信息以及声音等有关内容。
(2)Console子键
Console子键列出了MS-DOS方式窗口的选
项、布局、颜色、字体设置等子键,如图 1-3-
22所示。
图 1-3-20 HKEY_USERS
图 1-3-21 .Default 子键
图 1-3-22 Conso le 子键
-34-
由 0晋身 200%注册表 +BIOS高手
(3)Control Panel子键
该子键列出了与“控制面板”中对应
的所有设置选项,具体如图1-3-23所示。
(4)Environment子键
Enviroment子键保存系统环境设置信息,主要是 TMP和 TEMP两个临时文件夹的位置。
(5)Identities子键
Identities子键下保存 Outlook Express
5.0用户的主标识,如图 1-3-24所示。
(6)Keyboard Layout子键
该子键保存系统键盘的布局方案,包括输入法切换顺序,键盘替换方案,键盘切换等等。
(7)Software子键
该子键列出系统中已经安装的应用
程序,默认用户有 Microsoft、Netscape和
Polocies等,如图 1-3-25所示。
(8)UNICODE Program Groups子键
该子键内容在系统执行程序管理器时使用,一般情况下不会使用它。
图 1-3-23 Control Pane l子键
图 1-3-24 Ident ities 子键
最后用户的 ID、用户名等
图 1-3-25 Software 子键
已经安装的程序
-35-
注册表基础知识
2. SID子键
SID是当前登录用户的SID。网络内每位用户都会由于用户管理器分配一个独一无二的SID用来标识
用户。系统会自动从NTUSER.DAT文件中提取用户的 SID。与默认用户相比,登录用户的最大区别就是
增加了 5个附加的字键,分别是 EUDC(缺省的 EUDC字体设置)、Printers(打印机设置)、RemoteAccess
(远程访问设置)、SYSTEM(系统备份设置)、Variable Environment(可变环境设置)等。
3. SID_CLASSES子键
对于每一个用户SID,系统都会自动生成一个SID_CLASSES子键,用来保存该用户相关的系统类标
识。对于用户来说,一般情况下不必去修改这些标识,因为它们都由系统直接维护。
HKEY_CURRENT_CONFIG
HKEY_CURRENT_CONFIG根键下保存
系统的当前配置。在Windows启动时,如
果设置了多个配置文件,那么启动时“最
后一次正确系统配置”菜单就会被激活供
用户选择。HKEY_CURRENT_CONFIG根键下
保存的就是启动时所需的硬件配置信息,
如图 1-3-26所示。
配 置 文 件 通 常 放 在 注 册 表 的
HK E Y_ LO CAL_ MACH I N E \ S YS T EM\
ControlSet001、HKEY_LOCAL_MACHINE\
SYSTEM\ControlSet001等子键下,如图1-
3-27所示。
在启动Windows 时系统会选择一种配置文件并自动装载到 HKEY_LOCAL_MACHINE\SYSTEM\
Contro1Set001\Hardware Profiles\Current子键和 HKEY_CURRENT_CONFIG根键中,之后如果对任何一处
进行修改,另一处均会自动修改。由于系统配置文件的重要性,所以
者就将它当作一个根键,这
样便于系统维护和程序员编写的程序实现对注册表的访问。
图 1-3-26 HKEY_CURRENT_CONFIG
图 1-3-27 HKEY_LOCAL_MACHINE\SYSTEM子键
存放配置文件
-36-
由 0晋身 200%注册表 +BIOS高手
1. Software子键
Software子键下列出一些特殊硬件专用的软件和字体,在通常情况下很少出现。
2. System子键
System子键下包括当前配置文件
的专用设置,它下面的 CurrentControl
Set子键包括 Control、Enum、Services
三个分支,如图 1-3-28所示。
(1)Control子键
Control子键包含了控制面板中所激活的各项设置和硬件设备之间的差异,同时还有另外两个子键。
* Class子键分支列出了控制面板所使用的图标。
* Print子键列出了控制面板所安装的打印机设置。
(2)Enum子键
Enum子键列出了涉及硬件设置文件许可的其他总线信息。
* PCI子键包括所有的 PCI设备的设置。
* ROOT子键包括了系统中所有即插即用设备的设置。
* SW子键包括了系统对异步MAC设备的设置。
(3)Services子键
根据不同硬件配置文件,已装载的驱动程序的所有差异都会在 Services子键下显示出来,这一项
具体内容和安装的硬件有关。
1.4 编辑注册表
前面已经介绍了很多注册表的基本知识,下面我们来介绍注册表编辑器,在以后的维护和设置中
大家都需要应用到注册表编辑器。虽然目前有很多第三方注册表工具软件,不过最常用的还是本章要
介绍的Windows自带注册表编辑器— Regedit和 Regedt32。
1.4.1 注册表编辑器 Regedit
注册表编辑器 Regedit是用来更改系统注册表设置的高级工具,在Windows 9x/Me/2000/NT/XP
都包含这个工具。但是对于没有使用经验的用户,我们建议用户在操作前做好备份,万一操作失误的
话,可以利用备份文件恢复注册表。
打开注册表编辑器
要启动 Regedit注册表编辑器,先单击“开始”按钮,然后点击“运行”,在弹出的对话框中键入
图 1-3-26 Control和 Enum子键
-37-
注册表基础知识
“regedit”,如图 1-4-1所示。
然后单击“确定”,则打开注册表编辑器操作界面。
查找、更改、添加、删除键值
1. 在注册表中查找目标
用户在注册表中可通过字符串、值或注册表子键来查找目标,步骤操作如下:
(1)单击“编辑”菜单中的“查找”命令,弹
出如图 1-4-2所示的对话框。
(2)在“查找目标”的文本输入框中键入要查找的字符串、值或注册表子键的名称。
(3)根据自己的情况选择“项”、“值”、
“数据”和“全字匹配”复选框,用以匹配要
搜索的类型,然后单击“查找下一个”按钮,
很快用户就能看到光标定位于直到的第一个
匹配处,如图 1-4-3所示。
(4)按 F3键可继续查找下一个匹配内容。
2. 在注册表中更改键值
修改键值是注册表应用中经常进行的操作,具体操作步
骤如下:
(1)选择想要更改的键值。
(2)单击“编辑”菜单,在弹出的菜单中单击“修改”,
弹出如图1-4-4所示的对话框。
图 1 - 4 - 1 运行注册表编辑表
图 1 - 4 - 2 在注册表中查找
图 1-4-3 查找结果
被查找到的
第一个目标
图 1-4-4 修改键值
在这里输入
-38-
由 0晋身 200%注册表 +BIOS高手
(3)在“数值数据”文本输入框中,键入该键值的新数据,然后单击“确定”按钮。
3. 在注册表中添加键值
要添加注册表项中的值,可按以下的操作步骤进行:
(1)单击想要添加新值的注册表项和值项,如 HKEY_LOCAL_MACHINE\SYSTEM\Select。
(2)单击“编辑”菜单,或者在值项
区直接单击右键弹出的菜单中,指向“新
建”,单击要添加的值的类型:“字符值”、
“二进制值”或“双字节值”,如图 1-4-
5所示。
(3)接下来在“数值名称”中,键入要创建的值项名称。
4. 在注册表中删除项或键值
要删除注册表项中的项或值,可按下面的步骤进行:
(1)单击要删除的注册表项或值项,然后在“编辑”莱单中,单击“删除”。也可以用鼠标右键点
击要删除的注册表项或值项,在弹出的菜单中单击“删除”。
(2)最后在弹出的确定对话框中,单击“确定”。请注意!不能更改根键的名称或删除根键。
导入或导出注册表
1. 导出注册表到文本文件中
用户可以将注册表全部或者部分导出到文本文件中。该注册表文件以.reg扩展名保存,使用任何
文本编辑器都可以处理导出的注册表文件。具体操作步骤如下:
(1)在“注册表”莱单中,单击“导出”,弹
出如图 1-4-6所示的对话框。
图 1 - 4 - 5 在注册表中添加键值
图 1 - 4 - 6 确定保存的位置和文件名
定义键值项的类型
位置
文件名
-39-
注册表基础知识
(2)在“文件名”框中输入注册表文件的名称。
(3)在“导出范围”里,可以选择“全部”或者“选定的分支”。
(4)在“保存类型”中选择一种文件类型,建议选择注册表文件。
(5)单击“保存”按钮,完成操作。(请参看光盘中相应名称的视频文件)
2. 导入注册表
在需要恢复注册表时,可以将前面导出的注册表文本文件导入到注册表中。步骤操作如下:
(1)在“注册表”菜单中,单击“导入”。
(2)查找要导入的文件,选中该文件,单击“打开”按钮,完成导入操作。
通过网络修改注册表
局域网的管理员可以通过网络修改注册表,但是在访问远程计算机的注册表时,只出现两个预定
义项 HKEY_USERS和 HKEY_LOCAL_MACHINE。具体操作步骤如下:
1.必须同时在本地计算机和远程计算机上作为管理员或Administrators组成员登录,才能更改远程
计算机上的注册表。
2.在“注册表”莱单中,单击“连接网络注册
表”,弹出如图 1-4-7所示的对话框。
3.在对话框的“计算机名”文本输入框中,输入要连接的计算机名。接下来的操作就如同在自己
的计算机上一样。
4.修改完远程注册表之后,记得在“注册表”菜单中单击“断开网络注册表”。
5.在“断开网络注册表”对话框中,单击要断开其注册表连接的计算机名。
6.最后,点击“确定”按钮完成操作。
1.4.2 32位注册表编辑器 Regedt32
上一节介绍了注册表编辑器Regedit,在Windows 2000中还另外提供了一个32位的注册表编辑器
Regedt32,与 regedit相比,它支持的键值数据类型更多。不过,Windows XP将 Regedit和 Regedt32两
个合二为一了。
打开注册表编辑器Regedt32
运行 regedt32的过程和运行 regedit大体一致,首先,单击“打开”菜单,然后选择“运行”。
在弹出的对话框中,输入“regedt32”,单击“确定”按钮,就进入了 32位注册表编辑器。
图 1 - 4 - 7 连接网络注册表
输入要连接
的计算机名
-40-
由 0晋身 200%注册表 +BIOS高手
编辑注册表信息
使用字符串编辑器编辑信息
1.选择 REG_SZ或 REG_EXPAND_SZ类型的值项。
2.在“编辑”菜单中,单击“字符串”命令。
3.在对话框中的“字符串”输入框中输入任意想要更改的字符串信息,然后单击“确定”按钮就
行了。
使用二进制编辑器编辑信息
1.选择想要编辑的值项。
2.在“编辑”菜单中,单击“二进制”。
3.在对话框的“数据格式”中,要将数据表示为二进制数字,单击“二进制”;要将数据表示为十
六进制数字,单击“十六进制”。
4.在“数据”框中,输入要更改的信息,然后单击“确定”按钮。
使用双字节(DWORD)编辑器编辑信息
1.选择 REG_DWORD类型的值项。
2.在“编辑”菜单中选择“DWORD值”。
3.在对话框中的“基数”框中单击一个显示选项,要将数据显示为二进制(以 2为基数)数,单
击“二进制”;要将数据显示为十进制(以 10为基数)数,单击“十进制”;要将数据显示为十六进制
(以 16为基数)数,单击“十六进制”。最后单击“确定”按钮。
使用多重字符串编辑器编辑信息
1.选择 REG_MULTI_SZ类型的值项。
2.在“编辑”菜单中单击“多字符串”。
3.在对话框中的“数据”框中,输入任意想要的内容进行更改,然后单击“确定”按钮。
更新、添加、删除键值
当注册表数据被更改后,注册表编辑器提供三种方式更新信息
1.在“选项”菜单中,选中“自动刷新”选项。当对任何注册表数据进行更改时,注册表都会自
动更新。
2.在“查看”菜单中选择“全部刷新”将更新所有“注册表编辑器”窗口中的所有信息。
3.如果在“查看”菜单中选择“刷新活动项”则只更新活动“注册表编辑器”窗口中的信息。
向注册表中添加项,方法如下
1.选择将在其下显示新项的项或子项。
2.在“编辑”菜单上,单击“添加项”。
3.在“项名称”中,输入新项的名称。
4.如果需要的话,在“类别”中键入要指派给项的类别。
向注册表项添加值项,操作步骤如下
1.选择要添加值项的项。
2.在“编辑”菜单中,单击“添加数值”。
-41-
注册表基础知识
3.在“数值名称”输入框中,键入要创建的值项的名称。
4.在“数据类型”中,选择值项的数据类型。选择“REG_B I NARY”说明值项为二进制值项:
“REG_DWORD”为 DWORD值项,“REG_EXPAND_SZ”为可扩展字符串,“REG_MULTI_SZ”为将数据作为
多少个字符串指派,“REG_SZ”为数据字符串。
5.单击“确定”按钮,弹出如图 3.2.3-2所示的对话框。在“字符串”框内输入键值,然后单击
“确定”按钮。
删除键值
如果用户要删除值项,首先要选择删除的值项,然后选择“编辑”菜单中的“删除”命令。
注册表的安全性
32位注册表编辑器在为注册表提供安全保证方面要比注册表编辑器 regedit可靠得多。它除了有
“加载配置单元”的功能外,还可以为注册表指派权限,可以提供注册表的审核,能够限制注册表的修
改。下面我们就来看看如何就注册表的安全性进行管理。
给注册表项指派权限
给注册表项指派权限就是控制用户对该项的访问权限,具体操作如下:
1.选择要指派权限的项。
2.在“编辑”菜单中选择“权限”,弹如图 1-4-8所示的
对话框。
3.在“名称”框中,选择控制权限的用户。
4.在“权限”框中,选择“读取”后面的“允许”复
选框,表明该用户有权限读取该项的数据;选择“拒绝”
复选框,则该用户没有权限读取;选择“完全控制”后面
的“允许”复选框,则该用户有权限控制该项;选择“拒
绝”复选框,表明该用户没有权限控制该项。
5.如果要授予用户对所选项的特殊权限,可以单击
“高级”按钮,出现如图 1-4-9所示的对话框。在“权限”
下,对每个要允许或拒绝的权限选中“允许”或“拒绝”
复选框。
图 1 - 4 - 8 设置用户使用注册表的权限
图 1 - 4 - 9 使用权限的高级设置
用户
权限
选择这项
-42-
由 0晋身 200%注册表 +BIOS高手
6.选中“允许将来自父系的可继承权限传播给该对象”复选框,则指派给父项的可继承权限能够
应用于子项。
7.单击“确定”按钮,权限的指派设置就完成了。
向权限列表中添加用户和组
要想给权限列表添加用户和组,可按下面的步骤操作:
1.选择要更改权限列表的注册表项。
2.在“编辑”菜单中单击“权限”,然后单击
“添加”按钮,弹出如图1-4-10所示的“选择用户、
计算机或组”对话框。
3.在对话框中的“查找范围”中,单击想要查看的用户和组所在的计算机或域。然后选择用户名
或组名,单击“添加”按钮,再单击“确定”按钮。
4.在“权限”对话框中的“权限”下面,给所选的用户或组指派访问类型,具体操作过程如“给
注册表项指派权限”的前图 1-4-9所示。
5.单击“确定”按钮。
审核注册事项的活动
审核注册表可以提高注册表的安全性及可靠性,具体的审核方法如下:
1.选择想要审核的注册表项。
2.在“安全”菜单中单击“权限”。
3.单击“高级”按钮,然后选择“审核”选项卡。
如图 1-4-11所示。
4.在“审核项目”框中如果没有所要的用户名或组名,可以单击“添加”按钮,在随后出现的对
话框中,首先确定“查找范围”,单击要查看的用户或组所在的计算机或域,然后选中想要添加的用户
名或组名,单击“确定”按钮。
5.如果在“审核项目”框中有想要的用户名或组名,则双击该名称。
6.在该对话框中的“访问”框中,选中或清除要审核或停止审核的活动“成功”和“失败”复选框。
7.最后单击“确定”按钮完成操作。
图 1 - 4 - 1 0 向权限列表中添加用户和组
图 1 - 4- 1 1 审核注册表项
添加用户
-43-
注册表基础知识
备份与恢复注册表
第2章第2章
2.1 备份注册表
2.2 恢复注册表
2.3 修改注册表
-44-
由 0晋身 200%注册表 +BIOS高手
2.1 备份注册表
就注册表的重要性而言,及时、定期备份注册表是非常必要的,因为很多种情况下(例如安装了
新硬件设备、中了病毒等)都会对注册表造成变化,而一旦注册表发生故障,可能导致系统无法运行
甚至崩溃。所以一定要作好注册表的备份。Windows 9x/Me和Windows 2000/XP两类系统的备份和
恢复的方法有一定差异,所以我们分开介绍。
2.1.1 Windows 9x/Me
有关修改注册表的图书都会提示读者在修改之前应当备份注册表,本书也不例外。其实,并不是
只在修改注册表前才应当做备份。一般情况下,用户每隔一段时间就应该备份一次注册表,这样在系
统出现问题或崩溃后可以补救。
手工备份 Windows 9x/Me注册表
用户将需要备份的 System.dat及User.dat两个文件复制到硬盘某个分区或目录中,也可将文件复
制到软盘上作为备份。恢复时将该备份覆盖到 C:\Windows目录中即可。在备份及恢复时用户首先需
对这两个文件的只读及隐藏属性进行修改。具体方法如下:
1.在电脑中创建一个文件夹来保存注册表备份,例如 C:\regbackup。
2.因为注册表文件是隐藏文件,所以必须打开资源管理器,选择“工具”、“文件夹”选项,单击
“查看”,选择“显示隐藏文件和文件夹”,接着点击“确定”按钮。
3. 从C:\Windows文件夹中将System.dat和user.dat保存到备份文件夹,如果你使用Windows Me,
还需要备份 classses.dat文件。
使用手工备份注册表的好处是,如果因为注册表问题而导致系统崩溃,开机后无法进入Windows
系统时,可以用应急启动盘启动系统,然后用常规的DOS命令将注册表备份文件恢复过去。不过这种
方法也有缺点,对 DOS命令不熟的用户有些难度,另外当注册表文件过大时备份到软盘上较困难,需
要分割文件。
在 DOS下利用Scanreg.exe程序备份Windows 98注册表
使用Scanreg.exe备份注册表比使用手工备份更为适合初级用户。用户利用软盘启动到DOS,进入
C:\windows\command 目录下(这里假设Windows 98是安装在 C盘下),键入命令“scanreg”,选
择“Start”。
随后Scanreg程序将会检查系统的注册表文件。
检查完毕后,将会给出用户三个选择:“Create Backups(创建备份)”、“View Backups(查看备
份文件)”或者“ Exit(退出程序)”。
用户选择“创建备份”后,程序将会自动创建注册表的备份文件。
备份成功后,程序会给出提示,选择“0K”。
选择“View Backups(查看备份文件)”,用户可以看到已备份的文件信息,包含备份时间以及是
否启动过的信息(若启动过则显示“ Started”,若没有则显示“Not Started”)。
-45-
注册表基础知识
在 Windows 9x/Me中备份注册表
在Windows 9x/ Me 有一个工具叫“Windows
注册表检查程序(Scanregw.exe)”,可以使备份注册
表的工作变得轻松愉快。连续点击菜单项“开始”、“运
行”,输入“scanregw.exe”,当出现询问是否要制作
备份信息时按“是”,如图 2-1-1,接着会以压缩格
式产生一个.cab 文件。这个备份文件包括 System.
dat、User.dat、Win.ini、System.ini的副本,这个文件
将保存在Windows文件夹中 Sysbckup子文件夹中。第
一个备份叫做 RB000.CAB,第二个叫做 RB001.CAB,带有最高数字的文件夹是最新备份文件。
另一种启动注册表检查器的方法是:单击“开始”指向“程序”,单击“附件”指向“系统工具”,
然后在“工具”菜单中单击“注册表检查程序”,其执行效果和上面一样。
小技巧
通常注册表数据库只有5个备份记录,如果备份超过5个时,新的备
份文件就会覆盖旧的备份文件。但如果觉得 5份不够多的话,也可以将Windows
注册表检查程序的最多备份文件数设成 99个。选择“开始”、“运行”并输入
“scanreg.ini”,这时会开启记