一路上有你高音质铃声:注册表必备基础知识

来源:百度文库 编辑:偶看新闻 时间:2024/03/28 22:17:30

注册表必备基础知识2009-03-30 12:11

第一章 修改注册表必备基础知识
1.1 如何打开注册表编辑器
注册表是Windows系统存储关于计算机配置信息的数据库,包含了计算机中每个用户的配置文件、有关系统硬件的信息、安装的程序及属性设置,Windows在其运行中不断引用这些信息。

通过本章学习,读者可以掌握注册表的基本知识,并使用系统自带的注册表编辑器对注册表进行诸如查找、修改、新建和删除项或值项以及备份、还原等维护工作。

1.1 如何打开注册表编辑器

Windows XP自带有一个注册表编辑工具——注册表编辑器,它是用来查看和更改系统注册表设置的高级工具,有经验的高级用户可以通过它来编辑注册表,改变系统设定。

要运行注册表编辑器,可以单击【开始】按钮,在弹出的【开始】菜单中,单击【运行】命令,在“运行”对话框中键入“regedit”,然后单击【确定】按钮。

如果要从Windows XP资源管理器中运行注册表编辑器,双击Windows XP系统分区的Windows\System32文件夹中的Regedit.exe。
[2楼]:
1.2 注册表编辑器的结构


在Windows XP中,采用了将应用程序和计算机系统全部配置信息容纳在一起的注册表数据库来进行统一管理。注册表的特点如下:

1.注册表允许对硬件、系统参数、应用程序和设备驱动程序进行跟踪配置,这使得修改某些设置后不用重新启动成为可能。

2.注册表中登录的硬件部分数据可以支持高版本Windows的即插即用特性。当Windows检测到机器上的新设备时,就把有关数据保存到注册表中,另外,还可以避免新设备与原有设备之间的资源冲突。

3.管理人员和用户通过注册表可以在网络上检查系统的配置和设置,使得远程管理得以实现。

注册表是一个层次数据库,有如下嵌套结构和数据组成:

l        子树(Subtrees):在注册表结构中,子树是包含项、子项和值项的主要节点。

l        项(Keys):子树下的主要分支。在“注册表编辑器”中,出现在“注册表编辑器”窗口左窗格中的文件夹。项可以包含子项和值项。例如,Environment是HKEY_CURRENT_USER的一个项。

l        子项(Subkeys):项中的项。在注册表结构中,子项附属于子树和项。项和子项类似于 .ini 文件中的部分头;但是,子项可以执行某些功能。

l        值项(Value Entries):出现在注册表窗口右窗格中的数据字符串,定义了当前所选项的值。值项有三个部分:名称、数据类型和值本身,它主要用来保存影响系统的实际数据。

在其他的书籍或者文档中,由于各种原因使用了一些不同的名词来表达注册表的结构,甚至在微软的帮助文件中也存在着不明确、不统一的地方。由于存在这些问题,可能会对读者的理解和实践带来一定的影响,所以在本书中,参照Windows XP的“注册表编辑器”的操作命令和帮助文件对注册表的某些名词进行了统一,如图1-10所示。

例如在本书中统一使用“子树”表示“根键”、“预定义项”、“根项”等,“项”表示“键”,“子项”表示“子键”,“值项”表示“键值项”,“值项值”表示“键值”。


[3楼]:
子树

在访问本地计算机的注册表时,注册表编辑器中将出现5个子树:HKEY_CURRENT_USER、HKEY_USERS、HKEY_LOCAL_MACHINE、HKEY_CLASSES_ROOT、HKEY_CURRENT_CONFIG;当访问远程计算机的注册表时,只出现两个子树:HKEY_USERS和HKEY_LOCAL_MACHINE。

l        1、HKEY_CURRENT_USER

包含当前登录用户的配置信息的根目录。用户文件夹、屏幕颜色和“控制面板”设置均存储在此处。该信息被称为用户配置文件。

l        2、HKEY_USERS

