打印 上一主题 下一主题

[windows] 注册表专题

[复制链接]

33

主题

55

帖子

335

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
335
跳转到指定楼层
楼主
3617 4 rodster 发表于 2017-2-9 17:52:01

什么是注册表

一、注册表的历史

    在微软最早的视窗操作系统windows 3.x版本中,操作系统、硬件设备信息及应用程序的配置信息都是通过扩展名为ini的文件来保存的,其中system.ini负责配置硬件,Win.ini负责配置桌面设置和应用程序等。这种管理方式有着明显的缺点:由于ini文件的最大容量限制为64K,所以在系统中每种设备和应用程序都有一个和自己对应的.ini文件,而且在应用程序的安装和运行过程中,系统不会自动删除过时和无用的ini文件。随着应用程序不断添加和删除,ini文件越来越多,在ini文件中查找相应信息的速度就会越来越慢,系统也就会运行缓慢并且不稳定。

    为使系统的运行更加稳定,避免因.ini文件遭到破坏而导致应用程序出错和系统死机、无法启动等问题,微软从windows 95开始引入了注册表的概念。



二、注册表的作用:

    将原来保存到.ini文件中的所有信息全部转移到其中,包括计算机系统和应用程序的配置信息、windows系统与应用程序的初始化信息、计算机硬件设备信息,以及各种状态信息和数据等。

    注册表中的信息具有特殊的数据形式,用户只有通过特定的注册表编辑器才能对其进行浏览和修改,而不能通过文本编辑器进行修改,这样就大大大增强了系统的稳定性和安全性,避免了原来由于ini文件的破坏而造成的系统死机、崩溃等现象。

    此外,注册表中的信息都是以相似性质为依据,按照层次结构来存放的,这样就简化了用户对注册表信息的浏览和管理,提高了系统查找信息的速度和效率。

    注册表允许系统管理员对硬件设备、硬件设备的驱动程序、系统参数和应用程序进行跟踪配置,通过修改注册表,管理员可以修改许多系统隐藏的参数来提高系统的性能或是对计算机进行个性化的配置。注册表中保存的部分硬件数据支持高版本的windows的即插即用特性,在系统检测到计算机中新的硬件设备时,将把相关的数据信息保存到注册表中,这样就避免了由于新设备的添加而造成与原有硬件设备之间的资源冲突。

    在计算机网络中,系统管理员或用户可以通过注册表来检查系统配置和设置情况,从而实现计算机网络的远程管理。



三、注册表的功能:

    (1)、注册表是连接操作系统、硬件及驱动程序的数据库。在Windows操作系统中,驱动程序的位置、存放地址和版本号等信息都保存在注册表中。有了这些针对各种设备的信息后,操作系统就可以通过驱动程序使用相应的设备了。如果没有注册表,操作系统就无法对硬件设备进行管理。

    (2)、注册表也是操作系统与应用程序相关联的数据库。当启动一个应用程序时,注册表就会向操作系统提供与该应用程序相关的设置,如文件位置、配置文件及启动应用程序所需的其他的必要设置等。


沙发
 楼主| rodster 发表于 2017-2-9 17:59:54
注册表的位置

在Windows 98/Me操作系统中,注册表主要由“system.dat”和“User.dat”这两个注册表数据库文件组成。它们是由二进制组成的,位于windows文件夹中,通常是在C:\Windows中。

System.dat包含系统硬件和软件的设置,User.dat则保存着与用户有关的信息,例如:“我的电脑”的设置、颜色方案以及网络口令等,

若因系统不正常的关机或硬盘的问题而导致这些文件损坏的话,有时候会出现软件无法正常使用的情况,甚至会导致系统崩溃而无法工作。

    技巧:如果用户在Windows文件夹中找不到该文件,需先进行以下操作:

打开“我的电脑”,选择“查看”→“文件夹选项”命令(Windows 2000/xp系统为“工具”→“文件夹选项”),

在弹出的对话框中打开“查看”选项卡,选其中的“显示所有文件和文件夹”

如图所示:

在Windows 2000/NT/XP中,注册表文件的位置同Windows 9x一样,并且Windows 2000的注册表也分为两个部分,但包括多个文件,
其中用户配置文件保存在根目录“Documents and Settings"下用户名的目录中,包括两个隐藏文件:Ntuser.dat、Ntuser.int及Ntuser.log日志文件。
系统配置文件位于Windows 2000系统目录下的"System32\config”中,包括Default、Software、System、Appevent.evt、Secevent.evt、Sysevent.evt等多个隐藏文件及其相应的.LOG(日志)文件和.sav文件。
这些注册表文件在Windows 2000运行时无法使用其他工具打开,这一点也与Windows 9x下的System.dat及User.dat不同。










板凳
 楼主| rodster 发表于 2017-2-9 18:26:57
Windows 9x注册表的文件组成

