什么是注册表

如题所述

注册表
存储计算机的配置信息的数据容器.
编辑本段如何打开注册表
Win98/98SE/Me
运行中输入regedit.exe 无权限限制
Win2000/XP
1·运行中输入regedit.exe
2.运行中输入regedit32.exe 第一种方法打开的注册表编辑器和Win98下的一样,而且功能相同,而使用第二种方法打开的注册表编辑器则可以方便的设置权限,建议网络管理员使用第2种方法打开注册表编辑器修改需要修改的权限设置部分以免被他人恶意修改。
Windows Vista
1.在开始菜单搜索框中输入regedit并按回车键.(需要管理员权限)
2.在运行中输入regedit.exe(需要管理员权限)
编辑本段注册表数据库文件的存放位置
2000/XP注册表文件但按功能来分,也是由系统注册表文件和用户注册表文件两类组成的
注册表文件存放系统的所有设置信息:
系统设置和缺省用户配置数据存放在系统\系统文件夹\SYSTEM32\CONFIG文件夹下的6个文件(隐藏,无扩展名),DEFAULT、SAM、SECURITY、SOFTWARE、USERDIFF和SYSTEM中,而用户的配置信息存放在系统所在磁盘的\Documents and Setting\文件夹,包括ntuser.dat ntuser.ini ntuser.dat.log
编辑本段《英汉双解微软计算机辞典》(第 5 版)
定义:
Microsoft Windows 9x、Windows CE、Windows NT、Windows 2000、Windows XP 和 Windows Vista 中使用的中央分层数据库,用于存储为一个或多个用户、应用程序和硬件设备配置系统所必需的信息。
注册表包含 Windows 在运行期间不断引用的信息,例如,每个用户的配置文件、计算机上安装的应用程序以及每个应用程序可以创建的文档类型、文件夹和应用程序图标的属性表设置、系统上存在哪些硬件以及正在使用哪些端口。
注册表取代了 Windows 3.x 和 MS-DOS 配置文件(例如,Autoexec.bat 和 Config.sys)中使用的绝大多数基于文本的 .ini 文件。虽然几个 Windows 操作系统都有注册表,但这些操作系统的注册表有一些区别。
注册表数据存储在二进制文件中。
注册表因为它复杂的结构和没有任何联系的CLSID键使得它可能看上去很神秘。不幸的是,微软并没有完全公开讲述关于注册表正确设置的支持信息,这样使得注册表看上去更不可琢磨。处理和编辑注册表如同“黑色艺术”一样,它在系统中的设置让用户感觉象在黑暗中摸索一样找不到感觉。这样,因为用户对这方面的缺乏了解使得注册表更多的出现故障。
注册表是一套控制操作系统外表和如何响应外来事件工作的文件。这些“事件”的范围从直接存取一个硬件设备到接口如何响应特定用户到应用程序如何运行等等。注册表因为它的目的和性质变的很复杂,它被设计为专门为32位应用程序工作,文件的大小被限制在大约40MB。
编辑本段注册表的由来
在Windows 3.x操作系统中,注册表是一个极小文件,其文件名为Reg.dat,里面只存放了某些文件类型的应用程序关联,大部分的设置放在Win.ini、System.ini等多个初始化INI文件中。由于这些初始化文件不便于管理和维护,时常出现一些因INI文件遭到破坏而导致系统无法的启动的问题。为了使系统运行得更为稳定、健壮,Windows 95/98设计师们借用了Windows NT中的注册表的思想,将注册表引入到Windows 95/98操作系统中,而且将INI文件中的大部分设置也移植到注册表中,因此,注册表在Windows 95/98操作系统的启动、运行过程中起着重要的作用。
编辑本段注册表的作用
注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件。16位驱动在Winnt下无法工作,所以所有设备都通过注册表来控制,一般这些是通过BIOS来控制的。在Win95下,16位驱动会继续以实模式方式设备工作,它们使用system.ini来控制。16位应用程序会工作在NT或者Win95 下,它们的程序仍然会参考win.ini和system.ini文件获得信息和控制。
在没有注册表的情况下,操作系统不会获得必须的信息来运行和控制附属的设备和应用程序及正确响应用户的输入。
在系统中注册表是一个记录32位驱动的设置和位置的数据库。当操作系统需要存取硬件设备,它使用驱动程序,甚至设备是一个BIOS支持的设备。无BIOS支持设备安装时必须需要驱动,这个驱动是独立于操作系统的,但是操作系统需要知道从哪里找到它们,文件名、版本号、其他设置和信息,没有注册表对设备的记录,它们就不能被使用。
当一个用户准备运行一个应用程序,注册表提供应用程序信息给操作系统,这样应用程序可以被找到,正确数据文件的位置被规定,其他设置也都可以被使用。
注册表保存关于缺省数据和辅助文件的位置信息、菜单、按钮条、窗口状态和其他可选项。它同样也保存了安装信息(比如说日期),安装软件的用户,软件版本号和日期,序列号等。根据安装软件的不同,它包括的信息也不同。
然而,一般来说,注册表控制所有32位应用程序和驱动,控制的方法是基于用户和计算机的,而不依赖于应用程序或驱动,每个注册表的参数项控制了一个用户的功能或者计算机功能。用户功能可能包括了桌面外观和用户目录。所以,计算机功能和安装的硬件和软件有关,对所有用户来说项都是公用的。
有些程序功能对用户有影响,有些时作用于计算机而不是为个人设置的,同样的,驱动可能是用户指定的,但在很多时候,它们在计算机中是通用的。
注册表控制用户模式的例子有:
控制面板功能;
桌面外观和图标;
网络参数;
浏览器功能性和特征;
那些功能中的某些是和用户无关的,有些是针对用户的。
计算机相关控制项基于计算机名,和登陆用户无关。控制类型的例子是安装一个应用程序,不管是哪个用户,程序的可用性和存取是不变的,然而,运行程序图标依赖于网络上登陆的用户。网络协议可用性和优先权基于计算机,但是当前连接和用户信息相关。
这里是在注册表中基与计算机控制条目的一些例子:
存取控制;
登陆确认;
文件和打印机共享;
网卡设置和协议;
系统性能和虚拟内存设置;
在系统中注册表控制所有32位应用程序和它们的功能及多个应用程序的交互,比如复制和粘贴,它也控制所有的硬件和驱动程序。虽然多数可以通过控制面板来安装和设置,理解注册表仍是做Winnt和Win95系统管理基本常识。
编辑本段与注册表有关的术语
1、HKEY :“根键”或“主键”,它的图标与资源管理器中文件夹的图标有点儿相像。Windows98将注册表分为六个部分,并称之为 HKEY_name,它意味着某一键的句柄。
2、key(键):它包含了附加的文件夹和一个或多个值。
3、subkey(子键):在某一个键(父键)下面出现的键(子键)。
4、branch(分支):代表一个特定的子键及其所包含的一切。一个分支可以从每个注册表的顶端开始,但通常用以说明一个键和其所有内容。
5、value entry(值项):带有一个名称和一个值的有序值。每个键都可包含任何数量的值项。每个值项均由三部分组成:名称,数据类型,数据。
6、 字符串(REG_SZ):顾名思义,一串ASCII码字符。如“Hello World”,是一串文字或词组。在注册表中,字符串值一般用来表示文件的描述、硬件的标识等。通常它由字母和数字组成。注册表总是在引号内显示字符串。
7、二进制(REG_BINARY):如 F03D990000BC ,是没有长度限制的二进制数值,在注册表编辑器中,二进制数据以十六进制的方式显示出来。
8、双 字(REG_DWORD):从字面上理解应该是Double Word ,双字节值。由1-8个十六进制数据组成,我们可用以十六进制或十进制的方式来编辑。如 D1234567 。
9、 Default(缺省值):每一个键至少包括一个值项,称为缺省值(Default),它总是一个字串。
编辑本段注册表的结构
注册表是Windows程序员建造的一个复杂的信息数据库,它是多层次式的。在不同系统上注册表的基本结构相同。其中的复杂数据会在不同方式上结合,从而产生出一个绝对唯一的注册表。
计算机配置和缺省用户设置的注册表数据在Winnt中被保存在下面这五个文件中:
DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSER.DAT。
Win95中所有系统注册信息保存在windows目录下的SYSTEM.DAT文件里。所有硬件设置和软件信息也保存在这个文件。它要比NT注册表文件简单的多,因为这里并不需要更多的控制。Win95被设计为一个网络的客户或者单独工作的系统,所以用户控制或者安全级别和NT不一样。这使得Win95注册表工作比NT更容易,所以这个文件也比较小。
Win95用户的注册数据一般被保存在windows目录下的user.dat里。如果你在控制面板|密码|用户配置文件中创建并使用多于一个用户的配置文件,每个用户就会有在\WINDOWS\Profiles\username\USER.DAT下它自己的user.dat文件。在启动时,系统将记录你的登陆,从你目录中的配置文件(USER.DAT信息)将被装入,以用来保持你自己的桌面和图标。
编辑本段控制键
在注册表编辑器中注册表项是用控制键来显示或者编辑的。控制键使得找到和编辑信息项组更容易。因此,注册表使用这些条目。下面是六个控制键 (Windows NT以前的系统)
HKEY_LOCAL_MACHINE
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA (基于Windows NT的系统没有这一项)
HKEY_USERS
HKEY_CURRENT_USER
Winnt和Win95的注册表并不兼容。从Win95向Winnt升级需要你重新安装32位应用程序,重新在桌面上创建图标,并重新建立用户环境。
通过控制键可以比较容易编辑注册表。虽然它们显示和编辑好像独立的键,其实HKEY_CLASSES_ROOT 和HKEY_CURRENT_CONFIG是 HKEY_LOCAL_MACHINE的一部分。HKEY_CURRENT_USER是HKEY_USERS的一部分。
HKEY_LOCAL_MACHINE包含了HKEY_CLASSES_ROOT和HKEY_CURRENT_CONFIG的所有内容。每次计算机启动时,HKEY_CURRENT_CONFIG和HKEY_CLASSES_ROOT的信息被映射用以查看和编辑。
HKEY_CLASSES_ROOT其实就是HKEY_LOCAL_MACHINE\SOFTWARE\Classes,但是在HKEY_CLASSES_ROOT窗编辑相对来说显得更容易和有条理。
HKEY_USERS保存着缺省用户信息和当前登陆用户信息。当一个域成员计算机启动并且一个用户登陆,域控制器自动将信息发送到HKEY_CURRENT_USER里,而且HKEY_CURRENT_USER信息被映射到系统内存中。其他用户的信息并不发送到系统,而是记录在域控制器里。
键和子键
数据被分割成多层次的键和子键,建立分层次(就象Exploer一样)结构更易于编辑。每个键有成组的信息而且根据在其中的数据类型被命名。每个键在它的文件夹图标上都有一个加号(+)标志子键说明在它下面还有更多内容的东西。当点开它的时候,文件夹的加号标志被替换成一个减号(-)标志,然后显示出下一级的子键。
所有软件,硬件,windows工作的设置都存放在HKEY_LOCAL_MACHINE。所有安全策略,用户权限和共享信息也包括在这个键中。用户权限,安全策略,共享信息可以通过Windows NT域用户管理器,Explorer和Win95中控制面板来设置。
HKEY_CLASSES_ROOT (是HKLM\\Classes的映射)
HKEY_CLASSES_ROOT包含了所有应用程序运行时必需的信息:
在文件和应用程序之间所有的扩展名和关联;
所有的驱动程序名称;
类的ID数字(所要存取项的名字用数字来代替);
DDE和OLE的信息;
用于应用程序和文件的图标;
HKEY_CURRENT_CONFIG.
HKEY_CURRENT_CONFIG是在HKEY_LOCAL_MACHINE中当前硬件配置信息的映射。如果系统只有一个配置文件,也就是原始配置,数据将一直在同样的地方。在控制面板|系统|硬件配置文件|创建一个额外的配置使额外配置信息放入HKEY_LOCAL_MACHINE。当Win95中存在多个配置文件时,当每次计算机启动时将给出一个提示让你选择一个配置文件。在Winnt中,在启动时你可以按空格键来选择上次正常启动时硬件配置文件。根据硬件配置文件选择的不同,特定的信息被映射到HKEY_CURRENT_CONFIG。
HKEY_DYN_DATA (基于Windows NT的系统没有这一项)
HKEY_DYN_DATA和其他的注册表控制键不同,因为实际上它并不被写入硬盘驱动器中。Win95的一个优点是,在系统启动时HKEY_DYN_DATA这个控制键储存收集到的即插即用信息并配置它们。它保存在内存中,Win95用它来控制硬件。因为是在内存中,所以它不从硬盘中读取,每次当你启动计算机时,配置都有可能会不一样。在启动时Win95必须计算超过1600种可能的配置。所以,如果系统改变既定的设置而没有报告给Win95那么潜在的问题就可能发生。系统大多数时间工作良好,但是并非一直如此。 在基于Windows NT的系统中取消了这一键值,而代之以HKLM\\HARDWARE,该键值在系统启动时由系统扫描硬件配置而动态创建
HKEY_USERS
HKEY_USERS仅包含了缺省用户设置和登陆用户的信息。虽然它包含了所有独立用户的设置,但在用户未登陆网络时用户的设置是不可用的。这些设置告诉系统哪些图标会被使用,什么组可用,哪个开始菜单可用,哪些颜色和字体可用,和控制面板上什么选项和设置可用。 在基于Windows NT的系统中,当用户打开该根键时里面包含如下内容:
1. .DEFAULT (缺省用户配置文件)
2. S-1-5-18 (本地系统帐户,NT AUTHORITY\\SYSTEM,所有用户帐户都由安全标识符——SID表示,下同)
3. S-1-5-19 (本地服务帐户,NT AUTHORITY\\LocalService)
4. S-1-5-19.Classes (本地服务帐户的OLE信息)
5. S-1-5-20 (网络服务帐户,NT AUTHORITY\\NETWORK SERVICE)
6. S-1-5-20.Classes (网络服务帐户的OLE信息)
7.当前登录用户的SID
8.当前登录用户的SID.Classes
七、八两项可以通过HKCU直接进入
HKEY_CURRENT_USER
用来保存当前用户和缺省用户的信息,HKEY_CURRENT_USER仅映射当前登陆用户的信息。
编辑本段各主键的简单介绍
HKEY_LOCAL_MACHINE
HKEY_LOCAL_MACHINE是一个显示控制系统和软件的处理键。HKLM键保存着计算机的系统信息。它包括网络和硬件上所有的软件设置。(比如文件的位置,注册和未注册的状态,版本号等等)这些设置和用户无关,因为这些设置是针对使用这个系统的所有用户的。
HKEY_LOCAL_MACHINE\AppEvents
为了以后在客户机上运行客户机/服务器这样的应用程序,在Win95/98中AppEvents键是空的。应用程序实际上都驻留网络服务器上,这些键会保存部分指针。
HKEY_LOCAL_MACHINE\Config
这个键保存着你计算机上所有不同的硬件设置(这些从控制面板的系统属性中硬件配置文件中可以创建)。这些配置在启动时通常被复制到HKCC。每个配置会被用一个键(比如0001或者0002等等)来保存,每个都是一个独立的配置。如果你只有一个单一的配置,那就只会有0001这个键
HKEY_LOCAL_MACHINE\Config01\Display
这个键表示显示的设置,如荧屏字体,窗体大小,窗体位置和分辨率等
一个小技巧:当设置了计算机不支持的大分辨率导致Windows不能启动时(黑屏),可以修改分辨率来解决。进入安全模式,运行regedit.exe,在这个键的Resolution键值中把数据值修改为640,480或者800,600这样的低分辨率,然后重新启动计算机即可。
HKEY_LOCAL_MACHINE\Config01\System
这个键保存着系统里打印机的信息
HKEY_LOCAL_MACHINE\Config01\System\CurrentControlSet\Control\Print\Printers
在这个键下面,有一个键是为系统上每一个打印机设置的,通过控制面板添加和删除打印机会调整这个列表
HKEY_LOCAL_MACHINE\Enum
Enum键包含启动时发现的硬件设备和那些既插即用卡的信息。Win95使用总线列举在启动时通过不同的.ini文件来检测硬件信息。那些在启动时被安装的和被检测到的硬件会显示在这里。子键包括BIOS, ESDI, FLOP, HTREE, ISAPNP, Monitor, Network, Root, SCSI, 和 VIRTUAL。子键名表示它们各自的硬件设备信息。
HKEY_LOCAL_MACHINE\Enum\BIOS
BIOS键保存着系统中所有即插即用设备的信息。它们用一套代码数列出,包括每一个键的详细说明,举例,*pnp0400是并行口LPT1的键。如果LPT1并不具备即插即用功能,它就会别列入到Enum下的Root键中
HKEY_LOCAL_MACHINE\Enum\Root
Root键包括所有非即插即用设备的信息。在这里,我们可以迅速断定哪些设备是即插即用,那些不是。比如SCSI适配器,这个设备必须符合Win95中一个键名为ForcedConfig的硬件设置,这个不会改变。
HKEY_LOCAL_MACHINE\Enum\Network
win95的网络功能在这个键有详细说明,子键包括了每个已经安装的主要的服务和协议。
HKEY_LOCAL_MACHINE\HARDWARE
hardware子键包括了两个多层的子键:DESCRIPTION键,它包含了中央处理器和一个浮点处理器的信息。还有一个设备映射键,它下面的串行键列出你所有的com端口。这个hardware键仅保存超级终端程序的信息,及数学处理器和串行口。
HKEY_LOCAL_MACHINE\Network
这个键仅保存网络登陆信息。所有网络服务细节都保存在HKEY_LOCAL_MACHINE\Enum\Network这个键中。这个键有一个子键,logon,包括了lmlogon(本地机器登陆?0=false 1=true)的值,logonvalidated(必须登陆验证),策略处理,主登陆方式(Windows登陆 ,微软网络客户方式等),用户名和用户配置。
HKEY_LOCAL_MACHINE\SECURITY
security 有两个子键,第一个是存取(它最终致使一个远程键列出网络安全资源,存取权限等)和提供(包括列出网络地址和地址服务器),这个键被保留用在以后使用高级安全功能和NT兼容性上
HKEY_LOCAL_MACHINE\SOFTWARE
这个键列出了所有已安装的32位软件和程序的.ini文件。它包括了变化,依靠软件安装。那些程序的控制功能在这里的子键中列出。多数子键简单的列出了安装软件的版本号。
我们在\Microsoft\Windows\Current Version下发现了一些有意思的设置,它有如下子键:
1.App paths: 你曾经安装过的所有32位软件的位置。
2.Applets, Compression, Controls Folder : 包括下控制面板象显示属性那样属性条的附件。
3.Detect, explorer :很多有意思的子键如Namespace keys of Desktop和My Computer----它们指出了回收站和拨号网络的CLSID行----和提示子键可以让你建立自己的提示。
4.Extensions : 一个扩展联系的列表,当前相关联的扩展名和比特定的执行文件更适合的目标类型。
5.Fonts, fontsize, FS Templates :系统属性条中所选择文件系统模板, 服务器,桌面计算机或者笔记本电脑信息。
6.MS-DOS Emulation :包括一个应用程序兼容子键 为大量过时的程序二进制键所设。
7.MS-DOS Options :在dos模式下的设置,如himem.sys,cd-roms等。
8.Network :网络驱动的配置。
9.Nls, Policies :系统管理员认为你不应该去做的事。
10.ProfileList :所有可以登陆你计算机的用户名列表。
11.在Windows启动时运行的程序的神秘之处是它们并不在开始菜单的启动文件夹中。它们在HKEY_LOCAL_MACHINE\Microsoft\Windows\CurrentVersion\下的子键中被执行。
Run : 程序在启动时运行
RunOnce : windows初始化时程序在启动时只运行一次,这个经常用在当安装软件之后需要重新启动系统的时候,所以这个键一般都是空的。
RunServices : 它就象Run一样,但是包含了“服务”,它不象一般的程序它们是比较重要的或者是“系统”程序。但是它们不是VXDs,就象McAfee或者RegServ工作一样。
RunServicesOnce : 它只运行一次,但是是“系统自身”的安装(大量的windows安装参数:通常键值包括了系统目录位置,和win95更新,可选项安装组件,和windows启动目录的子键。
注意:在很多黑客木马软件中,常常在这里添加键值(一般是在Run中),这样使得木马软件可以随着windows启动而启动并且很隐秘。在这里可以查看不正常的启动项和去掉无用的运行程序(比如我就很不喜欢超级解霸的自动伺服器,在这里可以去掉它)。
12.SharedDLLs:共享DLL的列表,每一个都给出了在一个不可知系统的一个数字等级。
13.Shell Extensions:列出了“被认可的”OLE注册条,和相应的CLSID连接。
14.ShellScrap :这个包含了一个PriorityCacheformats的子键,它包括了一个空的有限值,它更象过去SmartDrive命令行参数的派生。
15.Time Zones : 主键值是你现在的时区;子键定义了所以可能的时区。
16.Uninstall:这个保存了程序在添加/删除程序对话框的显示;子键包含了指向反安装程序的路径。和安装向导相似.......)winlogon(包含了合法登陆布告的文本句)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
这个子键包括设备驱动和其他服务的描述和控制。不同于windows nt,win95只包括限制驱动的控制设置信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
这个子键包括了win95控制面板中的信息。不要编辑这些信息,因为一些小程序的改变在很多地方,一个丢失的项会使这个系统变的不稳定
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
这个键包括了所有win95的标准服务。所有被添加的服务和设备,每个标准的服务键包括了它的设置和辨认设置。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Arbitrators
atbitrators键包括了当两个设备共同占用同样的设置需要解决的信息。四个子键包括了内存地址,冲突,DMA,I/O端口冲突和IRQ冲突。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Class
class键包括了所有win95支持的设备classes控制,这些和你在添加新硬件出现的硬件组很类似,还包括了这些设备如何安装的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\inetaccs
这个键包括了关于这个系统变化的ie附件的可用性,它仅在你安装过ie2。0或者更高版本才出现。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSNP32
msnp32描述了客户机如何在microsoft网络中实现功能,它包括了认证过程和认证者的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NWNP32
nenp32键描述了windows客户如何在netware网络中工作功能,它包括了关于认证过程和证明者的信息。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-10-24
存储计算机的配置信息的数据容器.
编辑本段如何打开注册表
Win98/98SE/Me
运行中输入regedit.exe 无权限限制
Win2000/XP
1·运行中输入regedit.exe
2.运行中输入regedit32.exe 第一种方法打开的注册表编辑器和Win98下的一样,而且功能相同,而使用第二种方法打开的注册表编辑器则可以方便的设置权限,建议网络管理员使用第2种方法打开注册表编辑器修改需要修改的权限设置部分以免被他人恶意修改。
Windows Vista
1.在开始菜单搜索框中输入regedit并按回车键.(需要管理员权限)
2.在运行中输入regedit.exe(需要管理员权限)
第2个回答  2008-10-24
存储计算机的配置信息的数据容器.

参考资料:http://baike.baidu.com/view/979.html?wtp=tt