包含计算机上所有用户的配置文件的根目录。HKEY_CURRENT_USER 是 HKEY_USERS 的子项。主要由.DEFAULT子项构成,新用户根据默认用户.DEFAULT子项的配置信息来生成自己配置文件,该配置文件包括环境、屏幕、声音等多种信息。

l        3、HKEY_LOCAL_MACHINE

包含针对该计算机(对于任何用户)的配置信息。主要由HARDWARE、SAM、SECURITY、SOFTWARE、SYSTEM等项组成:

l        4、HKEY_CLASSES_ROOT

是HKEY_LOCAL_MACHINE\Software的子项。此处存储的信息可以确保当使用Windows 资源管理器打开文件时,将打开正确的程序。即在HKEY_LOCAL_MACHINE\Software\Classes中或者在HKEY_LOCAL_USER\Software\Classes中出现的值,如果该信息同时在两处出现,那么HKEY_LOCAL_USER\Software\Classes拥有优先权。

HKEY_CLASSES_ROOT下的子项可分为两类:一类是已经注册的各类文件的扩展名,这类子项都是以“.”加上扩展名命名的;另一类是各种文件类型的有关信息,这类子项是以字母开头的。

l        5、HKEY_CURRENT_CONFIG

包含本地计算机在系统启动时所用的硬件配置文件信息,实际上是从两个注册表项创建而来的,即HKEY_LOCAL_MACHINE\System和HKEY_LOCAL_MACHINE\Software。因为此子树是动态创建的,因此修改它的内容没有什么实际意义。

值项

值项是注册表中的最小单元,其中保存的数据决定项和子项的操作(尽管不是所有的项和子项均包含值项)。一个值项包含三个元素:

l        名称

l        数据类型

l        值项值

在Windows XP中,注册表的数据类型有以下几种:

1、字符串型

注册表中,“字符串”代表的是文本或文字信息。它既可以是对文字类型进行说明的文字,也可以是硬件设备上的一个标签,甚至可以是登录时显示的一段文字,每个文本字符串的最大长度通常为255个字符。

l        REG_SZ(字符串值)

REG_SZ代表一个简单的文本字符串,它是注册表中最常见的一种数据类型,在字符串编辑器对话框中可以输入许多类型的信息,如名称、路径、标题或说明文字等。REG_SZ也可以是一个数字,例如可用来表示RGB颜色色码,或者版本号等其他类型的信息。

l        REG_MULTI_SZ(多字符串值)

REG_MULTI_SZ条目允许将一系列项目作为单独的一个值使用。对于多种网络传输协议、设备列表以及其他类似的列表项目来说,都可以使用该条目。如果REG_MULTI_SZ之内的项目拥有多个条目,则每个条目都单独占据一行。例如可以为一块网卡设置多个IP地址。

l        REG_EXPAND_SZ(可扩充字符串值)

代表一个可扩展的字符串。其编辑器和标准REG_SZ字符串编辑类似,只是在变量用法上有所差异。在REG_EXPAND_SZ编辑器中输入变量时,系统会将它当作变量看待。激活此变量时,会显示变量的具体值。

例如在对话框中的“%SYSTEMROOT%”是一个变量名,激活它之后,会返回到Windows XP所在的目录。

2、其他数据类型

REG_DWORD,REG_BINARY和REG_RESOURCE_MAP都允许用数值信息对硬件和软件项目进行定义。实际的数值数据可采用二进制、十六进制或十进制格式输入。

l        REG_DWORD(DWORD值)

REG_DWORD数据是32位的数值类型,常显示成四个字节,许多设备驱动程序和服务的参数是这种类型,也常用于出错控制中。在编辑时可选用二进制、十进制或十六进制格式进行。

l        REG_BINARY(二进制值)

REG_BINARY与REG_DWORD的区别在于:REG_BINARY可以是任意长度,而REG_DWORD必须在四个字节以内。多数硬件组件信息都以二进制数据存储,而以十六进制格式显示在注册表编辑器中。

