资源描述
本节学习目标,本节主要讲解注册表的基本知识。通过本节学习,大家应该掌握以下知识:注册表的作用;注册表的结构;注册表子目录树的功能;注册表编辑器regedit和regedt32的区别;注册表编辑器的使用,3.1.1注册表概述,什么是注册表注册表作用注册表的结构注册表编辑器,什么是注册表(1),注册表是Windows的一个内部数据库,是一个巨大的树状分层的数据库。它容纳了应用程序和计算机系统的全部配置信息、系统和应用程序的初始化信息、应用程序和文档文件的关联关系、硬件设备的说明、状态和属性以及各种状态信息和数据。注册表中存放着各种参数,直接控制着Windows的启动、硬件驱动程序的装载以及一些Windows应用程序的运行,从而在整个Windows系统中起着核心作用。,什么是注册表(2),它包括如下一些内容:软、硬件的有关配置和状态信息,注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据。联网计算机的整个系统的设置和各种许可、文件扩展名与应用程序的关联关系,硬件部件的描述、状态和属性。性能记录和其它底层的系统状态信息,以及其它一些数据。,注册表作用,注册表在Windows中起到中介的作用,负责系统同软件、硬件、用户之间的沟通。在Windows中运行一个应用程序的时候,系统会从注册表取得相关信息,如数据文件的类型、保存文件的位置、菜单的样式、工具栏的内容、相应软件的安装日期、用户名、版本号、序列号等。用户可以定制应用软件的菜单、工具栏和外观,相关信息即存储在注册表中,注册表会记录应用的设置,并把这些设置反映给系统。注册表会自动记录用户操作的结果。,注册表的结构,注册表的外部形式是Windows目录下的两个二进制文件System.dat和User.dat,内部组织结构是一个类似于目录管理的树状分层的结构。注册表被组织成子目录树及其项、子项和值项的分层结构,具体内容取决于安装在每台计算机上的设备、服务和程序。一台计算机上的注册表内容可能与另一台有很大不同。注册表项可以有子项,同样,子项也可以有子项。,注册表的结构(2),注册表结构图,包含由各种OLE技术使用的信息和文件类型关联数据。如HKEY_LOCAL_MACHINESOFTWAREClasses或HKEY_CURRENT_USERSOFTWAREClasses中存在某个项或值,则对应的项或值将出现在HKEY_CLASSES_ROOT中。如果两处均存在项或值,HKEY_CURRENT_USER版本将是出现在HKEY_CLASSES_ROOT中的一个。,注册表子目录树(1)-HKEY_CLASSES_ROOT,包括当前以交互方式(与远程方式相反)登录用户的用户配置文件,包括环境变量、桌面设置、网络连接、打印机和程序首选项。该子目录树是HKEY_USERS子目录树的别名并指向HKEY_USERS当前用户的安全ID。,子目录树(2)-KEY_CURRENT_USER,包含本地计算机系统的信息,包括硬件和操作系统数据,如总线类型、系统内存、设备驱动程序和启动控制数据。,子目录树(3)-HKEY_LOCAL_MACHINE,要远程访问服务器的用户在服务器的该项下没有配置文件,他们的配置文件加载到他们自己计算机的注册表中。,子目录树(4)-HKEY_USERS,包含在启动时由本地计算机使用的硬件配置文件的相关信息。该信息用于配置一些设备,例如要加载的设备驱动程序或显示时使用的分辨率。该子目录树指向HKEY_LOCAL_MACHINESYSTEMCurrentControlSetHardwareProfilesCurrent。,子目录树(5)-HKEY_CURRENT_CONFIG,注册表配置单元和文件,配置单元描述的是某个位于注册表树状结构顶端的目录树、项、子项和值。配置单元受%systemroot%System32Config或systemdriverDocumentsandSettingsusername文件夹中的单个文件和.log文件支持。例如,如果用户ABC的Windows系统文件在C分区的Winnt目录中,则配置单元文件被存储在C:DocumentsandSettingsABC文件夹中。配置单元也称注册表文件或注册表日志文件。Windows注册表的每一个配置单元均与一组标准文件相关联。,表-标准配置单元和文件,注册表项中的值项和注册表编辑器,每个注册表项或子项都可以包含称为值项的数据。有些值项存储每个用户的特殊信息,而有些值项则存储应用于计算机所有用户的信息。值项包括三部分:值的名称、值的数据类型和值本身。,注册表编辑器,Windows提供两个版本的注册表编辑器:Regedit.exe:被自动安装在%systemroot%文件夹中Regedt32.exe:被自动安装在%systemroot%system32文件夹中。,Regedit注册表编辑器,Regedt32注册表编辑器,注册表子目录树,HKEY_CURRENT_USERHKEY_LOCAL_MACHINEHKEY_CLASSES_ROOTHKEY_USERSHKEY_CURRENT_CONFIG,HKEY_CURRENT_USER(1),HKEY_CURRENT_USER子目录树是Windows注册表最重要的部分之一,它包含Windows系统、系统的集成部分以及应用软件的配置信息,主要是针对系统的声音、时间、控制面板的功能(如桌面、鼠标、配色方案、屏幕保护程序)、键盘等建立的配置信息以及安装软件时由安装程序建立的项和值(如下图所示)。下面介绍一些HKEY_CURRENT_USER中常用项。,HKEY_CURRENT_USER(2),图-HKEY_CURRENT_USER子目录树,HKEY_CURRENT_USER(3),HKEY_CURRENT_USERAppEventsHKEY_CURRENT_USERAppEvents及其子项,定义了系统特定事件的名称以及发生该事件时系统的声音提示。HKEY_CURRENT_USERAppEventsEventLabels子项定义了特定事件的名称,如“最大化”、“启动Windows”、“电池电力不足警告”等,此处的设置在“声音和多媒体属性”对话框的“声音”选项卡的“声音事件”列表中列出。HKEY_CURRENT_USERAppEventsSchemes子项则定义了发生特定的事件时系统要播放的声音文件。,HKEY_CURRENT_USER(4),HKEY_CURRENT_USERAppEventsSchemes中有三个子项:Names子项定义了系统附带的和用户自定义的声音方案的名称,如“Windows默认”、“无声”等。Apps子项定义了系统附带的声音方案的具体设置,其中,AppsDefault子项定义了通用的配置信息,而AppsEXPLORER、AppsMplay32、AppsSndrec32、AppsPowerCfg子项则分别定义了打开和关闭“资源管理器”、“媒体播放机”、“录音机”、“电源管理”时播放的声音。NewSchemes子项则定义系统新的声音方案。,HKEY_CURRENT_USER(5),HKEY_CURRENT_USERConsoleHKEY_CURRENT_USERConsole定义了“命令提示符”窗口的一些特性,如光标大小、窗口大小、字体、屏幕及字体颜色等内容。在“命令提示符属性”对话框中可以进行相应的设置,其设置的结果就保存在该项中。,HKEY_CURRENT_USERControlPanelHKEY_CURRENT_USERControlPanel项定义的配置很多,用户在“控制面板”中进行的大部分设置,都保存在此项中,包括辅助功能选项、显示器、鼠标、区域选项、屏幕保护等信息。Accessibility子项中保存着“控制面板”中辅助功能选项的所有内容。Appearance子项对应于“显示器属性”对话框的“外观”选项卡,在AppearanceSchemes中定义了所有的可以使用的外观方案,包括颜色和字体。,Colors子项为定义默认的颜色值,这些值就是系统外观方案中使用的颜色,包括在“外观”选项卡的“项目”下拉列表框中列出的所有项目,用户可以使用“颜色”按钮进行修改。在注册表中,颜色使用RGB值的方式表示,用红、蓝、绿三种基本色的多少表示,如“255.255.255”表示白色。Current子项保存当前系统使用的配色方案的名称。DesktopWindowMetrics子项用于保存窗口的状态。,CustomColors子项定义了用户自定义颜色中的十六种常用颜色。当在“外观”选项卡中使用“颜色”按钮进行修改,单击“其他”按钮打开“颜色”对话框时,CustomColors子项定义的颜色就显示在“自定义颜色”选项框中。可以在“颜色”对话框中定义这十六种常用自定义颜色。Desktop子项保存桌面外观的其他设置,如窗口退出时的大小和状态、快捷菜单出现的延迟时间、桌面墙纸的特征以及窗口和菜单响应用户操作的方式。DesktopWindowMetrics子项用于保存窗口的状态。International子项保存在“区域选项”中所进行的设置。,Keyboard子项保存键盘的击键延迟、重复速率以及光标的闪烁速度等配置信息,对应于“键盘属性”对话框中的“速度”选项卡,用户在此处所做的设置将保存在Keyboard子项中。Mouse子项保存有关鼠标的设置信息,如鼠标的速度、双击的速度等,用户在“鼠标属性”对话框的“鼠标键”和“移动”选项卡中所作的设置,保存在该项中。Patterns子项保存可在桌面中显示的各种背景图案。在“显示器属性”对话框的“背景”选项卡中单击“图案”按钮,打开“图案”对话框,“图案”列表框中列出的所有图案都来自于Patterns子项。用户如果在此处编辑了图案,所作的修改也将保存在Patterns子项中。,PowerCfg子项设置当前使用的电源管理方案,对应于“控制面板”中的“电源选项”。PowerCfgPowerPolicies子项中包含系统已经定义好的可以使用的六种方案,这六种方案在“电源选项属性”对话框的“电源使用方案”选项卡的“电源使用方案”下拉列表中列出。ScreenSaver.3DflyingObj子项以及其他的ScreenSaver.*子项中列出了系统可以使用的屏幕保护设置信息,每个屏幕保护程序都有一个ScreenSaver.*项,用于定义该屏幕保护程序的设置信息。用户可以通过“显示属性”对话框的“屏幕保护”选项卡中的“设置”按钮进行设置。,HKEY_CURRENT_USEREnvironmentHKEY_CURRENT_USEREnvironment定义了系统以及其他登录用户的临时文件的存放目录。HKEY_CURRENT_USERPrintersHKEY_CURRENT_USERPrinters中列出了有关打印机的设置信息,其中,HKEY_CURRENT_USERPrintersDevModePerUser子项中保存本地安装的所有打印机及其设置信息。,HKEY_CURRENT_USERKeyboardLayoutHKET_CURRENT_USERKeyboardLayout中保存着系统的键盘布局设置,其中,KeyboardLayoutPreload子项保存已添加的输入法的编号。在“区域选项”对话框中的“输入法区域设置”选项卡中可以对该子项进行设置。HKEY_CURRENT_USERsoftwareHKEY_CURRENT_USERSoftware中包含系统、系统附带的应用软件以及已经在系统中安装的其他软件的设置信息。使用这些软件时所作的设置以及应用软件的默认设置信息,都将保存在HKEY_CURRENT_USERSoftware项中的相应子项中。,HKEY_LOCAL_MACHINE(1),HKEY_LOCAL_MACHINE子目录树中的设置内容是关于本地计算机系统的信息,包括硬件和操作系统数据如总线类型、系统内存、设备驱动程序和启动控制数据。这些信息只与本地的用户有关,而与其他用户无关。HKEY_LOCAL_MACHINE包含五个子项(如图所示)。注意不能使用注册表编辑器修改HKEY_LOCAL_MACHINE子目录树中的SAM子项和SECURITY子项,这些子项对应的是“计算机管理器”等系统功能。,HKEY_LOCAL_MACHINE(2),图-HKEY_LOCAL_MACHINE子目录树,HKEY_LOCAL_MACHINE(3),HKEY_LOCAL_MACHINEHARDWARE保存了Windows系统中的所有硬件信息,系统和应用程序都是通过该项的设置与具体的硬件进行沟通。HEKY_LOCAL_MACHINESOFTWARE包含系统中软件的设置信息。由于用户安装的软件不同,该项中的设置信息也会不同。HEKY_LOCAL_MACHINESYSTEM包含系统启动需要的详细信息,包含设备的驱动程序及其配置信息、控制数据、系统分区及其他驱动器的设置信息,以及系统不能启动时,如何恢复正确配置信息。,HKEY_CLASSES_ROOT(1),为了加强对系统数据类型的管理,Windows在注册表中组织了HKEY_CLASSES_ROOT子目录树,它包含了对数据文件类型的定义;每一种在系统中注册过的文件类型,都会在此建立一个子项(如下图所示)。在每一个子项中定义的数据文档的扩展名、扩展名的说明性文字、在文件列表窗口中显示的图标以及与数据文档关联的应用程序和应用程序对数据文档的操作方式。如果用户要动手注册新的数据文档,可以在HKEY_CLASSES_ROOT中创建相应的子项。,HKEY_CLASSES_ROOT(2),图-HKEY_CLASSES_ROOT子目录树,HKEY_USERS(1),HKEY_USERS子目录树(如下图所示)是用来控制用户配置文件的,它包含所有用户的配置文件的内容。每个用户都会在HKEY_USERS项中有一个子项,该子项的内容和HKEY_CURRENT_USER项的内容相似,具体功能也相同,只是使用子项的用户不同。,HKEY_USERS(2),图-HKEY_USERS子目录树,HKEY_CURRENT_CONFIG(1),HKEY_CURRENT_CONFIG子目录树是用来控制系统硬件配置信息的,它包含系统不同的硬件配置信息之间的差异。如果在系统中设置了多个不同的正确的配置文件,则系统在启动时会让用户选择要使用的配置文件。HKEY_CURRENT_CONFIG控制项代表的就是用户或用户选择的硬件配置文件,但是它只列出用户选择的配置文件与其它配置文件不同的地方。,HKEY_CURRENT_CONFIG(2),图-HKEY_CURRENT_CONFIG子目录树,使用REGEDIT管理注册表,导出注册表文件实质是对注册表进行备份,过程如下:步骤一,打开注册表编辑器;步骤二,选择“注册表”菜单中的“导出注册表文件”命令,打开如下图所示对话框;步骤三,根据需要选择导出整个注册表或者导出某个子目录树或者子项;步骤四,选择导出路径,在“文件名”下拉文本框中输入注册表文件的名称。步骤五,单击“保存”按钮,完成操作,导出注册表文件,图-导出注册表文件,导入注册表文件,当注册表出现错误或者需要还原导出的注册表配置信息,通过注册表编辑器的导入功能可很快恢复注册表配置信息,过程如下:步骤一,打开注册表编辑器;步骤二,选择“注册表”菜单中的“导入注册表文件”命令,打开对话框;步骤三,找到导出目录,选择已经导出的文件,然后单击“打开”按钮即可对现有的注册表信息进行还原。,查找字符串、值或注册表项,由于注册表是计算机系统的核心,包括的内容特别多,所以在查找某一个字符串、值或注册表项时,通常需要很长的过程和时间。注册表编辑器提供了查找功能,可以快速找到自己要操作的对象,过程如下:步骤一,在注册表编辑器中,选择“编辑”菜单中的“查找”命令,打开“查找”对话框,如下图所示。步骤二,在“查找目标”文本框中,输入要查找的内容。步骤三,启用“项”、“值”、“数据”、“全字匹配”复选框,以匹配要搜索的类型,然后单击“查找下一个”按钮即可开始查找。,查找字符串、值或注册表项,图-查找字符串、值或注册表项,添加项和值(1),在注册表编辑过程中,除了修改和删除注册表的项和值外,还可以添加项和值。通过添加注册表项和值,用户可以完成许多原有注册表项目无法完成的配置。用户可以按照下面步骤添加项和值。步骤一,打开REGEDIT注册表编辑器。步骤二,选择要添加子项或者值的项目,例如HKEY_LOCAL_MACHINE/SAM,然后打开“编辑”菜单中的“新建”子菜单。步骤三,如果要添加子项,选择“新建”菜单中的“项”命令,编辑器就会在所选择的项目下添加一个子项,默认名称为“新项#1”,如图所示。步骤四,修改新项的名称,然后回车即可。,添加项和值(2),添加子项,连接网络注册表,如果要查看网络上其它机器的注册表,选择“注册表”菜单中的“连接网络注册表”,打开如图所示对话,输入要查看的计算机名,或者点击“浏览”按钮,从网络上查找要连接的计算机。,图-连接网络注册表,使用REGEDT32管理注册表,如果用户要在REGEDT32编辑器中编辑和设置注册表,打开“开始”菜单,选择“运行”命令,在“运行”对话框中输入REGEDT32,然后单击“确定”按钮即可启动REGEDT32编辑器。在该编辑器中,用户主要可以进行以下几个方面的工作。,查看其它计算机中的注册表(1),用户可以通过网络连接,在当前计算机上观察和编辑其他用户计算机的注册表,提供故障检修和其他技术支持服务,使网络维护功能大大增强。在REGEDT32注册表编辑器中,通过选择“注册表”菜单中的“选择计算机”命令,打开如图所示的“选择计算机”对话框,然后选择要查看其注册表的计算机,则可以操作其它计算机中的注册表。,查看其它计算机中的注册表(2),图-“选择计算机”对话框,装载和卸载配置单元(1),可以显示和维护计算机的注册表。在计算机没有被正确配置或不能连接入网时,通过这个功能可以显示某些特定的值或修改某些指定的项。“加载配置单元”和“卸载配置单元”命令仅仅影响显示HKEY_USERS和HKEY_LOCAL_MACHINE的注册窗口。要使用这些命令,必须拥有“保存”和“还原”特权。如果是作为一个管理员登录了计算机,那么他已经拥有恢复和备份权限。只有当HKEY_LOCAL_MACHINE或HKEY_USERS被选择时,“加载配置单元”命令才是可用的。只有当子目录树或其中的一个句柄被选择时,“卸载配置单元”命令才是可使用的。,装载和卸载配置单元(2),在启动计算机时,形成注册表的配置单元被自动装入,通过注册表编辑器可以观察配置单元的内容。若想观察或改变其他的配置单元文件的内容,必须使用注册表编辑器中的“加载配置单元”命令来显示其内容。一般,用户只有在某个注册表不能被直接打开的情况下,才使用“加载配置单元”命令:,装载和卸载配置单元(3),步骤一,选择HKEY_LOCAL_MACHINE或HKEY_USERS子目录树。步骤二,在注册表编辑器的“注册表”菜单中,选择“加载配置单元”命令,打开“加载配置单元”对话框。步骤三,选择要加载配置单元的文件名和路径,然后单击“打开”按钮即可。这个文件在注册表中创建一个新的子目录树,可以用包括空格在内的任意字符来指定这个配置单元文件在注册表中的子项的名字。另外,用户不能装入一个已存在的子目录树,装入到配置单元中的数据在HKEY_USERS或HKEY_LOCAL_MACHINE下以新子目录树的形式出现。直到被下载之前,装入的配置单元始终保留在系统中。,维护注册表的安全性(1),在REGEDT32注册表编辑器中,用户可以通过多种方式维护注册表的安全性。设置只读模式“只读模式”可以保护注册表数据免遭潜在的损坏和突然的改变。使用“只读模式”后,注册表编辑器将不保存所做的任何更改。设置只读模式,打开注册表编辑器,选择“选项”菜单中的“只读模式”命令,使其处于被选状态即可。,维护注册表的安全性(2),确认删除操作当用户不小心删除了某个项或者值时,确认删除操作可以避免这种因过失而造成的破坏。在默认的情况下,注册表编辑器需要用户确认删除操作,以保护注册表的安全。但是,如果注册表不处于确认删除状态,用户应及时设置确认删除操作,方法是:在REGEDT32编辑器中,选择“选项”菜单中的“确认删除操作”命令,使其处于被选状态即可。,维护注册表的安全性(3),注册表权限设置无论是为注册表设置只读模式,还是为注册表设置确认删除操作,都只能防止一些对注册表无意的破坏。要想真正保护注册表的安全,必须设置注册表的安全权限,方法如下:步骤一,打开REGEDT32注册表编辑器。步骤二,选择要指派权限的项,然后选择“安全”菜单的“权限”命令,打开所选项目的权限对话框,如图所示。步骤三,根据需要为用户指派不同的权限。如果要授予用户读取该项内容的权限,不能更改文件的内容。可在“名称”列表框中选择要设置权限的用户,然后启用“读取”后面的“允许”复选框。步骤四,单击“确定”按钮,保存设置。,维护注册表的安全性(4),图-设置注册表项目的权限,维护注册表的安全性(5),保存和还原子项内容在REGEDT32编辑器中,用户可以对注册表中的子目录树和子项进行保存和还原操作,以便排除注册表出现的问题。一般在改变注册表信息之前,把子目录树或子项信息做一个配置单元文件备份,如果所做的修改未达到预期的效果,恢复配置单元文件可防止产生不必要的系统错误。用户通过“注册表”菜单中的“保存项”命令可存入“配置单元”文件,需要时再通过“还原”来使用这个配置单元文件进行注册表的恢复。,本节小结,本节主要介绍了注册表的作用、结构、子目录树,以及使用注册表编辑器管理注册表的方法。重点是注册表的各个子目录树所包括的主要内容。,
展开阅读全文