欢迎您访问科普小知识本站旨在为大家提供日常生活中常见的科普小知识,以及科普文章!
您现在的位置是:首页  > 科普文章

Windows NT中的登记项及其完整性

科普小知识2022-12-22 14:57:34
...

windows nt组件以下述方法使用登记项。

硬件数据(ntdetect) 启动windows nt时,登记项接收易失硬件配置数据——计算机中检测到的硬件信息。在基于x86的计算机上,ntdetect.com程序做这些事情。在基于risc的计算机上,此信息从固件中抽取。

windows nt内核(ntoskrnl) 启动期间,windows nt内核从登记项选取信息,包括要装入什么设备驱动程序,以及用什么次序装入,内核传送回它自身的信息,例如版权号等。

设备驱动程序 设备驱动程序也向登记项传送数据,并从登记项接收装入和配置参数。性能良好的设备驱动程序告诉登记项它在使用什么系统资源,例如,硬件中断或dma通道。设备驱动程序还报告所发现的配置数据。

管理/配置工具 windows nt还提供大量其它接口,允许管理员修改系统配置数据,例如control panel、user manager和windows nt setup。

setup 程序 为应用程序或硬件运行windows nt setup程序或其它设置程序时,程序可以对登记项增加新的配置数据。

win16 应用程序 windows nt为了与一些应用程序和相关工具(如setup程序)兼容也支持.ini文件。因为,一些应用程序(特别是16位windows应用程序)现阶段将继续使用.ini文件。autoexec.bat和config.sys文件也将存在,以提供对ms-dos和windows 3.1应用的兼容。当安装一个基于windows3.1的应用时,应用的setup程序像在windows中一样创建它自己的.ini文件或在win.ini或system.ini文件中创建入口。WWW.11665.cOM但是,这些入口不能在登记项中升级,因为这些应用不知道如何访问登记项。因此,基本的system.ini、win.ini和winfile.ini文件在windows nt中放于根目录下。

2.登记项的层次结构

@@12a06701.gif;图2@@

登记项以类似磁盘上的目录和文件那样的层次结构进行组织。

@@12a06702.gif;表1@@

登记项与windows中的.ini文件有许多相似之处。关键字类似于.ini文件中的小节,一个值项对应于.ini文件中小节里的一条设置项。然而,登记项可以包含次关键字,而.ini文件不支持小节的嵌套;登记项中的值项还可以包含可执行代码,而在.ini文件中设置项只是简单的串。同一台计算机上有多个用户,登记项可以存储每个用户的特性,而.ini文件中却不可能。

3.登记项子树

登记项结构化为4个关键字子树的集合。这些关键字包括每个计算机和每个用户的配置信息。每个计算机信息包括安装的软硬件信息,以及特定计算机上的网络设置。每个用户信息包括桌面设置、软件选择和打印机设置。访问任何关键字都要通过以下4个子树。

(1)hkey-local-machine

包括有关本地机器的所有配置信息。这个子树不管哪个用户登录以及使用什么软件而保留相同。在这个子树中的信息由应用程序、设备驱动程序和windows nt操作系统使用,以确定本地机器的配置数据。其中部分信息用于引导windows nt。

hkey-local-machine关键字有5个次关键字——hardware、security account manager (sam)、security、software和system。其中后4个次关键字都看作是配置元,因为,它们在\winnt-root\system 32\config目录中有相应的文件。应用程序可以查询所有5个关键字,但只可以对software和system关键字增加信息。

(2)kkey-users

容纳了当前登录用户的配置设置和缺省的用户配置文件。因此,hkey-users关键字包括default次关键字和一个或多个以用户的sids (windows nt用以识别用户的安全身份号)为名称的次关键字。default关键字分配信息给本地机器上的新用户,它对应的文件为\winnt-root\system32\config目录下的userdef文件。登记项中每个用户的信息分别保存在\winnt-root\system32\config目录下的userxxx和userxxx.log文件中。当一个用户登录时,用户的配置信息拷贝到hkey-current-user中,直到用户退出登录。在这期间,用户改变的任何设置都记录在hkey-current-user和hkey-users的相应入口中。

