注册表基础知识.docx
《注册表基础知识.docx》由会员分享,可在线阅读,更多相关《注册表基础知识.docx(56页珍藏版)》请在冰豆网上搜索。
注册表基础知识
、注册表的历史
在微软最早的视窗操作系统windows3.x版本中,操作系统、硬件设备信息及应用程序的配置信息都是通过扩展名为ini的文件来保存的,其中system.ini负责配置硬件,Win.ini负责配置桌面设置和应用程序等。
这种管理方式有着明显的缺点:
由于ini文件的最大容量限制为64K,所以在系统中每种设备和应用程序都有一个和自己对应的.ini文件,而且在应用程序的安装和运行过程中,系统不会自动删除过时和无用的ini文件。
随着应用程序不断添加和删除,ini文件越来越多,在ini文件中查找相应信息的速度就会越来越慢,系统也就会运行缓慢并且不稳定。
为使系统的运行更加稳定,避免因.ini文件遭到破坏而导致应用程序出错和系统死机、无法启动等问题,微软从windows95开始引入了注册表的概念。
二、注册表的作用:
将原来保存到.ini文件中的所有信息全部转移到其中,包括计算机系统和应用程序的配置信息、windows系统与应用程序的初始化信息、计算机硬件设备信息,以及各种状态信息和数据等。
注册表中的信息具有特殊的数据形式,用户只有通过特定的注册表编辑器才能对其进行浏览和修改,而不能通过文本编辑器进行修改,这样就大大大增强了系统的稳定性和安全性,避免了原来由于ini文件的破坏而造成的系统死机、崩溃等现象。
此外,注册表中的信息都是以相似性质为依据,按照层次结构来存放的,这样就简化了用户对注册表信息的浏览和管理,提高了系统查找信息的速度和效率。
注册表允许系统管理员对硬件设备、硬件设备的驱动程序、系统参数和应用程序进行跟踪配置,通过修改注册表,管理员可以修改许多系统隐藏的参数来提高系统的性能或是对计算机进行个性化的配置。
注册表中保存的部分硬件数据支持高版本的windows的即插即用特性,在系统检测到计算机中新的硬件设备时,将把相关的数据信息保存到注册表中,这样就避免了由于新设备的添加而造成与原有硬件设备之间的资源冲突。
在计算机网络中,系统管理员或用户可以通过注册表来检查系统配置和设置情况,从而实现计算机网络的远程管理。
三、注册表的功能:
(1)、注册表是连接操作系统、硬件及驱动程序的数据库。
在Windows操作系统中,驱动程序的位置、存放地址和版本号等信息都保存在注册表中。
有了这些针对各种设备的信息后,操作系统就可以通过驱动程序使用相应的设备了。
如果没有注册表,操作系统就无法对硬件设备进行管理。
(2)、注册表也是操作系统与应用程序相关联的数据库。
当启动一个应用程序时,注册表就会向操作系统提供与该应用程序相关的设置,如文件位置、配置文件及启动应用程序所需的其他的必要设置等。
注册表的位置
出处:
编辑:
Mali
-
在Windows98/Me操作系统中,注册表主要由“system.dat”和“User.dat”这两个注册表数据库文件组成。
它们是由二进制组成的,位于windows文件夹中,通常是在C:
\Windows中。
System.dat包含系统硬件和软件的设置,User.dat则保存着与用户有关的信息,例如:
“我的电脑”的设置、颜色方案以及网络口令等,若因系统不正常的关机或硬盘的问题而导致这些文件损坏的话,有时候会出现软件无法正常使用的情况,甚至会导致系统崩溃而无法工作。
技巧:
如果用户在Windows文件夹中找不到该文件,需先进行以下操作:
打开“我的电脑”,选择“查看”→“文件夹选项”命令(Windows2000/xp系统为“工具”→“文件夹选项”),在弹出的对话框中打开“查看”选项卡,选其中的“显示所有文件和文件夹”,如图所示:
在Windows2000/NT/XP中,注册表文件的位置同Windows9x一样,并且Windows2000的注册表也分为两个部分,但包括多个文件,其中用户配置文件保存在根目录“DocumentsandSettings"下用户名的目录中,包括两个隐藏文件:
Ntuser.dat、Ntuser.int及Ntuser.log日志文件。
系统配置文件位于Windows2000系统目录下的"System32\config”中,包括Default、Software、System、Appevent.evt、Secevent.evt、Sysevent.evt等多个隐藏文件及其相应的.LOG(日志)文件和.sav文件。
这些注册表文件在Windows2000运行时无法使用其他工具打开,这一点也与Windows9x下的System.dat及User.dat不同。
Windows9x注册表的文件组成
出处:
编辑:
Mali
-
windows9x的注册表是由以下三个文件组成的。
1.系统配置注册表文件system.dat
在windows9x的系统目录中有一个属性为隐藏、只读的系统文件system.dat,其作用类似于windows3.x中的system.ini文件。
在system.dat文件中存储着当前计算机的配置,特别是各种即特即用设备的硬件配置,如设备的中断号、I/O地址及DMA等。
该文件具有以下作用:
(1).描述单一的PC配置。
(2).描述安装在单个PC机上的各种信息。
(3).安装即插即用类型的硬件配置,如I/O地址、IRQ级以及DMA通道等。
在使用“控制面板”中的“系统”图标选项查看系统硬件配置时,在“系统属性”对话框中所看到的信息就是从system.dat文件中读取的。
如果用户的操作系统是从windows3.x升级到windows9x的,则安装程序将把现有的system.ini和Reg.dat文件中的部分设置拷贝到system.dat文件中。
2.用户平台配置注册表文件user.dat
用户平台配置注册表文件user.dat也存在于Windows9x的系统目录中,其属性也为只读和隐藏。
该文件的作用类似于windows3.x中的win.ini文件,主要用来定义用户的优先权,存储着特定于某一用户的应用程序的安装信息等。
当在windows9x中使用网络时,user.dat将放在网络服务器上。
在用户第一次输入用户标志和密码时,安装程序将把这些信息存储在user.dat文件中。
3.网络管理注册表文件config.pol
该文件只有当用户在windows9x中安装了系统策略编辑器后才会出现,其作用是对网络用户的操作进行限制,它也是一个只读和隐藏的系统文件。
一般而言,在一个完整的注册表文件系统中,system.dat和user.dat文件是必不可少的。
对于windows95来说,其注册表组成除了上述的三个文件外,每个文件还具有一个备份文件,当注册表中的某文件遭到破坏时,可由备份文件对其进行恢复,这三个备份文件分别是:
(1).系统配置注册表备份文件system.daO
(2).用户平台配置注册表备份文件user.daO
(3).网络管理注册表备份文件Config.poO
Windows98则改进了这种简单的注册表备份功能。
每次开机时,windows98自动将系统中的原注册表文件压缩为CAB文件,并以rbOO*.cab文件名存储在windows\sysbackup目录下。
Windows98能自动保存最近5次开机时的注册表数据,需要恢复时,可以使用系统自带的Extract.exe(位于windows\command目录下)程序解压该文件,并替换当前注册表文件,这使系统的可靠性得到了增强。
WindowsNT/2000/xp注册表的文件组成
出处:
编辑:
Mali
-
一、windowsNT注册表的文件组成
windowsNt的注册表数据信息存储在\windows\system32\config目录下的注册文件中,这些文件分别是Default、Sam、Security、Software、System、Userdief及Userdirf,通常称之为配置单元。
Config目录下的其他文件是注册表的附属文件,大多数附属文件都使用与配置单元相对应的文件名,只是扩展名不同。
带有log和evt扩展名的是事件查看器文件,可用事件查看器对它们进行检查。
带有sav扩展名的文件是作为“上次正确的系统配置”时引导进程的一部分保留下来的。
如果\winnt是默认安装目录的话,各用户的注册表信息则保存在\winnt\profiles\用户名\Ntuser.dat中。
提示:
只有Administrator(系统管理员)和PowerUser(超级用户)组内的成员才有权访问注册表文件下面的Ntuser.dat。
二、windows2000和windowsxp注册表的文件组成:
windows2000和windowsxp注册表文件基本相同,它们所处的位置与windows9x一样。
windows2000/xp的注册表也是分为两个部分,但包括多个文件,其中用户配置文件保存在根目录的DocumentsaddSetting目录下的用户名目录中,包括两个隐藏文件:
Ntuser.dat和Ntuser.ini以及日志文件Ntuser.log。
系统配置文件位于windows2000/xp系统目录下的system32/config中,包括Default、Software、System、AppEvent.evt、SecEvent.Evt及System.evt等多个隐藏文件及相应的.LOG(日志)文件和.SAV文件。
在windows2000/xp运行时,无法使用其他工具打开这些注册表文件,这一点与windows9x下的system.dat和user.dat不同。
Windows9x注册表的数据结构
出处:
编辑:
Mali
-
一、Windows9x注册表的层次结构:
从打开的注册表编辑器可以看出,注册表中的数据都有是通过一种树状结构以主键和和子键的方式组织起来的,非常类似于资源管理器中的目录结构。
每个键都包含一组特定的信息,其键名都是和它所存在的信息相关的,如图11所示:
图11:
注册表的树状结构
下面对注册表的层次结构进行说明:
(1)、根键:
根键类似于硬盘上的根目录,windows9x的注册表有6个预定义的根键:
1).HKEY_CLASSES_ROOT
2).HKEY_CURRENT_USER
3).HKEY_LOCAL_MACHINE
4).HKEY_USERS
5).HKEY_CURRENT_CONFIG
6).HKEY_DYN_DATA
(2)、主键与子键:
主键和子键类似于资源管理器中的文件夹与子文件夹,在主键下面是子键,就象文件夹可以包含子文件夹一样。
如果某个主键包含子键,则在注册表编辑器窗口中代表该主键的文件夹的左边会出现一个“+”号。
单击“+”号,则可展开该主键下的子键,同时“+”号变成“-”号;单击“-”号,则可收敛该主键下的子键,如图12所示:
图12:
注册表中的主键和子键
(3)、键值项:
键值项类似于资源管理器中树形上当的末端文件,主键和子键可以包含一个或多个键值项。
键值项由键值名、键值类型和键值三部分组成,如图13所示:
图13:
键值名、键值类型和键值
二、Windows9x注册表的键值类型:
Windows9x注册表的键值类型有以下三种:
(1).字符串值:
在注册表中,字符串值一般用来描述文件信息、硬件标识等。
它通常由字母和数字组成,最大长度不能超过255个字符。
例如:
图14所示的各字符串键值分别描述了当前显示的字体信息。
图14:
描述当前字体信息的字符串键值
(2).二进制值:
在注册表中,二进制数据是没有长度限制的,其长度可包括任意个字节。
在注册表编辑器中,二进制数据以十六进制方式显示出来。
(3).Dword值:
Dword值是一个32位(4个字节,即双字)长度的数值,在注册表编辑器中,该类型的数值以“0x”作为前缀,以十六进制方式进行显示,如图13所示的ScreenSaveUsePassword键值。
根键与主键介绍
出处:
编辑:
Mali
-
注册表中的根键:
打开注册表编辑器后,位于其左窗格中的6个分支即是注册表的根键,下面具体介绍各根键的意义:
1.HKEY_CLASSES_ROOT。
该根键包含有关Ole的信息,以便在系统工作过程中实现对各种文件和文档信息的访问。
具体内容包括已注册的文件扩展名、文件类型、文件图标、从win.ini文件中引入的扩展名的数据等,此外还包括诸如“我的电脑”、“回收站”及“控制面板”等标志,该根键的数据适用于所有用户。
2.HKEY_USERS。
该根键中包含了用户根据个人爱好所设置的诸如桌面、背景、开始菜单程序项、应用程序快捷键、显示字体及显示器节能设置等信息。
其中的大部分设置都可以通过控制面板进行修改,有经验的用户也可以直接在注册表中对这些设置进行修改。
3.HKEY_CURRENT_USER。
该根键中保存了当前登录用户的配置信息及登录信息,实际上它就是根键HKEY_USERS中.Default分支下的一部分内容。
如果在HKEY_USERS\.default分支下没有用户登录的其他内容,那么这两个根键所包含的内容是完全相同的。
4.HKEY_LOCAL_MACHINE。
该根键包含了本地计算机(相对于网络环境而言)系统软件和硬件的全部信息。
当系统硬件配置和软件设置发生变化时,该根键下的相关项也就发生相应的变化,其中的数据适合于所有用户。
5.HKEY_CURRENT_CONFIG。
该根键包含所有连接到本计算机上的硬件的配置数据,这些数据会根据当前计算机连接的网络类型、硬件配置以及应用软件的安装的不同而不所变化。
它实际上是指向HKEY_LOCAL_MACHINE\Config分支的指针,其下的主键及内容与HKEY_LOCAL_MACHINE\Config\0001分支下的主键和内容是完全相同的。
6.HKEY_DYN_DATA。
该根键包含了系统运行过程中的动态数据信息,比如系统性能和即特即用的动态信息等。
此外,它还包含了那些需要更新和检索的数据。
该根键实际上是指向根键HKEY_LOCAL_MACHINE的一个分支。
HKEY_CLASSES_ROOT根键中的主键
出处:
编辑:
Mali
-
HKEY_CLASSES_ROOT根键中包含有多个主键,这些主键可分为两种:
一种是已经注册的各类文件的扩展名(见图15),一种是各种文件类型的有关信息。
图15
在注册表内已登录的文件扩展名中,一部分是系统约定的扩展名,另一部分是应用程序自定义的扩展名。
应用程序只有把自定义的扩展名登录到注册表中,系统才能识别和关联相关的文档,也就是说,只有经过注册的扩展名,系统才能自动关联。
当单击某个文件扩展名主键时,在注册表编辑器的右窗格中将显示出该主键中的键值项和键值。
比如:
在上图单击asp主键时,系统对具有该扩展名的文件默认为asf文件(键值为ASFFILE),内容类型为video/x-ms-asf。
若单击asf主键左边的“+”号,则可看到如图16所示的树型子键。
图16:
asf主键下的树型子键
在shellEX子键中包含了文件属性表的文件句柄。
此外,常见的其他主键还有以下几个。
(1)、CLSID:
分类标识。
在选中它时,可以看到其默认的键值项,系统可用该标识号识别相同类型的文件。
(2)、Compressors:
给出压缩程序的类标识,通过这些类标识可以找到相应的处理程序。
(3)、DefaultIcon:
指定文件的默认图标是应用程序提供的第几个图标。
比如把DefaultIcon主键的值改为C:
\Windows\notepad.exe,3,则采用第三个图标作为相应文件的图标。
HKEY_CURRENT_USER根键中的主键
出处:
编辑:
Mali
-
HKEY_CURRENT_USER根键中包含下述7个主键,如图17所示:
图17:
HKEY_CURRENT_USER根键中的主键
(1).AppEvents主键,包含了已注册了的各种应用事件。
(2).controlPanel主键,包含了与控制面板设置有关的内容。
(3).Identities主键,包含了应用程序安装路径的有关信息。
(4).Keyboardlayout主键,包含了键盘设置信息。
(5).Network主键,包含了网络设置信息。
(6).RemoteAccess主键,包含了IE的有关信息及拨号网络信息等。
(7).Software主键,包含了所安装的应用程序信息。
其中,RemoteAccess不是系统预定义的主键,而是安装IE后而建立的。
下面我们就对其中的AppEvents主键和controlPanel主键进行介绍。
AppEvents主键:
该主键中包含了各种应用事件的列表,其下又包含EventLables和Schemes两个子键。
其中,EventLables子键将各种应用事件按字母顺序进行列表(见图18),Schemes则按照Apps(应用)和Names(命令)对事件进行分类,如图19所示
图18:
按字母顺序列表的EventLables子键
图19:
按照Apps和Names分类的Schemes子键
controlPanel主键:
该主键中包含了桌面、光标、键盘和鼠标等设置信息(见图20),改变它们的值将改变相应的工作环境或参数设置。
图20:
controlPanel主键所包含的子键
根据系统配置和设置情况的不同,controlPanel下面子键的数目也有所不同。
若用户未对控制面板中的项目进行过任何设置,而完全采用系统默认值时,可能就不会出现相应的子键。
用户可通过“控制面板”对controlPanel主键中的键值参数进行修改,但对于某些环境特性的改变,则只能在注册表编辑器中进行修改。
比如,若要改变“开始”菜单的弹出延迟时间,则可在注册表编辑器的HKEY_CURRENT_USER\controlPanel\desktop分支中增加一个键值项MenuShowDelay,并通过设置其键值来改变“开始”菜单的弹出延时,键值的设定范围为0~100ms。
下面我们对controlPanel下的部分子键进行简单介绍。
1)、Appearance子键:
该子键的键值中列出了可供选择的各种颜色和图案。
用户可通过双击“控制面板”中的“显示”图标,打开“显示属性”对话框,在“外观”选项卡的“方案”下拉列表中查看这些颜色和图案的名称。
2)、cursors子键:
该子键的键值中列出了光标图案所在的文件路径。
用户可通过双击“控制面板”中的“鼠标”图标,打开“鼠标属性”对话框,在“指针”选项卡的“方案”下拉列表中查看这些光标图案并进行设置。
3)、Desktop子键:
该子键的键值中列出了桌面和窗口中的各种部件,如窗口边界、标题、图标、滚动条、菜单、对话框的长度、对话框的宽度和字体等数据。
用户可通过双击“控制面板”中的“显示”图标,打开“显示属性”对话框,在“外观”选项卡的“项目”下拉列表中查看这些颜色和图案的名称。
4)、InputMethod子键:
该子键的键值中记录了输入法转换热键的有关数据,用户可通过双击“控制面板”中“输入法”图标,打开“输入法属性”对话框,在“热键”选项卡中进行设置。
5)、International子键:
该子键的键值记录了表示系统时间的“上午”和“下午”的数据。
用户可通过双击“控制面板”中的“区域设置”图标,打开“区域设置属性”对话框,在“时间”选项卡中进行修改。
6)、Keyboard子键:
该子键中的键值记录了击键时的重复延时和重复频率。
用户可通过双击“控制面板”中的“键盘”图标,打开“键盘属性”对话框,在“速度”选项卡中进行设置。
7)、Mouse子键:
该子键中的键值记录了鼠标的双击速度和指针的移动速度。
用户可通过双击“控制面板”中的“鼠标”图标,打开“鼠标属性”对话框,在“按钮”选项卡和“移动”选项卡中进行修改。
HKEY_USERS根键中的主键
出处:
编辑:
Mali
-
HKEY_USERS根键用于保存默认用户(.Default)与当前登录用户与软件(software)的信息,如图21所示:
图21:
HKEY_USERS根键
其中最重要的就是.Default子键,其操作内容与HKEY_CURRENT_USER根键中的主键非常相似。
HKEY_LOCAL_MACHINE根键中的主键
出处:
编辑:
Mali
-
HKEY_LOCAL_MACHINE根键中共有8个系统预定义的主键,如图22所示:
图22:
HKEY_LOCAL_MACHINE根键中的主键
HKEY_LOCAL_MACHINE中的信息会因计算机系统软、硬件配置不同而出现很大的差别,其下面的各个主键中所包含的信息有很多也是重复的,但这些数据在注册表数据库中并不重复,这样做的目的,只是为了便于浏览和编辑注册表。
下面对HKEY_LOCAL_MACHINE根键中的主键进行介绍:
(1)、Config主键:
该主键包含了有关显示字体、分辩率、显示点距、颜色深度、以及打印机型号等信息。
其中,Display子键中包含了字体(位于fonts子键中)、分辩率及显示点距(位于Settings子键中)等设置信息,System下面的Printers子键中包含了打印机型号信息。
(2)、Driver主键:
该主键包含了硬件驱动方面的信息。
(3)、Enum主键:
该主键包含了系统当前配置的所有硬件设备的信息。
其包含如下子键:
1)、Acpi子键:
该子键包含了高级设置与电源接口信息,它与“系统属性”对话框的“设备管理器”选项卡的内容相对应。
2)、Bios子键:
该子键包含了Bios中关于硬件的配置信息。
3)、Esdi子键:
该子键包含了硬盘的设置信息。
若系统中配置了多个硬盘,其下面将会出现多个表示硬盘的子键。
用户可从中查看硬盘的相关信息。
4)、Flop子键:
该子键包含了软盘驱动器的有关信息。
5)、Infrared子键:
该子键包含了红外设备的相关信息。
6)、Isapnp子键:
该子键包含了Isa即插即用设备的相关信息。
7)、Mf子键:
该子键包含了标准硬盘驱动程序的相关信息。
8)、Monitor子键:
该子键包含了系统监视器的相关信息。
9)、Network子键:
该子键包含了系统所安装网络的相关信息。
10)、PCI子键:
该子键包含了PCI总线和PCI设备的相关信息。
11)、ROOT子键:
该子键包含了系统根节点下面所挂接的所有系统设备和外部设备的有关信息。
12)、SCSI子键:
该子键包含了各种SCSI设备的相关信息。
光盘驱动器的相关信息一般也记录在此处。
(4)、Hardware主键:
该主键包含了系统所使用的中央处理器、浮点处理器及串口等相关信息。
(5)、Network主键:
该主键包含了网络的相关信息,如Windows登录等。
(6)、Security主键:
该主键包含了系统安全设置方面的信息。
(7)、Software主键:
该主键包含了系统软件、应用软件及用户等方面的信息,如软件版本号、应用路径、序列号、用户名称和组织名称等。
(8)、System主键:
该主键包含了系统的全部软件和硬件信息。
HKEY_CURRENT_CONFIG根键
出处:
编辑:
Mali
-
HKEY_CURRENT_CONFIG根键用于存放定义当前计算机的显示