Chinaunix首页 | 论坛 | 博客
  • 博客访问: 573610
  • 博文数量: 609
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 4995
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-17 13:59
文章分类

全部博文(609)

文章存档

2011年(1)

2008年(608)

我的朋友

分类:

2008-10-17 14:17:39


   NT注册表的组成与分析
  
  和9x一样,Windows NT也有注册表。注册表是保存系统配置的重要数据库,不过,与Windows 9x相比,它只包含五个部分:
  
  (1)HKEY-LOCAL-MACHINE:用于保存本机系统的信息,包含硬件与操作系统的数据,如驱动程序、系统配置信息等;
  
  (2)HKEY-CLASS-ROOT:用于保存与关联有关的信息;
  
  (3)HKEY-CURRENT-CONFIG:保存与当前的硬件配置文件有关的数据;
  
  
  (4)HKEY-CURRENT-USER:保存与当前登录的用户有关的环境设置的数据,包含桌面设置、网络连接等;
  
  (5)HKEY-USERS:保存当用户登录时,所有必须载入的用户配置文件数据,包含缺省的配置文件和登录者的环境配置文件。
  
  另外,在WINNT中启动注册表编辑器,应该执行"开始/运行"命令,在"运行"对话框中输入REGEDIT32.EXE(而不是Windows 9x的REDEDIT.exe),并确定。
  
  Windows Me注册表的组成与分析
  
  与Win 98不同,WinMe的注册表是由Windows目录下的Classes.dat、User.dat(用户配置信息)和System.dat(系统配置信息)三个二进制文件组成的,其"项值"与Win 98一样有字串值(REG_SZ)、二进制值(REG_BINARY)、双字节值(REG_DWORD)三种类型。
  
  与Win 98相同,WinMe也有个注册表编辑器Windows\Regedit.exe(见图1),用来搜索或修改注册表。
   
  WinMe注册表编辑器左边窗口中,最上面一层是"我的电脑",下面有6个分支:HKEY_CLASSES_ROOT、HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE、HKEY_USERS、HKEY_CURRENT_CONFIG、HKEY_DYN_DATA,各分支的功能简要描述见表1。
   
  WinMe注册表六大根键的功能简要描述表
  
  
  与Win 98的Regedit相比,WinMe的注册表编辑器功能有所增加,表现在:
  
  1.具有记忆功能,每次打开它时,左边窗口中的树形主键分支会自动展开,将焦点定位在最近一次修改过的位置上;
  
  2.选单栏中新增类似IE的收藏选单,提供收藏夹功能(添加、删除收藏夹),可让您快速定位到需要修改的主键位置。
  
  假如需要经常检查系统启动时自动调入了哪些程序,可以打开HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run和
  
  HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run,用Win 98的注册表编辑器找这两个项,需要多次双击分支,打开一级又一级的注册表项,在WinMe中,这种操作就要轻松多了,只要将以上两项添加到注册表编辑器的收藏夹中,使用时如同用IE那样,打开收藏项即可。添加到收藏夹的方法是:找到要收藏的注册表项,执行选单上的"收藏/添加到收藏夹",弹出对话框,给该收藏项命名,按"确定"。
  
  认识Windows2000注册表
  
  Windows 2000 将它的配置信息在名为注册表的数据库中,其中包含了每个计算机用户的配置文件,以及有关系统硬件、已安装的程序和属性设置等信息,Windows 2000 在运行过程中要一直引用这些信息。注册表是以二进制形式在硬盘上,错误地编辑注册表可能会严重损坏系统。所以,在更改注册表之前,强烈建议备份注册表信息。为了防止在修改注册表的时候发生致命错误,有必要了解一下注册表文件的备份和恢复方法。除此之外,为了研究注册表的结构,还可以将注册表中的某一主键或子键保存为文本文件,或者打印出来,这项工作同样需要了解注册表文件的导入与导出方法。
  
  一、Windows 2000 与Windows98的注册表的比较
  
  大家也许对Windows98的注册表很熟悉,但是Windows2000毕竟和Windows98不同。本文将以Windows 2000 Professional版本为例,向大家介绍一下Winsows2000的注册表。
  
  首先要运行注册表编辑器。你可以选择菜单"开始/运行",在弹出的运行对话框中输入"regedit",再单击"确定"按钮来启动类似于Windows 9X的注册表编辑器(如图1)。可以看到,它的内容和Win98相比,去掉了HKEY_DYN_DATA根键。只有KEY_LOCAL_MACHINE、HKEY_CLASSES_ROOT、HKEY_CURRENT_CONFIG、HKEY_USERS、HKEY_CURRENT_USER五个根键。它比Windows 9X下的注册表编辑器增加了许多功能。首先,在右边窗口的键值详细列表中增加了类型列,使我们可以很直观地了解键值的类型,如:如REG_SZ为字符串值,REG_DWORD为DWORD值,REG_BINARY为二进制值等;其次,在菜单栏中增加了类似IE的收藏菜单,提供了收藏夹功能,它可以方便你快速定位到需要经常修改的主键位置;第三,它还提供了记忆功能,即每次当你打开它时,左边窗口中的树形主键分支会自动展开,把焦点定位到你最近一次修改过的位置。
  
  除了上述类似于Windows 9X的注册表编辑器外,Windows 2000还提供了一个新版的注册表编辑器(注意:下面我们介绍的注册表修改都是在其中进行),位置在D:\WINNT\system32\regedt32.exe(假设D为Windows 2000的安装盘符),运行它,主界面如图2所示。
   
  这个新版注册表编辑器除了具备原来Windows 9X注册表编辑器全部功能外,最重要的是增加了""菜单,也就是说,管理员可以给注册表项指派"权限",这一功能在NT中早就采用了,但在面向单机的操作系统中还是首次提供。这使得注册表的性大大提高。下面以允许用户访问"控制面板"注册表项但不保存对它的任何修改为例,介绍一下如何指派"权限"。首先在[HKEY_CURRENT_USER]窗口单击"Control Panel"主键,然后选择"安全"菜单中的"权限",在"Control Panel的权限"对话框中选择用户,再选中"读取"右边的"允许"复选框,最后单击"确定"即可(如图3)。
  该注册表编辑器拥有多个子窗口(如图4),每个子窗口代表本地计算机上的一个预定义项(即五大根键)。这个注册表编辑器不仅可以显示编辑本地计算机的注册表项,还可以访问远程计算机的注册表,当访问远程计算机的注册表时,只可使用两个预定义项[HKEY_USERS]和[HKEY_LOCAL_MACHINE]。
   
  下面简要说明一下这些预定义项的含义:
  
  (一)、KEY_LOCAL_MACHINE
  
  HKEY_LOCAL_MACHINE根键中存放的是用来控制系统和软件的设置。由于这些设置是针对那些使用Windows系统的用户而设置的,是一个公共配置信息,所以它与具体用户无关。该根键下面包含了五个子键:
  
  1.HARDWARE子键
  
  该子键包含了系统使用的浮点处理器、串口等有关信息。在它下面存放一些有关超文本终端、数字协处理器和串口等信息。HARDWARE子键又包括三个子键:
  
  ★DESCRIPTION:用于存放有关系统信息;
  
  ★DEVICEMAP:用于存放设备映像;
  
  ★RESOURCEMAP;
  
  2.SAM子键
  
  该子键已经被系统保护起来,我们不可能看到里面的内容。
  
  3.SECURITY子键
  
  该子键位于HKEY_LOCAL_MACHINE\Security分支上,该分支只是为将来的高级功能而预留的。
  
  4.SOFTWARE子键
  
  该子键中保留的是所有已安装的32位应用程序的信息。各个程序的控制信息分别安装在相应的子键中。由于不同的机器安装的应用程序互不相同,因此这个子键下面的子键信息会有很大的差异。
  
  5.SYSTEM子键
  
  该子键存放的是启动时所使用的信息和修复系统时所需的信息,其中包括各个驱动程序的描述信息和配置信息等。System子键下面有一个CurrentControlSet子键,系统在这个子键下保存了当前的驱动程序控制集的信息。
  
  (二)、HKEY_CLASSES_ROOT根键
  
  在Windows 2000中对HKEY_CLASSES_ROOT主键做了改进。HKEY_CLASSES_ROOT主键与当前注册使用的用户有关,它实际上是HKEY_CURRENT_USER\SOFTWARE\Classes和HKEY_LOCAL_MACHINE\SOFTWARE\ Classes的交集。如果两者的内容有冲突,则HKEY_CURRENT_USER\SOFTWARE\Classes优先。这个新特性在Windows 2000中叫做“单用户类注册”(per-user class registration)。单用户类注册有如下好处:
  
  1.同一台计算机上的不同用户可以分别定制不同的Windows 2000
  
  例如,用户甲安装了ACDSee图形软件,将BMP文件与ACDSee图形软件建立关联。而用户乙安装了PhotoShop图形软件,将BMP文件与PhotoShop图形软件建立关联,当用户乙双击BMP文件时,会自动调用PhotoShop图形软件,而不会调用用户甲安装的ACDSee图形软件。
  
  2.提高了注册表的安全性
  
  使用单用户类注册,各个用户有自己的HKEY_CLASSES_ROOT,不再需要通过修改HKEY_LOCAL_MACGINE/SOFTWARE/classes来满足自己的需求,这样系统管理员可以提高HKEY_LOCAL_MACGINE/SOFTWARE/classes的权限,禁止普通用户修改它,而各个用户之间更是不能修改对方的HKEY_CLASSES_ROOT。
  
  3.支持漫游类注册
  
  在Windows 2000中,提供了一个叫做IntelliMirror的功能。通过在和客户端同时使用IntelliMirror,用户的数据、应用程序和设置在所有的环境中都可以跟随用户漫游,这当然包括了用户的配置文件。当用户登录到域中任意一台运行Windows 2000的计算机时,首先要通过目录服务中的身份验证,身份验证通过后,保存在上的用户配置文件(包括注册表中的HKEY_CLASSES_RO
【责编:admin】

--------------------next---------------------

阅读(370) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~