l        REG_FULL_RESOURCE_DESCRIPTOR

允许对硬件设备正在使用的实际设置进行查看和编辑。设计用来存储硬件元件或驱动程序的资源列表的一列嵌套数组。


[4楼]:
1.3 注册表的安全要求


尽管可以用注册表编辑器查看和修改注册表,但是通常不必这样做,因为这样做在简化了对计算机或网络的管理的同时,却使得对注册表的一个错误编辑就可能会令操作系统瘫痪。因此在使用注册表编辑器之前,应注意以下安全要求:

1、在更改注册表之前,建立备份副本。

2、不要使用其他版本的Windows操作系统的注册表来替换Windows XP注册表。

3、尽量使用可提供更安全的编辑注册表方法的工具和程序而不是注册表编辑器来编辑注册表。

4、不要让注册表编辑器在无人值守的状态下运行。

另外还需要特别注意的是,注册表编辑器不提供任何类型的确认、取消或者恢复功能,因此用户的每一个操作都将自动提交并执行。


[5楼]:
利用注册表编辑器,我们可以对注册表进行各种操作。

新建项

在新建项之前,首先选定要创建的位置,然后单击【编辑】菜单中的【新建】子菜单,选择【项】命令。

或者在选定位置后直接单击鼠标右键,然后在弹出的快捷菜单中选择【新建】中的【项】命令。在选定的位置下会添加一个临时名称为“新项#1”新项,为新建的项指定一个名称,完成后按回车键即可。

新建值项

选定要添加值项的项,然后与建立项操作一样,单击鼠标右键,在弹出的快捷菜单中选择【新建】中的【字符串值】命令。在选定的位置下会添加一个临时名称为“新值#1”的新值项,为新建的值项指定一个名称,完成后按回车键即可。双击该字符串,在“编辑字符串”对话框中的“数值数据”文本框中输入相应的值项值,然后单击【确定】按钮即可输入值项值。
    用同样的方法,即可建立二进制值、DWORD值等值项。

重命名项

在修改项的名称时,我们可以单击注册表编辑器的【编辑】菜单中的【重命名】命令,也可以通过在修改项上单击鼠标右键,然后选择【重命名】命令。输入新名称后按回车键即可达到修改项名称的目的。

重赋值项值

如果要更改值项值,可以在注册表编辑器的右窗口中通过双击需修改的值项,在出现的对话框的中输入新的数值数据,然后单击【确定】按钮即可。

删除项或值项

选中要删除的项或值项,然后在【编辑】菜单中选择【删除】命令,或者直接选中后单击鼠标右键,在弹出的菜单中选择【删除】命令,然后在弹出对话框中单击【是】按钮即可。

查找项或值项

当我们知道一个项的名称但是找不到其具体位置时,可以通过单击【编辑】菜单中的【查找】命令,在弹出的对话框中输入我们需要查找的目标。在“查找”对话框中,还可以自定义查找范围,如项、值或数据,这样可以更快速的查找到目标。如果我们选取“全字匹配”复选框时,则只会查找出输入的字符串,反之则会查找出包含输入字符串的所有字符串。例如在默认情况下,如果在注册表中查找“soft”的字符串,则查找的结果可能是“software”或“Microsoft”。

单击【查找下一个】按钮,即开始在注册表中内查找键入的内容。若系统查找到匹配的字符串值,则会很快定位在该字符串对应的项或值项数据。

这样我们可以对此进行修改或其他操作。然后我们可以单击【编辑】菜单中的【查找下一个】命令或者直接按快捷键F3,继续查找所需的字符串。

远程编辑注册表

我们知道Windows XP主要用于网络上,对于系统管理员如果去管理一台远程的计算机是很重要的,特别是注册表上的管理更是显得至关重要。通过远程编辑注册表,系统管理员就可以很方便地管理网络上的每一台计算机。但是在编辑远程计算机注册表时最好通知远端用户备份注册表,以防系统无法启动。