windows 9x的注册表是由以下三个文件组成的。



    1.系统配置注册表文件system.dat

    在windows 9x的系统目录中有一个属性为隐藏、只读的系统文件system.dat,其作用类似于windows 3.x中的system.ini文件。

    在system.dat文件中存储着当前计算机的配置,特别是各种即特即用设备的硬件配置,如设备的中断号、I/O地址及DMA等。该文件具有以下作用:

    (1).描述单一的PC配置。

    (2).描述安装在单个PC机上的各种信息。

    (3).安装即插即用类型的硬件配置,如I/O地址、IRQ级以及DMA通道等。

    在使用“控制面板”中的“系统”图标选项查看系统硬件配置时,在“系统属性”对话框中所看到的信息就是从system.dat文件中读取的。

    如果用户的操作系统是从windows 3.x升级到windows 9x的,则安装程序将把现有的system.ini和Reg.dat文件中的部分设置拷贝到system.dat文件中。



    2.用户平台配置注册表文件user.dat

    用户平台配置注册表文件user.dat也存在于Windows 9x的系统目录中,其属性也为只读和隐藏。该文件的作用类似于windows 3.x中的win.ini文件,主要用来定义用户的优先权,存储着特定于某一用户的应用程序的安装信息等。当在windows 9x中使用网络时,user.dat将放在网络服务器上。在用户第一次输入用户标志和密码时,安装程序将把这些信息存储在user.dat文件中。



    3.网络管理注册表文件config.pol

    该文件只有当用户在windows 9x中安装了系统策略编辑器后才会出现,其作用是对网络用户的操作进行限制,它也是一个只读和隐藏的系统文件。

    一般而言,在一个完整的注册表文件系统中,system.dat和user.dat文件是必不可少的。

    对于windows 95来说,其注册表组成除了上述的三个文件外,每个文件还具有一个备份文件,当注册表中的某文件遭到破坏时,可由备份文件对其进行恢复,这三个备份文件分别是:

    (1).系统配置注册表备份文件system.daO

    (2).用户平台配置注册表备份文件user.daO

    (3).网络管理注册表备份文件Config.poO

    Windows 98则改进了这种简单的注册表备份功能。每次开机时,windows 98自动将系统中的原注册表文件压缩为CAB文件,并以rbOO*.cab文件名存储在windows\sysbackup目录下。Windows 98能自动保存最近5次开机时的注册表数据,需要恢复时,可以使用系统自带的Extract.exe(位于windows\command目录下)程序解压该文件,并替换当前注册表文件,这使系统的可靠性得到了增强。




地板
 楼主| rodster 发表于 2017-2-9 18:28:23

Windows NT/2000/xp注册表的文件组成


一、windows NT注册表的文件组成


windows Nt的注册表数据信息存储在\windows\system32\config目录下的注册文件中,这些文件分别是Default、Sam、Security、Software、System、Userdief及Userdirf,通常称之为配置单元。Config目录下的其他文件是注册表的附属文件,大多数附属文件都使用与配置单元相对应的文件名,只是扩展名不同。带有log和evt扩展名的是事件查看器文件,可用事件查看器对它们进行检查。带有sav扩展名的文件是作为“上次正确的系统配置”时引导进程的一部分保留下来的。

如果\winnt是默认安装目录的话,各用户的注册表信息则保存在\winnt\profiles\用户名\Ntuser.dat中。

提示:只有Administrator(系统管理员)和Power User(超级用户)组内的成员才有权访问注册表文件下面的Ntuser.dat。


二、windows 2000和windows xp注册表的文件组成:


windows 2000和windows xp注册表文件基本相同,它们所处的位置与windows 9x一样。windows 2000/xp的注册表也是分为两个部分,但包括多个文件,其中用户配置文件保存在根目录的Documents add Setting目录下的用户名目录中,包括两个隐藏文件:Ntuser.dat和Ntuser.ini以及日志文件Ntuser.log。系统配置文件位于windows 2000/xp系统目录下的system32/config中,包括Default、Software、System、AppEvent.evt、SecEvent.Evt及System.evt等多个隐藏文件及相应的.LOG(日志)文件和.SAV文件。在windows 2000/xp运行时,无法使用其他工具打开这些注册表文件,这一点与windows 9x下的system.dat和user.dat不同。


5#
 楼主| rodster 发表于 2017-2-18 21:14:35
Windows 9x注册表的数据结构

一、Windows 9x注册表的层次结构

从打开的注册表编辑器可以看出,注册表中的数据都有是通过一种树状结构以主键和和子键的方式组织起来的,非常类似于资源管理器中的目录结构。每个键都包含一组特定的信息,其键名都是和它所存在的信息相关的,如图所示:


下面对注册表的层次结构进行说明:

(1)、根键:根键类似于硬盘上的根目录,windows 9x的注册表有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)、主键与子键:主键和子键类似于资源管理器中的文件夹与子文件夹,在主键下面是子键,就象文件夹可以包含子文件夹一样。如果某个主键包含子键,则在注册表编辑器窗口中代表该主键的文件夹的左边会出现一个“+”号。单击“+”号,则可展开该主键下的子键,同时“+”号变成“-”号;单击“-”号,则可收敛该主键下的子键,如图所示:




(3)、键值项:键值项类似于资源管理器中树形上当的末端文件,主键和子键可以包含一个或多个键值项。键值项由键值名、键值类型和键值三部分组成,如图所示:


二、Windows 9x注册表的键值类型:

Windows 9x注册表的键值类型有以下三种:

(1).字符串值:在注册表中,字符串值一般用来描述文件信息、硬件标识等。它通常由字母和数字组成,最大长度不能超过255个字符。例如:图14所示的各字符串键值分别描述了当前显示的字体信息。





(2).二进制值:在注册表中,二进制数据是没有长度限制的,其长度可包括任意个字节。在注册表编辑器中,二进制数据以十六进制方式显示出来。


(3).Dword值:Dword值是一个32位(4个字节,即双字)长度的数值,在注册表编辑器中,该类型的数值以“0x”作为前缀,以十六进制方式进行显示,如图13所示的ScreenSaveUsePassword键值。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

推荐阅读

Archiver|手机版|小黑屋| 云夕阁 ( 湘ICP备16017785号-2 )     

返回顶部 返回列表