Windows NT中的登記項及其完整性

學識都 人氣:2.6W
Windows NT中的登記項及其完整性
摘要: 該文結合Windows中的.INI檔案,較全面、深入地介紹了Windows NT中的配置資料庫——登記項,最後就Windows NT如何維護登記項的完整性加以討論。
目前,許多Windows使用者升級到Windows NT。Windows通過.INI檔案來記錄系統執行引數,那麼,對於Windows NT,它又是如何保證系統協調一致工作的呢?
登記項(Registry)是Windows NT配置資料庫——結構化的記錄集,它類似於Windows中的.INI檔案。登記項提供了一個安全而統一的資料庫,在其中以分層格式儲存配置,而不像Windows那樣用大量的.INI檔案。這樣,有助於簡化管理,使管理員易於在Windows NT中使用管理工具提供本地或遠端服務。
1.登記項的使用
@@12A06700.GIF;圖1@@
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檔案中建立入口。但是,這些入口不能在登記項中升級,因為這些應用不知道如何訪問登記項。因此,基本的`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-rootSYSTEM 32CONFIG目錄中有相應的檔案。應用程式可以查詢所有5個關鍵字,但只可以對Software和System關鍵字增加資訊。
(2)KKEY-USERS
容納了當前登入使用者的配置設定和預設的使用者配置檔案。因此,HKEY-USERS關鍵字包括DEFAULT次關鍵字和一個或多個以使用者的SIDs (Windows NT用以識別使用者的安全身份號)為名稱的次關鍵字。DEFAULT關鍵字分配資訊給本地機器上的新使用者,它對應的檔案為winnt-rootSYSTEM32CONFIG目錄下的USERDEF檔案。登記項中每個使用者的資訊分別儲存在winnt-rootSYSTEM32CONFIG目錄下的USERxxx和USERxxx.LOG檔案中。當一個使用者登入時,使用者的配置資訊拷貝到HKEY-CURRENT-USER中,直到使用者退出登入。在這期間,使用者改變的任何設定都記錄在HKEY-CURRENT-USER和HKEY-USERS的相應入口中。
預設情況下,使用者的配置檔案儲存在winnt-rootSYSTEM32CONFIG目錄中,但對於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和等許多次關鍵字。這個子樹的目的是提供與Windows 3.1登記資料庫的相容性。
4.登記項的編輯
(1)Registry Editor
Registry Editor程式()是一種工具,允許管理員檢視和操作登記項的配置,它位於winnt-rootSYSTEM32目錄中。預設情況下,在Program Manager的任何程式組中都不出現。管理員可以完全控制登記項,並根據需要進行改變,而其他使用者只可以對這個登記項進行讀訪問。管理員可以通過Security選單,在Registry關鍵字上改變許可權。Registry Editor主要用於幫助查詢故障和解決問題。可以儲存登記項的段落到磁碟上,並將其傳送到另一臺計算機上,以進行分析。還可以通過網路中的RPC服務,遠端檢視登記項。
(2)WinMSD
Registry Editor還可以從WinMSD程式啟動,從Tools選單選擇Registry Editor項。WinMSD 是Windows NT的診斷工具,用於檢視存放在登記項中的系統配置資訊,它位於winnt-rootSYSTEM32目錄中。
(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)。好比有兩個檔案。
CurrentControlSet是HKEY-LOCAL-MACHINE子樹中SYSTEM配置元下的一個關鍵字,連結啟動系統的配置設定。這些設定反映當前控制狀態。
LastKnownGood是HKEY-LOCAL-MACHINE子樹中SYSTEM配置元下Select關鍵字中的一個值項,反映最後一次成功啟動期間使用的配置設定。它起備份作用,用於當前配置不能啟動系統時。當完成登入後才認為是成功啟動,這時建立LastKnowGood配置。
有兩種途徑使用LKG——自動轉換和手工執行。當啟動期間,任何服務遇到問題時,它將自動地告訴系統轉換用LKG系統引數。如果在啟動選單選擇Windows NT後,迅速按空格鍵,一個新選單又出現,可以從這個選單中選擇一種啟動資料,用當前配置設定還是用LKG來啟動系統。
在winnt-rootSYSTEM32CONFIG目錄中還有一個檔案——對登記項起維護作品。是SYSTEM配置元(SYSTEM檔案)的備份檔案,以防SYSTEM這個檔案儲存在壞扇區上。如果Windows NT在啟動時不能順利獲得系統配置元,它將自動轉去讀檔案。 

作者:不詳 
TAGS:Windows Nt 登記