IT技术互动交流平台

注册表基础知识介绍

作者:佚名  来源:IT165收集  发布日期:2016-05-31 22:33:05

注册表是一个庞大的数据库,用来存储计算机软硬件的各种配置数据。它是针对32位硬件、驱动程序和应用设计的,考虑到与16位应用的兼容性,在32位系统中仍提供*.ini文件配置方式,一般情况下,32位应用最好不使用*.ini文件。
 注册表中记录了用户安装在计算机上的软件和每个程序的相关信息,用户可以通过注册表调整软件的运行性能,检测和恢复系统错误,定制桌面等。用户修改配置,只需要通过注册表编辑器,单击鼠标,即可轻松完成。系统管理员还可以通过注册表来完成系统远程管理。因而用户掌握了注册表,即掌握了对计算机配置的控制权,用户只需要通过注册表即可将自己计算机的工作状态调整到最佳。
 Windows注册表也是帮助Windows操作系统控制硬件、软件、用户环境和操作系统界面的数据信息文件,注册表文件被包含在Windows操作系统目录下的两个文件:system.dat和user.dat。通过Windows操作系统目录下的regedit.exe程序能够存取注册表数据库。在Windows 95以前的更早版本中,这些功能是靠win.ini,system.ini和其他的应用程序有关联的.ini文件实现的。
 在windows操作系统序列里,system.ini和win.ini这两个文件包含了操作系统的所有控制功能和应用程序的信息,system.ini管理计算机硬件,win.ini管理桌面和应用程序。所有驱动、字体、设置和参数会保存在.ini文件中,任何新程序都会被记录在.ini文件里。这些记录会在程序代码中被引用。因为受win.ini和system.ini文件大小的限制,程序员添加辅助的.INI文件以用来控制更多的应用程序。举例来说,微软的Word有一个word.ini文件,它包含着选项、设置、缺省参数和其他关系到Word运行正常的信息。在system.ini和win.ini中只需要指出word.ini的路径和文件名即可。
 在还是使用Dos和Win3.x操作系统的时代里,大部分的应用程序都采用了ini文件(初始化文件)来保存一些配置信息,如设置路径,环境变量等。system.ini和win.ini控制着所有windows和应用程序的特征和存取方法,它在少数的用户和少数应用程序的环境中工作的很好。随着应用程序的数目的不断增加和复杂性的日益增强,则需要在.ini文件中添加更多的参数项。这样下来,在一个变化的环境中,在应用程序安装到系统中后,每个人都会更改.ini文件。然而,几乎没有一个人在删除应用程序后删除.ini文件中的相关设置,所以system.ini和win.ini这个两个文件会变的越来越大。每次增加的内容会导致系统性能越来越慢,在每次应用程序的升级都出现类似的难题:升级后会增加更多的参数项但是从来不去掉旧的参数设置。而且还有一个明显的问题,一个.ini文件的最大尺寸是64KB。为了能够解决这个问题,软件商自己开始支持自己的.ini文件,然后指向特定的ini文件,这样下来多个.ini文件影响了系统正常的存取级别设置。
 注册表最初被设计为一个应用程序的数据文件相关参考文件,最后扩展成对32位操作系统和应用程序包括了所有功能下的东西。注册表是一套控制操作系统外表和如何响应外来事件工作的文件。这些“事件”的范围从直接存取一个硬件设备到接口,如何响应特定用户到应用程序如何运行等。注册表因它的目的和性质变的很复杂,它被设计为专门的针对32位应用程序工作,文件的大小被限制在大约40MB。利用一个功能强大的注册表数据库来统一集中地管理系统硬件设施,软件配置等信息,从而方便了管理,增强了系统的稳定性。
 综合以上可知,注册表(Registry)是Windows9x/Me/NT/2000操作系统、硬件设备以及客户应用程序得以正常运行和保存设置的核心“数据库”;也可以说是一个非常巨大的树状分层结构的数据库系统。它记录了用户安装在机器上的软件和每个程序的相互关联信息;它包含了计算机的硬件配置,包括自动配置的即插即用的设备和已有的各种设备说明、状态属性以及各种状态信息和数据。
 注册表产生的背景
 在上个世纪90年代,计算机技术得到了飞速的发展,网络及操作系统的处理能力得到了不断的增强,新的可用计算机处理的信息也是接连不断,但是为了能更好地满足用户的需求,软件和硬件的开放性愈来愈强,大家能够按照自己的意志随意定制自己的系统。
 操作系统的一个特点就是允许用户按照自己的要求对计算机系统的硬件和软件进行各种各样的配置。早期的图形操作系统,如Win3.x中,对软硬件工作环境的配置是通过对扩展名为.ini的文件进行修改来完成的,但INI文件管理起来很不方便,因为每种设备或应用程序都得有自己的INI文件,并且在网络上难以实现远程访问。
 为了克服上述这些问题,在Windows 95及其后继版本中,采用了一种叫做“注册表”的数据库来统一进行管理,将各种信息资源集中起来并存储各种配置信息。按照这一原则,Windows各版本中都采用了将应用程序和计算机系统全部配置信息容纳在一起的注册表,用来管理应用程序和文件的关联、硬件设备说明、状态属性以及各种状态信息和数据等。
 注册表具有如下的一些特点:
 1.注册表能够对硬件、系统的配置参数、各应用程序和各设备的驱动程序进行跟踪配置,使得修改某些设置后不再重新启动成为可能。
 2.在注册表中登录的硬件某些数据可以支持高版本Windows即插即用的特性。每当Windows检测到机器上有新的设备时,它就把有关数据存储到注册表中,另外,还可以避免新设备与原有设备间的资源冲突。

 3.系统管理员和普通用户可以通过注册表编辑器在网络上检查系统的设置,使得远程管理能够实现。
 在现在流行的WINDOWS操作系统便是能够让广大用户对自己的操作系统进行灵活配置并满足各种特定的需求。在以前很早的WINDOWS 3.x操作系统中,操作系统的配置信息都保存在.ini的文件中,例如SYSTEM.INI和WIN.INI,在系统初始化过程中打开这些文件,可对系统的软硬件进行各种各样的设置。在这几年来,在同一台计算机上配置的硬件及所要运行的应用程序越来越多,可安装的应用程序也在不断增加,而在系统配置文件中需存储的配置信息自然也会随着增加。这在某种程度上说是对系统配置文件的大小是个挑战,同时也在增加系统配置文件的管理难度。对于这种情况,各应用厂家或硬件提供商开始提供自己的*.ini文件,每个应用程序或硬件设置都带有自己的配置文件。随之带来的问题也就不用细说了,用户需要管理各种各样的*.ini文件,这对用户来说是非常的困难,况且这些文件都是存储在本机上,要实现远程管理是不可能的。为了能够解决这些问题,在后续的WINDOWS 95、98、NT和2000操作系统中,提供了一种管理配置信息的方法,也就是注册表的功能。
 Windows的注册表实际上是一个数据库,它包含了五个方面的信息,即PC的全部硬件、软件设置、当前配置、动态状态及用户特定设置等内容,主要储存在C:windows下的system.dat和user.dat两个文件中。由此可见注册表是Windows系统的重中之重,稍有闪失,后果将是十分的严重。
 在注册表中记录着用户安装在计算机上的软件和每一个程序的各种信息,用户能够通过注册表调整软件的运行性能。用户也能够修改配置,只需要通过注册表编辑器就可以完成。系统管理员还可以通过注册表来完成系统的远程管理。因而用户掌握了注册表,就可以掌握对计算机配置的控制权,只需通过注册表即可将自己计算机的工作效率调整至最佳状态
 如何访问注册表
 登陆注册表编辑器其实是很容易的,打开"开始"菜单,点击"运行"项,然后在"运行"框中输入命令regedit就可以进入注册表编辑器了。
 而注册表文件是以二进制方式存储的,所以不能使用传统的文本编辑器读写注册表中的数据。为了方便灵活地管理注册表中的数据。
 如果在WINDOWS 95/98操作系统中,我们可以用REGEDIT.EXE访问注册表编辑器,而在WINDOWS NT/2000操作系统中也提供了REGEDIT.EXE和REGEDIT32.EXE两个版本的编辑器。对大多数的使用者来讲,两者在基本上是一样的,只是设计的侧重点不同罢了。REGEDIT32.EXE编辑器重点对安全程度要求较高的硬件数据进行编辑操作,而REGEDIT.EXE主要是侧重向用户使用的方便灵活方面进行了改进。
 注册表的基本结构介绍
 不论是WINDOWS 95/98操作系统,还是WINDOWS NT/2000操作系统,其注册表的结构大体上是基本相同的,都是一种层叠式结构的复杂数据库,由键、子键、分支、值项和缺省值几部分组成。
 注册表包括以下的5个主要键项:
 1.HKDY_CLASSES_ROOT:包含启动应用程序所需的全部信息,包括扩展名、应用程序与文档之间的关系、驱动程序名、DDE和OLE信息,类ID编号和应用程序与文档的图标等。
 2.HKEY_CURRENT_USER:包含当前登录用户的配置信息,包括环境变量、个人程序、桌面设置等。
 3.HKEY_LOCAL_MACHINE:包含本地计算机的系统信息,包括硬件和操作系统信息,如设备驱动程序,安全数据和计算机专用的各类软件设置信息。
 4.HKEY_USERS:包含计算机的所有用户使用的配置数据,这些数据只有在用户登录在系统上时方能访问。这些信息告诉系统当前用户使用的图标、激活的程序组、开始菜单的内容以及颜色、字体等。
 5.HKEY_CURRENT_CONFIG:存放当前硬件的配置信息,其中的信息是从HKEY_LOCAL_MACHINE中映射出来的。
 具体的说明请见如下的介绍:
 一、HKEY_CLASSES_ROOT根键
 HKEY_CLASSES_ROOT根键中记录的是Windows操作系统中所有数据文件的信息内容,主要记录了不同的文件的文件名后缀和与之对应的应用程序。当用户双击一个文档时,系统可以通过这些信息启动相应的应用程序。
 HKEY_CLASSES_ROOT根键是由多个子键组成的,可分为两种:一种是已经注册的各类文件的扩展名,另一种是各种文件类型的有关信息。由于该根键包含的子键数目最多,下面就用Avifile子键简要介绍它下面的子键的含义:
 1.CLSID子键
 Avifile子键下的第一个子键是“CLSID”,即“分类标识”,在选中它时可以看到其默认的键值。Windows系统可用这个类标识号来识别相同类型的文件。在HKEY_CLASSES_ROOT主键下也有一个子键“CLSID”,其中包含了所有注册文件的类标识。
 2.Compressors 子键
 这个分支下面的两个子键auds和vids分别给出了音频和视频数据压缩程序的类标识,通过这些类标识可找出相应的处理程序,
 (1) auds 子键
 该子键位于HKEY_CLASSES_ROOTavifileCompressorsauds分支中,用于设置音频数据压缩程序的类标识。
 (2) vids子键
 该子键位于HKEY_CLASSES_ROOTavifileCompressors ids分支上,用于设置视频数据压缩程序的类标识。
 3.DefaultIcon 子键
 该子键用于设置avifile的缺省图标。
 4.RIFFHandlers子键
 该子键用于设置RIFF文件的句柄。在该子键下包含了AVI和WAVE两个文件的类标识。
 (1) AVI子键
 这个子键位于HKEY_CLASSES_ROOTavifileRIFFHandlersAVI分支上,用于设置AVI文件的类标识。
 (2) WAVE子键
 该子键位于HKEY_CLASSES_ROOTavifileRIFFHandlersWAVE分支上,用于设置WAVE文件的类标识。

 

 5.protocol子键
 该分支下的子键中包含了执行程序和编辑程序的路径和文件名,
 (1) StdExecute子键
 该子键具有如下子键结构:
 HKEY_CLASSES_ROOTavifileprotocolStdExecuteServer,它用于指定avifile的标准执行程序。
 (2) StdFileEditing子键
 该子键位于HKEY_CLASSES_ROOTavifileprotocolStdFileEditing分支上,用于设置标准文件编辑程序。
 在这个子键下面有三个子键:
 ①Server子键
 该子键位于HKEY_CLASSES_ROOTavifileprotocolStdFileEditingServer分支上,用于指定编辑程序。
 ②PackageObjects子键
 该子键位于HKEY_CLASSES_ROOTavifileprotocolStdFileEditing
 PackageObjects分支上,用于指定打开avifile的包对象编辑程序。
 ③verb子键
 该子键位于HKEY_CLASSES_ROOTavifileprotocolStdFileEditing erb分支上,用于设置打开标准avi文件编辑程序时的工作状态。
 另外,还有“Handler”和“Handlers”两个子键。
 6.Shell 子键
 该子键位于HKEY_CLASSES_ROOTavifileShell分支上,用于设置视频文件的外壳。
 (1) Open子键
 该子键具有如下子键结构:
 HKEY_CLASSES_ROOTavifileShellOpenCommand
 它用于设置“打开”avi文件的程序。
 (2) Play子键
 该子键具有如下子键结构:
 HKEY_CLASSES_ROOTavifileShellPlayCommand,该键指定用于“播放”命令的程序。
 7.shellex子键
 该子键位于HKEY_CLASSES_ROOTavifileshellex分支上。该分支的子键中包含了视频文件的外壳扩展,在该子键下面有一个PropertySheetHandlers子键,用于设置“视频文件属性页”(Avi Page)的文件句柄。在PropertySheetHandlers 子键下面还有一个AviPage 子键,用于设置AviPage的类标识。
 二、HKEY_CURRENT_USER根键
 HKEY_CURRENT_USER根键中保存的信息(当前用户的子键信息)与HKEY_USERS.Default分支中所保存的信息是一样的。任何对HKEY_CURRENT_USER根键中的信息的修改都会导致对HKEY_USERS.Default中子键信息的修改。
 三、KEY_LOCAL_MACHINE
 HKEY_LOCAL_MACHINE根键中存放的是用来控制系统和软件的设置。由于这些设置是针对那些使用Windows系统的用户而设置的,是一个公共配置信息,所以它与具体用户没有多大关系。这个根键下面包含了五个子键:
 1.HARDWARE子键
 该子键包含了系统使用的浮点处理器、串口等有关信息。在它下面存放一些有关超文本终端、数字协处理器和串口等信息。HARDWARE子键又包括三个子键:
 DESCRIPTION:用于存放有关系统信息;
 DEVICEMAP:用于存放设备映像;
 RESOURCEMAP;
 2.SAM子键
 该子键已经被系统保护起来,不可能看到里面的内容。
 3.SECURITY子键
 这个子键位于HKEY_LOCAL_MACHINESecurity分支上,该分支只是为将来的高级功能而预留的。
 4.SOFTWARE子键
 这个子键中保留的是所有已安装的32位应用程序的信息。各个程序的控制信息分别安装在相应的子键中。由于不同的机器安装的应用程序互不相同,因此这个子键下面的子键信息会有很大的差异。
 5.SYSTEM子键
 该子键存放的是启动时所使用的信息和修复系统时所需的信息,其中包括各个驱动程序的描述信息和配置信息等。System子键下面有一个CurrentControlSet子键,系统在这个子键下保存了当前的驱动程序控制集的所有信息。
 四、HKEY_USERS根键
 HKEY_USERS根键中保存的是默认用户(.DEFAULT)、当前登录用户与软件(Software)的信息。它的下面有三个子键:.DEFAULT子键、S-1-5-21-1229272821-436374067-1060284298-1000和S-1-5-21-1229272821-436374069-1060284298-1000_Classes三个子键,其中最重要的是.DEFAULT子键。
 .DEFAULT子键的配置是针对未来将会被创建的新用户的。新用户根据默认用户的配置信息来生成自己的配置文件,该配置文件包括环境、屏幕、声音等多种信息。
 .DEFAULT下有九个子键,介绍其中的几个:
 1.AppEvents子键
 它包含了各种应用事件(包括事件名称、描述以及各种系统功能的声音)的列表。其下面又包含两个子键EventLabels(按字母顺序列表)和Schemes(按事件分类列表)。
 2.Control Panel子键
 它所包含的内容与桌面、光标、键盘和鼠标等设置有关。改变它们的键值就将改变对应的工作环境或参数。
 3.keyboard layout子键
 该子键位于HKEY_USERS.DEFAULTkeyboard layout分支上,用于设置键盘的布局,如键盘语言的加载顺序等。该子键下面提供有如下三个子键:
 preload子键
 (1)该子键位于HKEY_USERS.DEFAULTkeyboard layoutpreload分支上,用于设置键盘语言的加载次序。Preload子键下面的子键个数与系统中所安装的键盘语言有关。
 (2)Substitutes子键
 该子键位于HKEY_USERS.DEFAULTkeyboard layoutsubstitutes分支,用于设置可替换的键盘语言布局。在通常情况下,此子键的设置是空的。
 (3)Toggle子键
 该子键位于HKEY_USERS.DEFAULTkeyboard layout oggle分支上,用于选择键盘语言。
 五、HKEY_CURRENT_CONFIG根键
 如果你在Windows中设置了两套或者两套以上的硬件配置文件(Hardware Configuration file),则在系统启动时将会让用户选择使用哪套配置文件。而HKEY_CURRENT_CONFIG根键中存放的正是当前配置文件的信息。
 注册表都能做些什么
 注册表在WINDOWS操作系统中的作用和地位不言而喻,注册表就是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件。16位驱动在Windows NT下无法工作,所以所有设备都通过注册表来控制,一般这些是通过BIOS来控制的。在Win9x下,16位驱动会继续以实模式方式设备工作,它们使用system.ini来控制。16位应用程序会工作在NT或者Win9x 下,它们的程序仍然会参考win.ini和system.ini文件获得信息和控制。

 

 如果在没有注册表的情况下,操作系统将不会获得必须的信息来运行和控制附属的设备和应用程序及正确响应用户的输入信息。
 在系统中注册表是一个记录32位驱动的设置和位置的数据库。当操作系统需要存取硬件设备,它使用驱动程序,甚至设备是一个BIOS支持的设备。无BIOS支持的设备安装时必须需要驱动,这个驱动是独立于操作系统的.
 当用户准备运行一个应用程序,注册表提供应用程序信息给操作系统,这样应用程序可以被找到,正确数据文件的位置被规定,其他设置也都可以被使用。
 注册表保存关于缺省数据和辅助文件的位置信息、菜单、按钮条、窗口状态和其他的可选项。它同样也保存了安装信息(比如说日期),安装软件的用户,软件版本号和日期,序列号等。根据安装软件的不同,它包括的信息也将有所不同。
 然而,一般来说,注册表控制所有32位应用程序和驱动程序的设置,控制的方法主要是基于用户和计算机的,而不依赖于应用程序或驱动程序,每个注册表的参数项控制了用户的功能或计算机功能。用户功能可能包括了桌面外观设置和用户目录等。所以,计算机功能和安装的硬件和软件有关,对所以用户来说都是公用的。
 有些程序功能对用户有影响,有些设置是作用于计算机而不是为个人设置的,类似的,驱动程序可能是用户指定的,但在很多时候,它们在计算机中是通用的。
 计算机相关控制项基于计算机名,这与登陆用户没有什么大的关系。然而,运行程序图标依赖于网络上登陆的用户。网络协议可用性和优先权基于计算机,但是与当前的连接信息和用户信息是相关的。
 假如没有了注册表,Win9x和Windows NT 就不太可能存在。它实在太复杂了,以致于用过去的.ini文件无法控制,它的扩展能力需要几乎无限制的安装和使用应用程序,注册表实现了它。然而,注册表比.ini文件更复杂,理解它如何工作,它做什么和如何用它来做是有效管理操作系统的关键所在。
 在系统中注册表控制所有32位应用程序和它们的功能及多个应用程序的交替,它也控制所有的硬件和驱动程序。虽然大多数可以通过控制面板来安装和设置,而理解注册表仍是做Windows NT和Win9x系统管理基本常识内容。
 概括起来,注册表中存放着各种参数,直接控制着Windows的启动、硬件驱动程序的装载以及一些Windows应用程序的运行,从而在整个系统中起着核心作用。它包括以下的主要内容:
 (1)软、硬件的有关配置和状态信息,注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据。
 (2)在联网状态下的计算机的整个系统的设置和各种默认设置,文件扩展名与应用程序的关联,硬件部件的描述、状态和属性。
 (3)性能记录和其它底层的系统状态信息和其它的一些数据信息。
 一旦注册表文件受到了破坏,轻者使Windows的启动过程出现异常,重者可以导致整个系统的完全瘫痪以至不能正常运行。因此正确地认识、使用,特别是及时备份注册表是相应有必要的,当注册表出现问题时要及时恢复注册表,对Windows的使用用户来说是非常重要的。
 注册表文件的结构
 注册表可以说是一个非常宠大的数据库,其中的所有数据是以二进制的形式存储的,这个数据库中对应着的是多个二进制文件,它不再像*.ini文件可以用文本编辑器打开读写了,注册表文件只能通过注册表编辑器读写。WINDOWS 95/98系统的注册表文件由SYSTEM.DAT和USER.DAT两个文件组成,而WINDOWS NT和WINDOWS 2000系统是多用户操作系统,其注册表文件比WINDOWS 95/98要复杂得多,但按功能来分,也是由系统注册表文件和用户注册表文件两类组成的。下面就详细的介绍一下各种不同系统的注册表文件。
 1.WINDOWS 95/98 操作系统的注册表文件
 WINDOWS 95/98系统的注册表文件由SYSTEM.DAT和USER.DAT两个文件所组成的:
 SYSTEM.DAT:包含了计算机特定的配置数据,如硬件和设备驱动程序的有关信息。
 USER.DAT:包含了用户特定的数据,如桌面设置信息。
 备份文件SYSTEM.DAT和USER.DAT:它们是WINDOWS 95系统对SYSTEM.DAT和USER.DAT的备份文件。WINDOWS 95系统是用注册表检查器对注册表进行备份的,结果存为CAB类型的文件。
 2.WINDOWS NT操作系统的注册表文件
 WINDOWS NT注册表文件分为系统文件和用户文件两类。系统设置和缺少用户配置数据存放在系统WINNTSYSTEM32CONFIG文件夹下的7个文件DEFAULT、SAM、SECURITY、SOFTWARE、USERDIFR和NTUSER.DAT里,其中每个用户的配置信息存放在系统WINNTProfiles用户名NTUSER.DAT文件中。CONFIG文件夹下的其他文件是注册表的附属文件,*.LOG和*.EVT文件是注册表时间查看器文件,*.SAV是上一次正确引导的部分配置数据文件的备份文件。
 3.WINDOWS 2000操作系统的注册表文件
 注册表文件是Windows 2000操作系统的核心与灵魂,存储和管理着整个操作系统、应用程序的关键数据,是整个操作系统中最重要的一部分。
 WINDOWS 2000是Microsoft公司新推出的WINDOWS操作系统。WINDOWS 2000系统是一个类似于家族式的系统,它可以满足不同用户的需要。该系统是在WINDOWS NT操作基础上设计开发的。其家族成员包括WINDOWS 2000 Professional、WINDOWS 2000 Server、WINDOWS 2000 Advanced Server和WINDOWS 2000 Datacenter Server。

 

 WINDOWS 2000 Professional是WINDOWS NT WorkStation的新版本,该系统适用于各种桌面计算机和便携机,较WINDOWS NT WorkStation具有更高的安全性、稳定性以及良好的系统性能和更强的系统管理功能。
 WINDOWS 2000 Server与WINDOWS NT 5.0的一个新的名称,它以WINDOWS NT 4.0为基础设计开发发,是一个服务器网络操作系统。WINDOWS 2000 Server提供了新的活动目录(ActiveDirectory)服务技术,支持2路对称多处理器系统,适合中小型企业应用开发、WEB服务器、工作组及部门使用。
 WINDOWS 2000 Advanced Server是WINDOWS NT 5.0Enterprise Edition的新名称。它除具有WINDOWS 2000 Server系统所具有的所有功能外,还提供了群集、负载平衡和对称多处理机功能,可支持4路对称殉处理器系统。
 WINDOWS 2000 Datacenter Server是一个新的操作系统,它是WINDOWS 2000操作系统家族中功能最为强大的服务器系统,可支持16路对称多处理器系统,物理内存最大可达64GB,该系统包括了群集、负载平衡等以上系统的特性,同时还对大型数据仓库、经济分析、科学和工程模拟、联机交易服务进行了专业优化。
 WINDOWS 2000操作系统系列均是以WINDOWS NT内核为基础开发设计的,在WINDOWS 2000系统家族中不再沿用WINDOWS 95/98桌面系统的注册表结构,其注册表结构都与WINDOWS NT系统注册表结构相似,且文件结构和数据存储、访问方式均采用WINDOWS NT 4.0所提供的方式。
 WINDOWS 2000的存储方式也可以分为系统文件和用户文件两种。系统设置和缺省用户配置数据存放在系统系统文件夹SYSTEM32CONFIG文件夹下的6个文件DEFAULT、SAM、SECURITY、SOFTWARE、USERDIFF和SYSTEM中。每个用户的配置信息存放在系统所在磁盘的Documents and Setting文件夹中。
 注册表与其它系统组件的关系
 在注册表中保存着的所有硬件设备驱动程序的存放位置和应用程序与系统相关的各种信息。系统是通过注册表对硬件驱动和应用程序进行支持管理的。
 每次用户在安装应用程序或添加硬件的时候,所用的安装程序会向注册表添加新的配置信息。在系统启动的时候,还需要加载所有的硬件设备驱动程序。操作系统就是通过注册表查找所有硬件设备的驱动程序,然后将其载入系统中,到此,被载入的驱动程序一直运行,直到重新启动操作系统。
 当用户需要运行应用程序的时候,注册表会提供给系统该应用程序的相关信息,系统可以此将注册表提供的与该应用程序相关的信息查找到应用程序,之后完成与该应用程序相关设置的检查工作并开始运行这个应用程序。
 如何备份注册表
 采用注册表来管理系统配置,主要是为了提高系统的稳定性,平时操作系统出现的一些问题,诸如系统无法启动、应用程序无法运行、系统不稳定等情况,很多都是因为注册表出现错误而造成的,而通过修改相应的数据就能解决这些问题,所以,掌握如何正确备份、恢复注册表的方法,可以让每一个用户更加得心应手地使用自己的电脑。
 一、利用注册表编辑器手工备份注册表
 注册表编辑器(Regedit)是操作系统自带的一款注册表工具,通过它就能对注册表进行各种修改。当然,"备份"与"恢复"注册表自然是它的本能了。
 (1)通过注册表编辑器备份注册表
 由于修改注册表有时会危及系统的安全,因此不管是WINDOWS 98还是WINDOWS 2000甚至WINDOWS XP,都把注册表编辑器"藏"在了一个非常隐蔽的地方,要想"请"它出山,必须通过特殊的手段才行。点击"开始"菜单,选择菜单上的"运行"选项,在弹出的"运行"窗口中输入"Regedit"后,点击"确定"按钮,这样就启动了注册表编辑器。
 点击注册表编辑器的"注册表"菜单,再点击"导出注册表文件"选项,在弹出的对话框中输入文件名"regedit",将"保存类型"选为"注册表文件",再将"导出范围"设置为"全部",接下来选择文件存储位置,最后点击"保存"按钮,就可将系统的注册表保存到硬盘上。
 完成上述步骤后,找到刚才保存备份文件的那个文件夹,就会发现备份好的文件已经放在文件夹中了。
 (2)在DOS下备份注册表
 当注册表损坏后,WINDOWS(包括"安全模式")无法进入,此时该怎么办呢?在纯DOS环境下进行注册表的备份、恢复是另外一种补救措施,下面来看看在DOS环境下,怎样来备份、恢复注册表。
 在纯DOS下通过注册表编辑器备份与恢复注册表前面已经讲解了利用注册表编辑器在WINDOWS环境下备份、恢复注册表,其实"Regedit.exe"这个注册表编辑器不仅能在WINDOWS环境中运行,也能在DOS下使用。
 虽然在DOS环境中的注册表编辑器的功能没有在WINDOWS环境中那么强大,但是也有它的独到之处。比如说通过注册表编辑器在WINDOWS中备份了注册表,可系统出了问题之后,无法进入WINDOWS,此时就可以在纯DOS下通过注册表编辑器来恢复注册表。
 应该说在DOS环境中备份注册表的情况还是不多见的,一般在WINDOWS中备份就行了,不过在一些特殊的情况下,这种方式就显得很实用了。

 

 进入DOS后,再进入C盘的WINDOWS目录,在该目录的提示符下输入"regedit"后按回车键,便能查看"regedit"的使用参数。
 通过"Regedit"备份注册表仍然需要用到"system.dat"和"user.dat"这两个文件,而该程序的具体命令格式是这样的:
 Regedit /L:system /R:user /E filename.reg Regpath
 参数含义:
 /L:system指定System.dat文件所在的路径。
 /R:user指定User.dat文件所在的路径。
 /E:此参数指定注册表编辑器要进行导出注册表*作,在此参数后面空一格,输入导出注册表的文件名。Regpath:用来指定要导出哪个注册表的分支,如果不指定,则将导出全部注册表分支。在这些参数中,"/L:system"和"/R:user"参数是可选项,如果不使用这两个参数,注册表编辑器则认为是对WINDOWS目录下的"system.dat"和"user.dat"文件进行*作。如果是通过从软盘启动并进入DOS,那么就必须使用"/L"和"/R"参数来指定"system.dat"和"user.dat"文件的具体路径,否则注册表编辑器将无法找到它们。
 比如说,如果通过启动盘进入DOS,则备份注册表的命令是"Regedit /L:C:windows/R:C:windows/e regedit.reg",该命令的意思是把整个注册表备份到WINDOWS目录下,其文件名为"regedit.reg"。而如果输入的是"regedit /E D: egedit.reg"这条命令,则是说把整个注册表备份到D盘的根目录下(省略了"/L"和"/R"参数),其文件名为"Regedit.reg"。
 (3)用注册表检查器备份注册表
 在DOS环境下的注册表检查器Scanreg.exe可以用来备份注册表。
 命令格式为:
 Scanreg /backup /restore /comment
 参数解释:
 /backup用来立即备份注册表
 /restore按照备份的时间以及日期显示所有的备份文件
 /comment在/restore中显示同备份文件有关的部分
 注意:在显示备份的注册表文件时,压缩备份的文件以.CAB文件列出,CAB文件的后面单词是Started或者是NotStarted,Started表示这个文件能够成功启动Windows,是一个完好的备份文件,NotStarted表示文件没有被用来启动Windows,因此还不能够知道是否是一个完好备份。
 比如:如果我们要查看所有的备份文件及同备份有关的部分,命令如下:Scanreg /restore /comment
 注册表完全恢复方法
 注册表是一个非常庞大的数据库,用来存储计算机软硬件的各种配置数据信息。它针对32位硬件、驱动程序和应用设计的,考虑到与16位应用的兼容性,在32位系统中提供*.ini文件配置方式,一般情况下,32位应用最好不使用*.ini文件。
 当您的机器出现下列的情况时,有可能就是您的计算机注册表出现了问题,请广大用户要及早提高警惕,以防注进一步使注册表文件受损,而导致出现更加严重的后果。
 1、“开始”菜单或“控制面板”项处于不可激活状态。
 2、Windows系统不能启动或只能以安全模式及MS-DOS模式启动。
 3、当使用过去正常工作的程序时,显示“找不到*.dll”的提示或其它表示程序部分丢失和不能定位的信息。
 4、应用程序提示“找不到服务器上的嵌入对象”或“找不到OLE控件”的错误信息。
 5、Windows给出“找不到应用程序打开这种类型的文档”信息,即使安装了正确的应用程序且文档的扩展名(或文件类型)没有错误。
 6、网络连接不通或出现在“拨号网络”中或“控制面板”的“网络”中。
 7、在往常能正常工作的硬件设备不能起作用或不再出现在“设备管理器”的中。
 8、Windows系统显示“注册表损坏”的信息。
 9、系统启动后,系统调用注册表扫描工具对注册表文件进行检查,然后提示当前注册表已损坏,将用注册表的备份文件进行修复,并要求重新启动系统。而上述过程往往要重复数次才能进入系统。此时的注册表并没损坏,倒是你的内存条或硬盘要好好检查一下,这是硬件故障造成的假象。
 以上是注册表损坏的症状,除最后一项外,其它的都是可以简单修复的,前提是有注册表文件备份。
 其实注册表是伴随着Windows 95*作系统的出现而最终出现在我们面前的,它早就在NT中担当起了不可替代的作用。应用注册表来管理系统配置,主要是为了提高整个系统的稳定性。而当系统出现了一些问题(如无法启动、应用程序无法运行、系统工作不正常等),大多数情况下都是因为注册表文件出现了错误而造成的,通过修改相应的错误数据就能使得Windows正常工作了,但是孰不知注册表的结构真是太复杂,不正确的修改往往会带来更坏的结果。下面我们简要介绍一下如何正确地恢复注册表:
 (1)通过注册表编辑器恢复注册表
 首先,启动注册表编辑器,然后点击"注册表"菜单,接着选择"引入注册表文件"选项,在弹出的"搜寻"窗口中找到先前备份好的注册表文件,用鼠标选中备份文件后,点击"打开"按钮,程序开始将备份文件导入注册表,完成后程序会提示"输入成功"。
 点击"确定"后,再重新启动电脑,注册表就恢复到了备份时的状态。
 通过注册表编辑器备份、恢复注册表的*作非常简单,而且不管是WINDOWS 9X、还是WINDOWS 2000/XP,都自带了这款工具软件。只要能够进入WINDOWS(安全模式也行),就能通过注册表编辑器对注册表进行备份、恢复,这项功能对于广大初学者而言,体贴而又周到。
 (2)在DOS下恢复注册表
 在DOS环境下通过注册表编辑器恢复注册表是非常实用的功能,而实际上在DOS下的*作也并不复杂。
 进入DOS环境,进入C盘,然后再输入"cd windows"命令进入Windows目录。接着在Windows提示符下输入"regedit /c d: egedit.reg",按回车键后开始恢复注册表,等待片刻,当系统提示"Importing file(100% complete)"时,就表示注册表恢复成功,重新启动电脑即可。
 (3)用注册表检查器
 在DOS环境下的注册表检查器Scanreg.exe可以用来恢复注册表,如果注册表有问题,也可以用Scanreg来修复,命令如下:Scanreg /fix。
 

 

 

Tag标签: 注册表   基础知识  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规