缺省情况下,用户的配置文件保存在\winnt-root\system32\config目录中,但对于windows nt advanced server的域管理,它们可以放在本地机器上或存储在远程主机上。

(3)hkey-current-user

当前登录到机器上用户的有关信息。这些信息以前是存储在win.ini初始化文件中。这个子树有一份拷贝作为单个文件或配置元存储在机器上。当一个用户登录时,用户的安全身份号(sid)与登记项中的已知的sids进行比较,如果系统识别了用户登录的sid,系统就装载这个用户的配置设置;否则,系统使用保存在hkey-users\.default中的配置信息。

hkey-current-user关键字由以下次关键字组成:console、control panel、environment、keyboard layout、network、printers、program groups、software和windiws 3.

1 migration。

(4)hkey-classes-root

这个子树提供入口来定义资源的类以及与这些类相关的特性。包括软件配置信息,特别是对象链接与嵌入(ole)和windows外壳应用程序使用的信息。每项扩展名与能使用这种类型文件的应用相联系,例如,hkey-classes-root关键字中包括.avi、.bmp和.doc等许多次关键字。这个子树的目的是提供与windows 3.1登记数据库的兼容性。

4.登记项的编辑

(1)registry editor

registry editor程序(regedt32.exe)是一种工具,允许管理员查看和操作登记项的配置,它位于\winnt-root\system32目录中。缺省情况下,在program manager的任何程序组中都不出现。管理员可以完全控制登记项,并根据需要进行改变,而其他用户只可以对这个登记项进行读访问。管理员可以通过security菜单,在registry关键字上改变权限。registry editor主要用于帮助查找故障和解决问题。可以存储登记项的段落到磁盘上,并将其传送到另一台计算机上,以进行分析。还可以通过网络中的rpc服务,远程查看登记项。

(2)winmsd

registry editor还可以从winmsd程序启动,从tools菜单选择registry editor项。winmsd 是windows nt的诊断工具,用于查看存放在登记项中的系统配置信息,它位于\winnt-root\system32目录中。

(3)find key命令

从registry editor的view菜单中选择find key命令,可以查看登记项的特定关键字(但不能查看值项)。关键字出现在registry editor窗口的左边格中。查找从当前选择的关键字开始,向下(或向上)开始搜索所有预定义关键字及其所有的子关键字。查找过程局限在子树范围内,也就是说,在hkey-local-machine窗口中查找,则不会查找hkey-current-user下的关键字。

错误使用registry editor会引起严重的、系统范围的问题,导致需要重新安装windows nt。使用此工具一定要当心。一般用户可以通过control panel和windows nt setup程序来改变登记项中的内容。

5.登记项的完整性

windows nt通过配置设置来维护登记项的完整性。

配置设置可简单认为是一组系统参数。windows nt工作站有两套配置设置——currentcontrolset和lastknowngood(lkg)。好比有两个config.sys文件。

currentcontrolset是hkey-local-machine子树中system配置元下的一个关键字,链接启动系统的配置设置。这些设置反映当前控制状态。

lastknowngood是hkey-local-machine子树中system配置元下select关键字中的一个值项,反映最后一次成功启动期间使用的配置设置。它起备份作用,用于当前配置不能启动系统时。当完成登录后才认为是成功启动,这时创建lastknowgood配置。

有两种途径使用lkg——自动转换和手工执行。当启动期间,任何服务遇到问题时,它将自动地告诉系统转换用lkg系统参数。如果在启动菜单选择windows nt后,迅速按空格键,一个新菜单又出现,可以从这个菜单中选择一种启动数据,用当前配置设置还是用lkg来启动系统。

在\winnt-root\system32\config目录中还有一个文件——system.alt对登记项起维护作品。system.alt是system配置元(system文件)的备份文件,以防system这个文件存储在坏扇区上。如果windows nt在启动时不能顺利获得系统配置元,它将自动转去读system.alt文件。