如果需远程连接一台计算机,首先用户必须同时在本地计算机和远程计算机上作为管理员或Administrators组成员登录,才能更改远程计算机上的注册表。然后单击注册表编辑器的【文件】菜单中【连接网络注册表】命令,在弹出对话框中,键入要连接到其注册表的计算机名,单击【确定】按钮即可编辑该计算机的注册表。
远程编辑注册表完成后,单击【文件】菜单上的【断开网络注册表】命令,在“断开网络注册表”对话框中,单击要断开其注册表连接的计算机名即可取消与远程注册表的连接。

打印全部或部分注册表

通过注册表编辑器还可以对注册标的内容进行打印输出。操作步骤如下:

首先单击在注册表编辑器中要打印的注册表区域的计算机或子树。

单击【文件】菜单上的【打印】按钮。

单击【全部】即可以打印整个注册表,单击【选定的分支】并在文本框中键入所需的分支,然后单击【打印】按钮,可以只打印部分注册表。

[7楼]:
1.5 注册表操作权限设置


多数情况下,注册表只能由系统管理员来编辑,而普通的用户只有浏览权。这样在一定程度上提高了系统的安全性,这也与Windows XP的安全策略相吻合。注册表编辑器工具提供了用户权限设置功能,系统管理员或超级用户具有该功能。

指派操作权限

要给注册表项指派权限的操作步骤如下:,

(1)打开注册表编辑器。

(2)单击想要指派权限的项。

(3)单击【编辑】菜单的【权限】命令。

(4)在对话框中,按照如下所示要求给所选项指派访问级别:

要授予用户读取该项内容的权限,但不保存对文件的任何更改,在“用户名称的权限”下面,选中“读取”中的“允许”复选框。

要授予用户打开、编辑所选项和获得其所有权的权限,在“用户名称的权限”下面,选中“完全控制”中的“允许”复选框。

(5)如果要授予用户对所选项的特殊权限,可单击【高级】按钮进行高级安全设置。


(6)如果所要授予的用户名称未出现“组或用户名称”中,可单击【添加】按钮,在弹出对话框中来选择用户或组。

取得注册表项的所有权

对于每一个注册表项,系统管理员有权授予某个用户。用户一旦被授予所有权,该用户就有权决定谁能访问此注册表项。取得所有权的操作步骤如下:

(1)打开注册表编辑器。

(2)单击想要取得其所有权的项。

(3)单击【编辑】菜单的【权限】命令。

(4)单击【高级】按钮,然后单击【所有者】选项卡。

(5)在“将所有者更改为”中单击新所有者,然后单击【确定】按钮。

审核注册表项的活动

注册表编辑器提供了审核机制,可以记录对注册表进行的所有操作,记录诸如操作者的登录名称、修改时间等信息。具体操作步骤如下:

(1)打开注册表编辑器。

(2)单击要审核的项。

(3)单击【编辑】菜单的【权限】命令。

(4)单击【高级】按钮,然后单击【审核】选项卡。

(5)双击组名或用户名。

(6)在弹出的对话框中,选中或清除“访问”下要审核或停止审核的活动的“成功”和“失败”复选框。
[10楼]:
1.8 注册表的破坏与修复


系统出现的一些问题,如无法启动、应用程序无法运行、系统不正常等,很多都是因为注册表出现错误而造成的,虽然通过修改相应的错误数据能使Windows XP恢复如初,但由于注册表的结构复杂,不正确的修改常常会带来更坏的结果。如果注册表在被破坏前进行了备份,则修复注册表就会比较方便。

一般来说,要修复注册表应从最简单的方法做起,如重新启动等;如果还不成功,应尝试用以前备份过的注册表副本进行还原;最后仍然不能奏效的话,则必须使用一些工具了。

注册表被破坏后的现象

注册表遭到破坏后,系统可能会有如下现象发生:

l        无法启动系统

l        无法运行或正常运行合法的应用程序

l        找不到启动系统或运行应用程序所需的文件

l        没有访问应用程序的权限

l        不能正确安装或装入驱动程序

l        不能进行网络连接

l        注册表条目有错误

注册表被破坏的原因

注册表被破坏的主要原因可以归结为以下四大类:

1、应用程序错误

由于用户经常在Windows XP上添加或删除各种应用程序,而由于在实际使用过程中,很少有完全没有错误的应用程序。看起来非常细小的错误,都有可能导致严重甚至崩溃的后果。同时,在系统中安装过多的软件后,有可能出现彼此之间的冲突。此外,一些共享软件、Beta版测试软件,由于人力及时间上的原因,自身很不成熟,还有相当多的错误,可能会对注册表造成难以预料的结果。

2、驱动程序不兼容

由于PC的体系结构是一个开放性的体系结构,驱动程序和其他程序协同工作时,就有可能出现不兼容的情况。例如,在Windows XP下,大多数硬件都能被自动识别并安装相应的驱动程序,对于未能识别的硬件,如果安装了并非为Windows XP开发的驱动程序,如Windows 9x、Windows 2000下的驱动程序,就很有可能出现问题。

3、硬件问题

除了非正常断电外,如硬盘、内存或其他硬件的品质不过关,造成数据读写错误,或者因为过度超频等情况使得计算机稳定性大为下降,以及病毒对CMOS设置的破坏等这一系列原因都有可能导致注册表的损坏。

4、误操作

注册表中的数据及其复杂,不太熟悉注册表的用户在手工修改注册表时很有可能破坏注册表中的内容。比如,用户可能在无意中将某个重要的键值删除或者双击某个注册表文件而将其导入了注册表。因此建议用户将系统对双击注册表文件的响应由默认的“合并”改为“编辑”,以避免用户的误操作。具体步骤如下:

1、在资源管理器中,单击选择【工具】菜单下的【文件夹选项】命令,弹出文件夹选项对话框;

2、在“已注册的文件类型”中单击选择“注册表项”,然后单击【高级】按钮;

3、在弹出的对话框中,单击选择“操作”中的“edit”,然后单击【设为默认值】按钮;

4、单击【确定】按钮。

这时,当用户再双击.reg注册表文件时,它的缺省操作就变成了“编辑”命令。

修复注册表

重新启动系统

这是最简单的一种方法,虽然并不是在所有的情况下都能使用的,但在做复杂的处理之前,不妨先试一试。

每次启动系统时,Windows会自动进行注册表的检测和修复,如果注册表的错误较轻的话,可能启动后系统就会恢复如初。

使用安全模式启动

如果在启动Windows系统时遇到注册表错误,可以尝试在安全模式下启动。方法是在启动时看到出现 “选择启动操作系统”的提示信息时,按F8键,使用箭头键高亮显示“安全模式”选项,然后按ENTER键。

在安全模式下启动时没有再出现故障现象,就可以将默认设置和最小设备驱动程序排除在可能的故障原因之外。如果是新添加的设备或已更改的驱动程序产生了问题,您可以使用安全模式删除该设备或还原更改,然后即可在正常模式下启动Windows。

使用备份文件进行还原

如果使用安全模式能正常启动,并且以前曾经备份过注册表或者导出过注册表,则可以备份文件或导出文件进行还原或导入操作,具体方法见2.3节的介绍。

替换法恢复

在上述方法无效的情况下,可以利用其他计算机上的注册表来帮助你。如果有和你的硬件配置基本相同的计算机,可以用那台计算机上的注册表文件来覆盖自己计算机上的注册表文件,然后重新启动Windows XP。如果重新启动后可以进入Windows,再对系统进行相应的修改,就能恢复如初了。

重新安装操作系统

如果上面的方法都无效,并且用户很难找到导致注册表损坏的原因是,那只有最后一个办法——重新安装驱动程序、应用程序甚至Windows操作系统。虽然重新Windows会花费较长的时间,但是与一一查找注册表中的错误相比,有时能节省不少的时间。