當前位置:首頁 » 存儲配置 » 什麼不屬於注冊表中用戶配置文件

什麼不屬於注冊表中用戶配置文件

發布時間: 2022-06-15 20:23:41

A. 注冊表是什麼.是軟體嗎是操作系統的一部分嗎

什麼是注冊表?
注冊表因為它復雜的結構和沒有任何聯系的CLSID鍵使得它可能看上去很神秘。不幸的是,微軟並沒有完全公開講述關於注冊表正確設置的支持信息,這樣使得注冊表看上去更不可琢磨。處理和編輯注冊表如同「黑色藝術」一樣,它在系統中的設置讓用戶感覺象在黑暗中摸索一樣找不到感覺。這樣,因為用戶對這方面的缺乏了解使得注冊表更多的出現故障。
Windows注冊表是幫助Windows控制硬體、軟體、用戶環境和Windows界面的一套數據文件,注冊表包含在Windows目錄下兩個文件system.dat和user.dat里,還有它們的備份system.da0和user.da0。通過Windows目錄下的regedit.exe程序可以存取注冊表資料庫。在以前,在windows的更早版本(在win95以前),這些功能是靠win.ini,system.ini和其他和應用程序有關聯的.ini文件來實現的.
在windows操作系統家族中,system.ini和win.ini這兩個文件包含了操作系統所有的控制功能和應用程序的信息,system.ini管理計算機硬體而win.ini管理桌面和應用程序。所有驅動、字體、設置和參數會保存在.ini文件中,任何新程序都會被記錄在.ini文件中。這些記錄會在程序代碼中被引用。因為受win.ini和system.ini文件大小的限制,程序員添加輔助的.INI文件以用來控制更多的應用程序。舉例來說,微軟的Excel有一個excel.ini文件,它包含著選項、設置、預設參數和其他關繫到Excel運行正常的信息。在system.ini和win.ini中只需要指出excel.ini的路徑和文件名即可。
最開始,system.ini和win.ini控制著所有windows和應用程序的特徵和存取方法,它在少數的用戶和少數應用程序的環境中工作的很好。隨著應用程序的數量和復雜性越來越大,則需要在.ini文件中添加更多的參數項。這樣下來,在一個變化的環境中,在應用程序安裝到系統中後,每個人都會更改.ini文件。然而,沒有一個人在刪除應用程序後刪除.ini文件中的相關設置,所以system.ini和win.ini這個兩個文件會變的越來越大。每增加的內容會導致系統性能越來越慢。而且每次應用程序的升級都出現這樣的難題:升級會增加更多的參數項但是從來不去掉舊的設置。而且還有一個明顯的問題,一個.ini文件的最大尺寸是64KB。為了解決這個問題,軟體商自己開始支持自己的.ini文件,然後指向特定的ini文件如win.ini和system.ini文件。這樣下來多個.ini文件影響了系統正常的存取級別設置。如果一個應用程序的.ini文件和WIN.INI文件設置起沖突,究竟是誰的優先順序更高呢?
注冊表最初被設計為一個應用程序的數據文件相關參考文件,最後擴展成對於32位操作系統和應用程序包括了所有功能下的東東.注冊表是一套控制操作系統外表和如何響應外來事件工作的文件。這些「事件」的范圍從直接存取一個硬體設備到介面如何響應特定用戶到應用程序如何運行等等。注冊表因為它的目的和性質變的很復雜,它被設計為專門為32位應用程序工作,文件的大小被限制在大約40MB。

注冊表都做些什麼?
注冊表是為Windows NT和Windows95中所有32位硬體/驅動和32位應用程序設計的數據文件。16位驅動在Winnt下無法工作,所以所有設備都通過注冊表來控制,一般這些是通過BIOS來控制的。在Win95下,16位驅動會繼續以實模式方式設備工作,它們使用system.ini來控制。16位應用程序會工作在NT或者Win95 下,它們的程序仍然會參考win.ini和system.ini文件獲得信息和控制。
在沒有注冊表的情況下,操作系統不會獲得必須的信息來運行和控制附屬的設備和應用程序及正確響應用戶的輸入。
在系統中注冊表是一個記錄32位驅動的設置和位置的資料庫。當操作系統需要存取硬體設備,它使用驅動程序,甚至設備是一個BIOS支持的設備。無BIOS支持設備安裝時必須需要驅動,這個驅動是獨立於操作系統的,但是操作系統需要知道從哪裡找到它們,文件名、版本號、其他設置和信息,沒有注冊表對設備的記錄,它們就不能被使用。
當一個用戶准備運行一個應用程序,注冊表提供應用程序信息給操作系統,這樣應用程序可以被找到,正確數據文件的位置被規定,其他設置也都可以被使用。
注冊表保存關於預設數據和輔助文件的位置信息、菜單、按鈕條、窗口狀態和其他可選項。它同樣也保存了安裝信息(比如說日期),安裝軟體的用戶,軟體版本號和日期,序列號等。根據安裝軟體的不同,它包括的信息也不同。
然而,一般來說,注冊表控制所有32位應用程序和驅動,控制的方法是基於用戶和計算機的,而不依賴於應用程序或驅動,每個注冊表的參數項控制了一個用戶的功能或者計算機功能。用戶功能可能包括了桌面外觀和用戶目錄。所以,計算機功能和安裝的硬體和軟體有關,對所以用戶來說項都是公用的。
有些程序功能對用戶有影響,有些時作用於計算機而不是為個人設置的,同樣的,驅動可能是用戶指定的,但在很多時候,它們在計算機中是通用的。
注冊表控制用戶模式的例子有:
控制面板功能;
桌面外觀和圖標;
網路參數;
瀏覽器功能性和特徵;
那些功能中的某些是和用戶無關的,有些是針對用戶的。
計算機相關控制項基於計算機名,和登陸用戶無關。控制類型的例子是安裝一個應用程序,不管是哪個用戶,程序的可用性和存取是不變的,然而,運行程序圖標依賴於網路上登陸的用戶。網路協議可用性和優先權基於計算機,但是當前連接和用戶信息相關。
這里是在注冊表中基與計算機控制條目的一些例子:
存取控制;
登陸確認;
文件和列印機共享;
網卡設置和協議;
系統性能和虛擬內存設置;
沒有了注冊表,Win95和Winnt 就不太可能存在。它們實在太復雜了,以致於用過去的.ini文件無法控制,它們的擴展能力需要幾乎無限制的安裝和使用應用程序,注冊表實現了它。然而,注冊表比.ini文件更復雜,理解它如何工作,它做什麼和如何用它來做是有效管理系統的關鍵。
在系統中注冊表控制所有32位應用程序和它們的功能及多個應用程序的交互,比如復制和粘貼,它也控制所有的硬體和驅動程序。雖然多數可以通過控制面板來安裝和設置,理解注冊表仍是做Winnt和Win95系統管理基本常識。
二、注冊表的結構
注冊表的結構
注冊表是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信息)將被裝入,以用來保持你自己的桌面和圖標。

控制鍵
在注冊表編輯器中注冊表項是用控制鍵來顯示或者編輯的。控制鍵使得找到和編輯信息項組更容易。因此,注冊表使用這些條目。下面是六個控制鍵
HKEY_LOCAL_MACHINE
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA
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
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
HKEY_DYN_DATA和其他的注冊表控制鍵不同,因為實際上它並不被寫入硬碟驅動器中。Win95的一個優點是,在系統啟動時HKEY_DYN_DATA這個控制鍵儲存收集到的即插即用信息並配置它們。它保存在內存中,Win95用它來控制硬體。因為是在內存中,所以它不從硬碟中讀取,每次當你啟動計算機時,配置都有可能會不一樣。在啟動時Win95必須計算超過1600種可能的配置。所以,如果系統改變既定的設置而沒有報告給Win95那麼潛在的問題就可能發生。系統大多數時間工作良好,但是並非一直如此。
HKEY_USERS
HKEY_USERS僅包含了預設用戶設置和登陸用戶的信息。雖然它包含了所有獨立用戶的設置,但在用戶未登陸網路時用戶的設置是不可用的。這些設置告訴系統哪些圖標會被使用,什麼組可用,哪個開始菜單可用,哪些顏色和字體可用,和控制面板上什麼選項和設置可用。
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\Config\0001\Display
這個鍵表示顯示的設置,如熒屏字體,窗體大小,窗體位置和解析度等
一個小技巧:當設置了計算機不支持的大解析度導致Windows不能啟動時(黑屏),可以修改解析度來解決。進入安全模式,運行regedit.exe,在這個鍵的Resolution鍵值中把數據值修改為640,480或者800,600這樣的低解析度,然後重新啟動計算機即可。
HKEY_LOCAL_MACHINE\Config\0001\System
這個鍵保存著系統里列印機的信息
HKEY_LOCAL_MACHINE\Config\0001\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網路中工作功能,它包括了關於認證過程和證明者的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RemoteAccess
在這個鍵里包括需要遠程工作在win95系統上的信息,有認證參數,主機信息,和為了建立一個撥號連接工作的協議信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP
這個鍵包括了所以snmp(簡單網路管理協議)的參數。它包括了允許的管理,配置陷阱,和有效的團體。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD
vxd鍵包括了win95中所有32位虛擬設備驅動信息,win95自動管理它們,所以不必要用注冊表編輯器編輯它們,所以的靜態vxds用子鍵列出。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebPost
webpost鍵包括了所有裝載的internet郵局的設置,如果你連接一個isp,並且它列出載這里,你應該給自己選則一個伺服器。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock
這個鍵列出了當連接到internet上winnsock文件的信息,如果列出了不正確的文件,你將不會連接上internet。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinTrust
wintrust功能是檢查從Internet上下載來的文件是否有病毒,它可以確保你得到干凈安全的文件。

HKEY_CLASSES_ROOT
在注冊表中HKEY_CLASSES_ROOT是系統中控制所有數據文件的項。這個在Win95和Winnt中是相通的。HKEY_CLASSES_ROOT控制鍵包括了所有文件擴展和所有和執行文件相關的文件。它同樣也決定了當一個文件被雙擊時起反應的相關應用程序。
HKEY_CLASSES_ROOT被用作程序員在安裝軟體時方便的發送信息,在Win95和Winnt中,HKEY_CLASSES_ROOT和HKEY_LOCAL_MACHINE\Software\Classes是相同的。程序員在運行他們的啟動程序時不需要擔憂實際的位置,相反的,他們只需要在HKEY_CLASSES_ROOT中加入數據就可以了。
在Windows用戶圖形界面下,每件事----每個文件,每個目錄,每個小程序,每個連接,每個驅動---都被看做一個對象;每個對象都有確定的屬性和它聯系。HKCR包含著對象類型和它們屬性的列表。HKCR主要的功能被設置為:
一個對象類型和一個文件擴展名關聯
一個對象類型和一種圖標關聯
一個對象類型和一個命令行動作的關聯
定義對象類型相關菜單選項和定義每一個對象類型屬性選項
在Win95中,相關菜單就是當你滑鼠右擊一個對象時所彈出的菜單;屬性就是當你選擇屬性項後一個展開的對話框。用簡單術語來說就是在改變HKCR中的設置可以改變一個給定文件擴展名預設的關聯。改變一個文件類型的預設圖標,和添加或者刪除給定對象類型的彈出菜單內容(或者所有的對象類型)
HKCR包括了三種基本類型的子鍵
\??? 或者文件擴展名子鍵
文件擴展名子鍵在彈出菜單上連接文件擴展名到對象類型和相關操作,屬性項,和相關操作。
\object 類型子鍵
對象類型子鍵定義了一個對象類型在它預設圖標的項,它的彈出菜單和屬性項,它的相關操作和它的CLSID連接。
\CLSID 子鍵
在Windows下每件事都被用一個數字取代它的名字來對待。就象人往往是用名字來處理事情一樣。CLSID是標識所有列出的圖標,應用程序,目錄,文件類型等等對象的數字。是微軟為製造商分配的,每一個都必須是唯一的。製造商將CLSID放入安裝程序文件這樣就可以在安裝時更新注冊表。
注冊表是應用程序進行時它們需要關於做什麼的指示的資料庫。比如說,假定你有一個微軟Excel 7電子數據表的Word 7文檔,當你在Word中雙擊這個電子數據表,應用程序菜單就會變成Excel的菜單而且電子數據表進入編輯狀態,就好象你在Excel中一樣。它是如何知道該做什麼呢?每個Excel 7創建的文件都有Excel的CLSID連接。Word讀這個CLSID後,到注冊表中尋找指示,依賴CLSID下的數據運行.DLL文件或者應用程序。
CLSID子鍵為對象類型提供了OLE和DDE信息和圖標。相關菜單,或者包含在它子鍵中的屬性項信息。這個可能是多數讓人看到後覺得「恐怖」的鍵。每個CLSID數必須是唯一的,實際上,為了這個目的微軟已經出產了CLSID-產生程序--這個結果導致你往往得到32位16進制的數字串,除非你是程序員,否則多數部分鍵看起來是很枯燥的。它們包括內存管理模式,客戶機/伺服器配置,和OLE處理的.dll連接。
關於子鍵的一點註解
1)shell:Shell鍵有個一」action「子鍵,如同」open「一樣,這里有一個command子鍵;command子鍵有一個預設句值,它包含了運行程序的命令行。將一個」open「子鍵放在一個對象類型的shell子鍵中會在這個對象類型的彈出菜單上多出一個」open「選項,給這個open子鍵一個command(預設命令行"C:\Windows \Notepad.exe %1")子鍵會使得打開這個對象類型時使用筆記本做為預設應用程序。其他操作選項包括View,Print,Copy,Virus,Scan等等。
2)shellex:Shellex鍵有一個子鍵。它們包含的每一個子鍵指向一個為對象類型執行OLE和DDE功能的CLSID項(比如說快速查看,一個菜單處理子鍵下指向一個有句值的CLSID鍵列出了包含了文件瀏覽功能的.dll文件)
3)shellnew:ShellNew包含了一個「command」句,它包含了一個打開對象類型「新」文件的命令行。
4)DefaultIcon:DefaultIcon子鍵包含了一個「default」句

B. 什麼是用戶配置文件

用戶配置文件

問:什麼是用戶配置文件?
答:用戶配置文件就是在用戶登錄時定義系統載入所需環境的設置和文件的集合。它包括所有用戶專用的配置設置,如程序項目、屏幕顏色、網路連接、列印機連接、滑鼠設置及窗口的大小和位置。
當你第一次登錄到一台基於Micr--s--ft Wind--ws XP、Wind--ws 2000或Wind--ws NT? W--rkstati--n的計算機上時,系統就會為你創建一個專用的配置文件。

問:配置文件都有什麼不同的區別?
答:有三種主要的配置文件類型:
·本地用戶配置文件。在用戶第一次登錄到計算機上時被創建,這個本地用戶配置文件被儲存在計算機的本地硬碟驅動器上。任何對本地用戶配置文件所作的更改都只對發生改變的計算機產生作用。
·漫遊用戶配置文件。一個本地配置文件的副本被復制及儲存在網路上的一個伺服器共享上。當用戶每次登錄到網路上的任一台計算機上時,這個文件都會被下載,並且當用戶注銷時,任何對漫遊用戶配置文件的更改都會與伺服器的拷貝同步。漫遊用戶配置文件要求這台計算機是Wind--ws NT域或Active Direct--ry?的一個成員。
·強制用戶配置文件。是一種特殊類型的配置文件,使用它管理員可為用戶指定特殊的設置。只有系統管理員才能對強制用戶配置文件作修改。當用戶從系統注銷時,用戶對桌面做出的修改就會丟失。
第四種類型的配置文件是一個臨時的配置文件,只有在因一個錯誤而導致用戶配置文件不能被載入時才會出現。臨時配置文件允許用戶登錄並改正任何可能導致配置文件載入失敗的配置。臨時配置文件在每次會話結束後都將被刪除--注銷時對桌面設置和文件所作的更改都會丟失。

問:我查看了"D--cuments and Settings"文件夾,發現有許多配置文件。它們都是做什麼用的?
答:Wind--ws為每個登錄到計算機上的用戶都創建了一個配置文件。除這些配置文件外,還有一些"特殊"的配置文件:
--默認用戶。默認用戶配置文件被用作任何新用戶的起始點。當一個用戶第一次登錄到計算機時,Wind--ws將創建一個新文件夾,用來儲存新用戶的配置文件,並且將默認的配置文件復制到這個新文件夾中。用戶對默認配置文件所作的更改都被記錄到用戶的拷貝中。預設情況下,默認用戶配置文件的屬性是隱藏的。
--所有用戶。每個用戶的"開始"菜單和桌麵包含所有項目,這些內容是從"所有用戶"的配置文件以及他或她自己的配置文件中來的。從"所有用戶"的配置文件中取得的項目被作為公用程序項,系統上的每個用戶都能看到這些。如果你想要保證每個登錄的用戶都能訪問一個程序或文件,那麼就將它的快捷方式放進"所有用戶"的配置文件中即可,但是一定要小心,如果一個用戶刪除了此快捷方式或文件,那麼對所有用戶來說,它都會被刪除。
--網路服務和本地服務。網路服務和本地服務的配置文件是由Wind--ws XP為兩個新的內置賬號自動創建的,它們被服務控制管理器用來管理本地系統賬號不需要運行的服務。這些配置文件需要由系統來運行,並且不應當被修改。默認情況下,所有這些配置文件都是隱藏的。

問:我不喜歡這些配置文件,能不能像在Wind--ws 95/98/Me中那樣,只要有一個配置文件就能用於所有用戶?
答:不能實現。用戶配置文件是Wind--ws 2000和Wind--ws XP的一個基本部分。如果你不希望每個用戶都有他或她自己單獨的配置文件,只需簡單地讓每個用戶以相同的用戶賬號進行登錄即可。這將給你與Wind--ws 95/98/Me相類似的體驗。

問:我安裝了一個應用程序,並且我能看到這個程序的快捷方式,但其他用戶卻看不到,為什麼?
答:這是因為,此程序只為你的配置文件安裝,而不是為所有用戶。在Wind--ws XP和Wind--ws 2000中,每個用戶都有他或她自己個人的開始菜單。一些應用程序將在安裝時提示你決定是否為所有用戶安裝,或者是僅為當前用戶安裝。
你可以從你的Start Menu中將快捷方式簡單地復制到All Users Pr--file的Start Menu(通常是C:/D--cuments and Settings/All Users/Start Menu)中。

問:如何查看我的配置文件的內容?
答:每個使用Wind--ws資源管理器的人,可從"我的電腦"進入到C:/D--cuments and Settings/,找到你的用戶名,或者單擊"開始"按鈕,選擇"運行",敲入%USERPR--FILE%,然後按
回車鍵。就會打開一個顯示你的配置文件內容的窗口。

問:我重新安裝了Wind--ws,現在我的所有設置和文件都不見了--我怎樣才能找回它們?
答:如果你在現有的安裝上重新安裝了Wind--ws,則配置文件可能還保留著。使用Wind--ws資源管理器,進入到C:/D--cuments and Settings/,然後查找與你的用戶名相匹配的文件夾。你就可以從這個文件夾中復制任何文件到新的配置文件中。

問:在哪能找到關於用戶配置文件的更多信息?
答:請在Wind--ws XP站點上查閱白皮書:在Wind--ws 2000環境中管理Wind--ws XP的用戶數據和設置。

漫遊配置文件

問:我如何配置一個漫遊用戶配置文件?
答:你可以使用下面的步驟配置漫遊配置文件。
若要為用戶配置一個漫遊配置文件:
1、在將要儲存用戶配置文件的伺服器上創建一個文件夾。這將是一個頂級的文件夾,其中包含了所有單獨的用戶配置文件。
2、將這個文件夾配置成為一個共享的文件夾,並且授予所有用戶"完全控制"的許可權。
3、打開Active Direct--ry用戶和計算機控制台插件,然後找到目標用戶。
4、右鍵單擊用戶名,然後再彈出的快捷菜單上單擊"屬性"。
5、單擊"配置文件"選項卡。
6、在配置文件路徑欄中,輸入用戶配置文件將要被儲存的網路共享的路徑。例如,對於一個網路名是Jd--e的用戶來說,輸入下面的路徑"//Netw--rkShare/Pr--files/%username%",配置文件將創建一個叫做Jd--e的目錄,該目錄在伺服器上被共享並且用於儲存用戶配置文件。

關於配置漫遊用戶配置文件的更多信息,清查閱用戶數據和用戶設置的循序漸進指南。

問:我正在使用漫遊配置文件,可是登錄速度很慢--怎樣才能讓它更快一些?
答:登錄的速度與配置文件的大小及網路的速度有直接的關系。你可以做許多事情來限制配置文件的大小:
·重定向大型的文件夾,如"My D--cuments",這將會減少登錄和注銷時將數據復制到計算機或從計算機復制數據的數量。
·將大的文件從漫遊配置文件中排除出來。默認情況下,大型的文件夾,如"L--cal Settings"、"Temp"和"Temp--rary Internet Files"不會被漫遊。你可以使用"在漫遊配置文件中排除目錄"的組策略設置來添加一個新文件夾到排除列表;一旦這些文件夾被包含在策略中,在登錄時它們就將被復制到本地計算機上,並且注銷時不會復制回伺服器。
·如果你通過一個慢速連接登錄到伺服器,則設置合適的"慢速網路"超時設置。
·不要在用戶配置文件中保存大文件。

問:如何處理關於用戶配置文件的問題?
答:處理的第一步應該是在客戶計算機上檢查應用程序事件日誌,然後檢查是否存在錯誤。如果這是一個漫遊配置文件,請檢查是否為其設置了正確的許可權(具體信息可以在用戶數據和設置白皮書中找到)--導致漫遊用戶配置文件出錯的最常見的一個原因就是在配置文件上設置了錯誤的許可權。除了在應用程序事件日誌中記錄事件外,用戶配置文件還提供了一個詳細的日誌來幫助處理問題。如果希望為用戶配置文件創建一個詳細的日誌文件,您可以:
--啟動注冊表編輯器,定位下面的路徑:
HKEY_L--CAL_MACHINE/S--ftware/Micr--s--ft/Wind--wsNT/CurrentVersi--n/Winl--g--n
--創建一個叫做UserEnvDebugLevel的新值,將其標記為REG_DW--RD,然後將它的值以16進制格式設置為30002。
--這個日誌文件就是%windir%/debug/userm--de/userenv.l--g

問:我需要什麼許可權才能配置漫遊用戶配置文件?
答:所需設置的共享和NTFS許可權可在用戶數據和設置白皮書中找到。

文件夾重定向

問:什麼是文件夾重定向?
答:文件夾重定向是IntelliMirr--r?的一個特性,它允許用戶和管理員將一個文件夾的路徑重定向到一個新位置。這個新位置可能是一個本地計算機上的文件夾,還可能是一個網路共享上的目錄。用戶可以處理存儲在伺服器上的文檔,就好像這些文檔是存儲在本地驅動器上一樣。例如,你可以將"My D--cuments"文件重定向夾到一個網路位置,而它通常是儲存在計算機的本地硬碟驅動器上的。這個文件夾中的文檔對網路中所有計算機上的用戶來說都是可用的。"My D--cuments"文件夾位於Wind--ws XP或Wind--ws 2000的桌面上,用戶可以將文檔和圖片保存到那裡。以前,管理員如果想要將文件夾重定向到網路,它必須使用登錄腳本改變注冊表的值才能做到。在Wind--ws XP中,同樣的任務可通過使用組策略來完成。

問:我為什麼要做文件夾重定向?
答:文件夾重定向提供了許多好處:
·提高了漫遊用戶配置文件的性能。因為只有一部分文檔需要復制,所以當從伺服器復制用戶配置文件時,性能得到了提高。每次用戶登錄時,並不是用戶配置文件中的所有數據都被傳輸到桌面--只有用戶需要的數據才傳送。
·儲存在網路伺服器上的數據可以作為系統管理日程的一部分被備份出來。這樣就比較安全,並且在用戶端不需要做任何活動。
·指定給一個用戶的數據可以從裝有操作系統文件的硬碟重定向到用戶計算機上的一個不同的硬碟。如果操作系統需要重新安裝,這樣做就保護了用戶的數據。
--即使當用戶登錄到不同的計算機時,在網路中的任何計算機上都可得到相同的文檔。
--管理員可以使用組策略來設置磁碟配額,限制用戶文件夾佔用空間的大小。

問:我能重定向什麼文件夾呢?
答:有五個文件夾能夠被重定向:
--My D--cuments
--My Pictures
--Applicati--n Data
--Deskt--p
--Start Menu

問:如何配置文件夾重定向?
答:請看用戶數據和用戶設置循序漸進指南和用戶數據和設置白皮書。

問:我能使用帶有文件夾重定向的環境變數嗎?
答:文件夾重定向只能處理兩個環境變數:%username%和%userpr--file%。其它環境變數,如:%l--g--nserver%、%h--medrive%和%h--mepath%將無法用文件夾重定向處理。

問:那麼我就不能重定向到用戶的主目錄了嗎?
答:Wind--ws 2000不支持直接重定向到主目錄,但是你可以使用完整的UNC路徑來重定向到一個主目錄。Wind--ws XP允許你將一個用戶的"My D--cuments"文件夾重定向到他或她的主目錄而不使用UNC路徑,但是在Wind--ws 2000的客戶端上應用到主目錄的重定向策略可能會失敗。

問:我試圖為將用戶的文件夾重定向到他們的主目錄,但是文件夾重定向失敗了,提示一個錯誤信息:"這個安全ID可能沒有作為此目標的所有者被分配。"
答:默認情況下,如果重定向目標文件夾已經存在了,那麼文件夾重定向就會檢查這個用戶是否是該文件夾的所有者。如果這個用戶不是文件夾的所有者,則重定向就會失敗,並伴隨著事件ID 101:"這個安全ID可能沒有作為此目標的所有者被分配。"文件夾重定向將其視為一個錯誤保護,以防止一個懷有惡意的用戶出於不良目的而預先創建文件夾。

為了避免這個錯誤:
--不要預先創建文件夾,讓文件夾重定向來為你創建文件夾。
--如果文件夾已經存在,並且其中還有數據,則在文件夾重定向對話框中的設置頁上取消對"將我的文檔的排它許可權授予用戶"復選框的選擇。這就告訴文件夾重定向不做所有權檢查,並且假定許可權是合適的。如果你要這樣做,就必須保證已經正確設置了許可權。

問:我是管理員,我想訪問已經被重定向的文件夾,但是文件夾重定向拒絕了我。如何做才能讓管理員訪問文件夾而不必預先創建它?
答:這是可能的,而且很簡單--請查閱KB文章Q288991:讓管理員有權訪問重定向文件夾獲得詳細信息。

問:我試圖將"My D--cuments"文件夾重新定向到一個已映射的驅動器,但是它不斷發生失敗。我該怎樣做?
答:因為在登錄過程中文件夾重定向在早期進行處理,而驅動器映射是通過登錄腳本(包括文件夾的主驅動器,"My D--cuments"除外)來實現的,所以文件夾重定向的客戶端擴展不能重定向到這些位置。在重定向發生時,驅動器還未存在,因此重定向失敗。

問:我不能刪除重定向的設置。我已經將選項改為"未指定管理策略",並且當策略被刪除時,重定向回本地用戶配置文件,但是重定向在應用。我怎樣才能刪除重定向?
答:這個"未指定管理策略"選項可能是較難理解的。本質上這個選項的意思是'無配置的',它告訴文件夾重定向不必考慮這個文件夾在哪。如果文件夾已經被重定向了,文件夾重定向將保持重定向,就像設置所說的"不必費心"。

重定向可通過以下兩種方式之一刪除:
--刪除帶有此策略的GP--。GP--然後將會"放棄它的勢力范圍",並且如果你已設置了上述選項,文件夾重定向將會重定向回本地配置文件。
--為文件夾設置重定向路徑%userpr--file%/F--lder_Name,其中'F--lder_Name'是重定向的文件夾的名字(如"My D--cuments")。文件夾重定向然後會將文件夾"重定向"回本地配置文件。

問:在解決文件夾重定向的問題上我還應該了解什麼別的內容?
答:重定向文件夾的過程有五個步驟:
1、根據在登錄時發生改變的策略,確定要重定向的文件夾。
2、確定希望重定向的位置並驗證訪問許可權。
3、如果文件夾不存在:創建文件夾,設置訪問控制列表(ACL)。
4、如果文件夾存在,檢查ACL及所有權。
5、如果一切就緒,移動內容。

文件夾重定向失敗僅僅影響以文件夾為基礎的文件夾重定向擴展。如果你預先創建了文件夾,而不是讓文件夾重定向擴展自動創建文件夾,則典型的錯誤包括:
--重定向到一個許可權設置錯誤的文件夾。
--用戶不是文件夾的所有者。
--目標不存在。

除了在應用程序事件日誌中記錄事件外,文件夾重定向還能提供了一個幫助解決故障的詳細記錄。為了給文件夾重定向創建一個詳細的日誌文件,請使用下面的注冊表鍵值:
HKLM/S--ftware/Micr--s--ft/Wind--ws NT/CurrentVersi--n/Diagn--stics Set: Fdepl--yDebugLevel = Reg_DW--RD 0x0f
注意:日誌文件可在%windir%/debug/userm--de/fdepl--y.l--g中找到。

C. 注冊表一般是指什麼其功能是

在Windows XP操作系統中,注冊表包含多個文件,其中系統配置文件位於系統安裝目錄下的「system32\config」文件夾中,包含以default、system、software、AppEvent.Evt、SecEvent.Evt、SysEvent.Evt、SECURITY等這些文件名為開頭的多個隱藏文件及相應的.LOG文件和.sav文件(圖1);而用戶配置文件則保存在系統分區根目錄下「Documents and Settings」中以用戶名為文件名的文件夾里,包括Ntuser.dat、Ntuser.ini、ntuser.dat.LOG。

Windows XP系統注冊表的五大根鍵:HKEY_CLASSES_ROOT:該根鍵定義了系統中所有已經注冊的文件擴展名、文件類型、文件圖標等信息,展開該根鍵後,你將會看到很多類似「.rar」、「.bmp」這樣的子鍵。HKEY_CURRENT_USER:定義了當前用戶的所有許可權,實際上就是HKEY_USER\.Defalut下面的一部分內容,包含了當前用戶的登錄信息。HKEY_LOCAL_MACHINE:定義了本地計算機(相對網路環境而言)的軟硬體的全部信息。當系統的配置和設置發生變化時,其下面的登錄項也會隨之改變。HKEY_USERS:定義了所有的用戶信息,其中部分分支將映射到HKEY_CURRNET_USRE關鍵字中,它的大部分設置都可以通過控制面板來修改。HKEY_CURRENT_CONFIG:定義了計算機的當前配置情況,如顯示器、列印機等可選外設及其設置信息等。實際上也是指向HKEY_LOCAL_MACHINE\Config結構中的某個分支的指針。

Windows中注冊表存放位置
Win9X:C:\Windows\SYSTEM.DAT和C:\Windows\USER.DAT 這2個就是注冊表文件。另外,系統每天啟動的第一次都會做一個備份,儲存在C:\WINDOWS\SYSBCKUP下,以rb***.cab命名,在DOS下可以用scanreg /restore還原。第一次安裝完以後,在C盤根目錄下還有一個SYSTEM.1ST文件作為第一次啟動的備份。

Win2000/XP/NET:其中用戶配置文件保存在根目錄「Documents and Settings」下用戶名的目錄中,包括兩個隱藏文件:NTUSER.DAT、NTUSER.INI及ntuser.dat.LOG日誌文件。系統配置文件位於Windows 2000 系統目錄下的「SYSTEM32\CONFIG」中,包括DEFAULT、SOFTWARE、SYSTEM、AppEvent.Evt、SecEvent.Evt、SysEvent.Evt等多個隱藏文件及其相應的 .LOG(日誌)文件和.SAV文件。這些注冊表文件在Windows 2000運行時無法使用其它工具打開,這一點與Windows 9x 下的system.dat及user.dat不同。備份文件位於WINDOWS\Repair下面。

windows 2000/xp注冊表備份/還原存放位置:%system%\system32\config目錄下有這樣一些文件,sam.* Security Account Manager,安全帳號管理器,default.* 默認注冊表文件,security.* 安全性注冊文件,system.* 系統注冊文件,software.* 應用軟體注冊表文件,注冊表中最重要的文件是那些沒有擴展名的文件,也就是當前注冊表文件。還有一個名為system.alt文件,這個就是注冊表的副本。%system%\system32\config目錄下擴展名為log或sav的文件中包含的是歷史信息,可以通過時間瀏覽器來查看。比如:.sav文件是在最近一次系統正常引導過程中保存的,而.log文件則記錄了注冊表審核功能啟用過程中對注冊表所進行的修改。

D. 什麼是注冊表文件

注冊表文件是以後綴名為reg的文件

Microsoft Windows 9x、Windows CE、Windows NT 和 Windows 2000 中使用的中央分層資料庫,用於存儲為一個或多個用戶、應用程序和硬體設備配置系統所必需的信息。

注冊表包含 Windows 在運行期間不斷引用的信息,例如,每個用戶的配置文件、計算機上安裝的應用程序以及每個應用程序可以創建的文檔類型、文件夾和應用程序圖標的屬性表設置、系統上存在哪些硬體以及正在使用哪些埠。

注冊表取代了 Windows 3.x 和 MS-DOS 配置文件(例如,Autoexec.bat 和 Config.sys)中使用的絕大多數基於文本的 .ini 文件。雖然幾個 Windows 操作系統都有注冊表,但這些操作系統的注冊表有一些區別。
注冊表數據存儲在二進制文件中。

注冊表因為它復雜的結構和沒有任何聯系的CLSID鍵使得它可能看上去很神秘。不幸的是,微軟並沒有完全公開講述關於注冊表正確設置的支持信息,這樣使得注冊表看上去更不可琢磨。處理和編輯注冊表如同「黑色藝術」一樣,它在系統中的設置讓用戶感覺象在黑暗中摸索一樣找不到感覺。這樣,因為用戶對這方面的缺乏了解使得注冊表更多的出現故障。

注冊表是一套控制操作系統外表和如何響應外來事件工作的文件。這些「事件」的范圍從直接存取一個硬體設備到介面如何響應特定用戶到應用程序如何運行等等。注冊表因為它的目的和性質變的很復雜,它被設計為專門為32位應用程序工作,文件的大小被限制在大約40MB。

E. 關於注冊表

一、什麼是注冊表?

Windows注冊表是幫助Windows控制硬體、軟體、用戶環境和Windows界面的一套數據文件,注冊表包含在Windows目錄下兩個文件system.dat和user.dat里,還有它們的備份system.da0和user.da0。通過Windows目錄下的regedit.exe程序可以存取注冊表資料庫。在以前,在windows的更早版本(在Win95以前),這些功能是靠win.ini,system.ini和其他和應用程序有關聯的.ini文件來實現的.

在windows操作系統家族中,system.ini和win.ini這兩個文件包含了操作系統所有的控制功能和應用程序的信息,system.ini管理計算機硬體而win.ini管理桌面和應用程序。所有驅動、字體、設置和參數會保存在.ini文件中,任何新程序都會被記錄在.ini文件中。這些記錄會在程序代碼中被引用。因為受win.ini和system.ini文件大小的限制,程序員添加輔助的.INI文件以用來控制更多的應用程序。舉例來說,微軟的Excel有一個excel.ini文件,它包含著選項、設置、預設參數和其他關繫到Excel運行正常的信息。在system.ini和win.ini中只需要指出excel.ini的路徑和文件名即可。

早在Dos和Win3.x的時代,大部分的應用程序都是採用了 ini 文件(初始化文件)來保存一些配置信息,如設置路徑,環境變數等。system.ini和win.ini控制著所有windows和應用程序的特徵和存取方法,它在少數的用戶和少數應用程序的環境中工作的很好。隨著應用程序的數量和復雜性越來越大,則需要在.ini文件中添加更多的參數項。這樣下來,在一個變化的環境中,在應用程序安裝到系統中後,每個人都會更改.ini文件。然而,沒有一個人在刪除應用程序後刪除.ini文件中的相關設置,所以system.ini和win.ini這個兩個文件會變的越來越大。每增加的內容會導致系統性能越來越慢。而且每次應用程序的升級都出現這樣的難題:升級會增加更多的參數項但是從來不去掉舊的設置。而且還有一個明顯的問題,一個.ini文件的最大尺寸是64KB。為了解決這個問題,軟體商自己開始支持自己的.ini文件,然後指向特定的ini文件如win.ini和system.ini文件。這樣下來多個.ini文件影響了系統正常的存取級別設置。如果一個應用程序的.ini文件和WIN.INI文件設置起沖突,究竟是誰的優先順序更高呢?

注冊表最初被設計為一個應用程序的數據文件相關參考文件,最後擴展成對於32位操作系統和應用程序包括了所有功能下的東東。注冊表是一套控制操作系統外表和如何響應外來事件工作的文件。這些「事件」的范圍從直接存取一個硬體設備到介面如何響應特定用戶到應用程序如何運行等等。注冊表因為它的目的和性質變的很復雜,它被設計為專門為32位應用程序工作,文件的大小被限制在大約40MB。利用一個功能強大的注冊表資料庫來統一集中地管理系統硬體設施,軟體配置等信息,從而方便了管理,增強了系統的穩定性。最直觀的一個實例就是,為什麼windows下的不同用戶可以擁有各自的個性化設置,如不同的牆紙,不同的桌面。這就是通過注冊表來實現的。

由此可見,注冊表(Registry)是Windows9x/Me/NT/2000操作系統、硬體設備以及客戶應用程序得以正常運行和保存設置的核心「資料庫」;是一個巨大的樹狀分層的資料庫。它記錄了用戶安裝在機器上的軟體和每個程序的相互關聯關系;它包含了計算機的硬體配置,包括自動配置的即插即用的設備和已有的各種設備說明、狀態屬性以及各種狀態信息和數據等。

二、注冊表都做些什麼?

注冊表是為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用戶來說就顯得非常重要。學會了注冊表的知識以及相關應用,便能使你的電腦操作更加得心應手!從而成為一位名副其實的電腦高手!

三、與注冊表有關的術語:

①、注冊表:是一個樹狀分層的資料庫(如圖1)。從物理上講,它是System.dat和User.dat兩個文件;從邏輯上講,它是用戶在注冊表編輯器中看到的配置數據。

②、HKEY :「根鍵」或「主鍵」,它的圖標與資源管理器中文件夾的圖標有點兒相像。Windows98將注冊表分為六個部分,並稱之為 HKEY_name,它意味著某一鍵的句柄。(圖2)

③、key(鍵):它包含了附加的文件夾和一個或多個值。

④、subkey(子鍵):在某一個鍵(父鍵)下面出現的鍵(子鍵)。

⑤、branch(分支):代表一個特定的子鍵及其所包含的一切。一個分支可以從每個注冊表的頂端開始,但通常用以說明一個鍵和其所有內容。

⑥、value entry(值項):帶有一個名稱和一個值的有序值。每個鍵都可包含任何數量的值項。每個值項均由三部分組成:名稱,數據類型,數據。(如圖3)

★ 名稱:不包括反斜杠的字元、數字、代表符、空格的任意組合。同一鍵中不可有相同的名稱。

★ 數據類型:包括字元串、二進制、雙字三種。

字元串(REG_SZ):顧名思義,一串ASCII碼字元。如「Hello World」,是一串文字或片語。在注冊表中,字元串值一般用來表示文件的描述、硬體的標識等。通常它由字母和數字組成。注冊表總是在引號內顯示字元串。

二進制(REG_BINARY):如 F03D990000BC ,是沒有長度限制的二進制數值,在注冊表編輯器中,二進制數據以十六進制的方式顯示出來。

雙 字(REG_DWORD):從字面上理解應該是Double Word ,雙位元組值。由1-8個十六進制數據組成,我們可用以十六進制或十進制的方式來編輯。如 D1234567 。

★ 數據: 值項的具體值,它可以佔用到64KB。

⑦、 Default(預設值):每一個鍵至少包括一個值項,稱為預設值(Default),它總是一個字串。

四、注冊表的內部組織結構及相互關系

計算機配置和預設用戶設置的注冊表數據在Windows NT中被保存在下面這五個文件中:DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSER.DAT。而 Windows9x/Me/2000將所有注冊表文件存入2個文件中:System.dat和User.dat。它們是二進制文件,不能用文本編輯器查看。它們存在於Windows目錄下,具有隱含、系統、只讀屬性。 System.dat包含了計算機特定的配置數據,User.dat包含了用戶特定的數據。User.dat文件的位置在以某個用戶名登錄時,其位於C:\Windows\profiles\用戶名目錄下,系統同時在C:\Windows目錄下保留了一個預設的User.dat文件,以備新用戶使用。內部組織結構是一個類似於目錄管理的樹狀分層的結構(如圖1)。

WINDOWS的注冊表有六大根鍵,相當於一個硬碟被分成了六個分區。

在「運行」對話框中輸入RegEdit,然後單擊「確定」按鈕,則可以運行注冊表編輯器。

圖1左窗格顯示的是注冊表的根鍵,這樣的根鍵共六個。這些根鍵都是大寫的,並以HKEY_為前綴,這種命令約定是以Win32 API的Registry函數的關鍵字的符號變數為基礎的。

雖然在注冊表中,六個根鍵看上去處於一種並列的地位,彼此毫無關系。但事實上,HKEY_CLASSES_ROOT和HKEY_CURRENT_CONFIG中存放的信息都是HKEY_LOCAL_MACHINE中存放的信息的一部分,而HKEY_CURRENT_USER中存放的信息只是HKEY_USERS存放的信息的一部分。HKEY_LOCAL_MACHINE包括HKEY_CLASSES_ROOT和HKEY_CURRENT_USER中所有的信息。在每次系統啟動後,系統就映射出HKEY_CURRENT_USER中的信息,使得用戶可以查看和編輯其中的信息。

實際上,HKEY_LOCAL_MACHINE\SOFTWARE\Classes就是HKEY_CLASSES_ROOT,為了用戶便於查看和編輯,系統專門把它作為一個根鍵。同理,HKEY_CURRENT_CONFIG\SY-STEM\Current Control就是HKEY_LOCAL_MACHINE\SYSTEM\Current Control。

HKEY_USERS中保存了默認用戶和當前登錄用戶的用戶信息。HKEY_CURRENT_USER中保存了當前登錄用戶的用戶信息。

HKEY_DYN_DATA保存了系統運行時的動態數據,它反映出系統的當前狀態,在每次運行時都是不一樣的,即便是在同一台機器上。

根據上面的分析,注冊表中的信息可以分為HKEY_LOCAL_MACHINE和HKEY_USERS兩大類,這兩大類的詳細內容請看後面的介紹。

五、六大根鍵的作用

注冊表採用「關鍵字」及其「鍵值」來描述登錄項及其數據。所有的關鍵字都是以「HKEY」作為前綴開頭。打個比喻來說,關鍵字更象Windows9X下的瀏覽器里的目錄下的文件,每個文件都會有自己特有的內容和屬性。我們可以在注冊表編輯器下很方便地添加、修改、查詢和刪除注冊表的每一個關鍵字。關鍵字可以分為兩類:一類是由系統定義,一般叫做「預定義關鍵字」;另一類是由應用程序定義的,根據應用軟體的不同,登錄項也就不同。在注冊表中,所有的數據都是通過一種樹狀結構以鍵和子鍵的方式組織起來,十分類似於目錄結構。每個鍵都包含了一組特定的信息,每個鍵的鍵名都是 和它所包含的信息相關的。如果這個鍵包含子鍵,則在注冊表編輯器窗口中代表這個鍵的文件夾的左邊將有「+」符號,以表示在這個文件夾中有更多的內容。如果這個文件夾被用戶打開了,那麼這個「+」就會變成「-」。 下面我們對系統預定義的六大根鍵簡單地介紹一下。

1.HKEY_USERS

該根鍵保存了存放在本地計算機口令列表中的用戶標識和密碼列表,即用戶設置。每個用戶的預配置信息都存儲在HKEY_USERS根鍵中。HKEY_USERS是遠程計算機中訪問的根鍵之一。其內容取決於計算機是否激活了用戶配置文件,若未激活用戶配置文件,則可以看到稱為.DEFAULT的單一子鍵,該子鍵包括和所有用戶相關的各種設置,並且和\Windows下的USER.DAT文件相配合。若激活了用戶配置文件並且正確地執行了登錄,則還有一個「用戶名」的子鍵,該用戶名為用戶登錄的名稱。

2.HKEY_CURRENT_USER

該根鍵包含本地工作站中存放的當前登錄的用戶信息,包括用戶登錄用戶名和暫存的密碼(註:此密碼在輸入時是隱藏的)。用戶登錄Windows 98時,其信息從HKEY_USERS中相應的項拷貝到HKEY_CURRENT_USER中。HKEY_CURRENT_USER下面有7個子關鍵字。其中除RemoteAccess」外,其餘6個都為系統預定義。

AppEvents 這個子鍵里登記已注冊的各種應用事件。

ControlPanel 它裡面涉及到控制面板設置有關的內容。

InstallLocationsMRU windows安裝路徑的有關信息。

Keyboardlayout 關於鍵盤設置的信息。

Network 有關網路設置的信息。

RemoteAccess 安裝IE 時建立的子關鍵字,包含該應用程序的有關信息。

Software 軟體的有關信息。

3.HKEY_CURRENT_CONFIG

該根鍵存放著定義當前用戶桌面配置(如顯示器等)的數據,最後使用的文檔列表(MRU)和其他有關當前用戶的Windows 98中文版的安裝的信息。

4.HKEY_CLASSES_ROOT

該鍵由多個子鍵組成,具體可分為兩種:一種是已經注冊的各類文件的擴展名,另一種是各種文件類型的有關信息。左欄中的子鍵就是各種已經注冊的文件擴展名。 注冊表內己經登記的文件擴展名中,有系統默認和應用程序自定義的擴展名。應用程序只有把自定義的擴展名在注冊表中登記,系統才能識別和關聯使用有關的文檔,但只有經過注冊的擴展名,系統才能自動關聯。根據在Windows 98中文版中安裝的應用程序的擴展名,該根鍵指明其文件類型的名稱。

在第一次安裝Windows 98中文版時,RTF(Rich Text Format)文件與寫字板(WordPad)聯系起來,但在以後安裝了中文Word 6.0後,雙擊一個RTF文件時,將自動激活Word。存放在SYSTEM.DAT中的HKEY_CLASSES_ROOT,將替代WIN.INI文件中的[Extensions]小節中的設置項,它把應用程序與文件擴展名聯系起來,它也替代了Windows 3.x中的Reg.dat文件中的相似的設置項。

5.HKEY_LOCAL_MACHINE

注冊表的核心,計算機的各種硬體和軟體的配置均存在於此。它包括以下八個部分:Config配置、Driver驅動程序、Enum即插即用、Hardware硬體、Network網路、Security安全、Software軟體、System系統。每部分中又包括許多子鍵。該根鍵存放本地計算機硬體數據,此根鍵下的子關鍵字包括在SYSTEM.DAT中,用來提供HKEY_LOCAL_MACHINE所需的信息,或者在遠程計算機中可訪問的一組鍵中。該根鍵中的許多子鍵與System.ini文件中設置項類似。

6.HKEY_DYN_DATA

該根鍵存放了系統在運行時動態數據,此數據在每次顯示時都是變化的,因此,此根鍵下的信息沒有放在注冊表中。

F. 注冊表是什莫

什麼是注冊表?
注冊表因為它復雜的結構和沒有任何聯系的CLSID鍵使得它可能看上去很神秘。不幸的是,微軟並沒有完全公開講述關於注冊表正確設置的支持信息,這樣使得注冊表看上去更不可琢磨。處理和編輯注冊表如同「黑色藝術」一樣,它在系統中的設置讓用戶感覺象在黑暗中摸索一樣找不到感覺。這樣,因為用戶對這方面的缺乏了解使得注冊表更多的出現故障。
Windows注冊表是幫助Windows控制硬體、軟體、用戶環境和Windows界面的一套數據文件,注冊表包含在Windows目錄下兩個文件system.dat和user.dat里,還有它們的備份system.da0和user.da0。通過Windows目錄下的regedit.exe程序可以存取注冊表資料庫。在以前,在windows的更早版本(在win95以前),這些功能是靠win.ini,system.ini和其他和應用程序有關聯的.ini文件來實現的.
在windows操作系統家族中,system.ini和win.ini這兩個文件包含了操作系統所有的控制功能和應用程序的信息,system.ini管理計算機硬體而win.ini管理桌面和應用程序。所有驅動、字體、設置和參數會保存在.ini文件中,任何新程序都會被記錄在.ini文件中。這些記錄會在程序代碼中被引用。因為受win.ini和system.ini文件大小的限制,程序員添加輔助的.INI文件以用來控制更多的應用程序。舉例來說,微軟的Excel有一個excel.ini文件,它包含著選項、設置、預設參數和其他關繫到Excel運行正常的信息。在system.ini和win.ini中只需要指出excel.ini的路徑和文件名即可。
最開始,system.ini和win.ini控制著所有windows和應用程序的特徵和存取方法,它在少數的用戶和少數應用程序的環境中工作的很好。隨著應用程序的數量和復雜性越來越大,則需要在.ini文件中添加更多的參數項。這樣下來,在一個變化的環境中,在應用程序安裝到系統中後,每個人都會更改.ini文件。然而,沒有一個人在刪除應用程序後刪除.ini文件中的相關設置,所以system.ini和win.ini這個兩個文件會變的越來越大。每增加的內容會導致系統性能越來越慢。而且每次應用程序的升級都出現這樣的難題:升級會增加更多的參數項但是從來不去掉舊的設置。而且還有一個明顯的問題,一個.ini文件的最大尺寸是64KB。為了解決這個問題,軟體商自己開始支持自己的.ini文件,然後指向特定的ini文件如win.ini和system.ini文件。這樣下來多個.ini文件影響了系統正常的存取級別設置。如果一個應用程序的.ini文件和WIN.INI文件設置起沖突,究竟是誰的優先順序更高呢?
注冊表最初被設計為一個應用程序的數據文件相關參考文件,最後擴展成對於32位操作系統和應用程序包括了所有功能下的東東.注冊表是一套控制操作系統外表和如何響應外來事件工作的文件。這些「事件」的范圍從直接存取一個硬體設備到介面如何響應特定用戶到應用程序如何運行等等。注冊表因為它的目的和性質變的很復雜,它被設計為專門為32位應用程序工作,文件的大小被限制在大約40MB。

注冊表都做些什麼?
注冊表是為Windows NT和Windows95中所有32位硬體/驅動和32位應用程序設計的數據文件。16位驅動在Winnt下無法工作,所以所有設備都通過注冊表來控制,一般這些是通過BIOS來控制的。在Win95下,16位驅動會繼續以實模式方式設備工作,它們使用system.ini來控制。16位應用程序會工作在NT或者Win95 下,它們的程序仍然會參考win.ini和system.ini文件獲得信息和控制。
在沒有注冊表的情況下,操作系統不會獲得必須的信息來運行和控制附屬的設備和應用程序及正確響應用戶的輸入。
在系統中注冊表是一個記錄32位驅動的設置和位置的資料庫。當操作系統需要存取硬體設備,它使用驅動程序,甚至設備是一個BIOS支持的設備。無BIOS支持設備安裝時必須需要驅動,這個驅動是獨立於操作系統的,但是操作系統需要知道從哪裡找到它們,文件名、版本號、其他設置和信息,沒有注冊表對設備的記錄,它們就不能被使用。
當一個用戶准備運行一個應用程序,注冊表提供應用程序信息給操作系統,這樣應用程序可以被找到,正確數據文件的位置被規定,其他設置也都可以被使用。
注冊表保存關於預設數據和輔助文件的位置信息、菜單、按鈕條、窗口狀態和其他可選項。它同樣也保存了安裝信息(比如說日期),安裝軟體的用戶,軟體版本號和日期,序列號等。根據安裝軟體的不同,它包括的信息也不同。
然而,一般來說,注冊表控制所有32位應用程序和驅動,控制的方法是基於用戶和計算機的,而不依賴於應用程序或驅動,每個注冊表的參數項控制了一個用戶的功能或者計算機功能。用戶功能可能包括了桌面外觀和用戶目錄。所以,計算機功能和安裝的硬體和軟體有關,對所以用戶來說項都是公用的。
有些程序功能對用戶有影響,有些時作用於計算機而不是為個人設置的,同樣的,驅動可能是用戶指定的,但在很多時候,它們在計算機中是通用的。
注冊表控制用戶模式的例子有:
控制面板功能;
桌面外觀和圖標;
網路參數;
瀏覽器功能性和特徵;
那些功能中的某些是和用戶無關的,有些是針對用戶的。
計算機相關控制項基於計算機名,和登陸用戶無關。控制類型的例子是安裝一個應用程序,不管是哪個用戶,程序的可用性和存取是不變的,然而,運行程序圖標依賴於網路上登陸的用戶。網路協議可用性和優先權基於計算機,但是當前連接和用戶信息相關。
這里是在注冊表中基與計算機控制條目的一些例子:
存取控制;
登陸確認;
文件和列印機共享;
網卡設置和協議;
系統性能和虛擬內存設置;
沒有了注冊表,Win95和Winnt 就不太可能存在。它們實在太復雜了,以致於用過去的.ini文件無法控制,它們的擴展能力需要幾乎無限制的安裝和使用應用程序,注冊表實現了它。然而,注冊表比.ini文件更復雜,理解它如何工作,它做什麼和如何用它來做是有效管理系統的關鍵。
在系統中注冊表控制所有32位應用程序和它們的功能及多個應用程序的交互,比如復制和粘貼,它也控制所有的硬體和驅動程序。雖然多數可以通過控制面板來安裝和設置,理解注冊表仍是做Winnt和Win95系統管理基本常識。
二、注冊表的結構
注冊表的結構
注冊表是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信息)將被裝入,以用來保持你自己的桌面和圖標。

控制鍵
在注冊表編輯器中注冊表項是用控制鍵來顯示或者編輯的。控制鍵使得找到和編輯信息項組更容易。因此,注冊表使用這些條目。下面是六個控制鍵
HKEY_LOCAL_MACHINE
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA
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
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
HKEY_DYN_DATA和其他的注冊表控制鍵不同,因為實際上它並不被寫入硬碟驅動器中。Win95的一個優點是,在系統啟動時HKEY_DYN_DATA這個控制鍵儲存收集到的即插即用信息並配置它們。它保存在內存中,Win95用它來控制硬體。因為是在內存中,所以它不從硬碟中讀取,每次當你啟動計算機時,配置都有可能會不一樣。在啟動時Win95必須計算超過1600種可能的配置。所以,如果系統改變既定的設置而沒有報告給Win95那麼潛在的問題就可能發生。系統大多數時間工作良好,但是並非一直如此。
HKEY_USERS
HKEY_USERS僅包含了預設用戶設置和登陸用戶的信息。雖然它包含了所有獨立用戶的設置,但在用戶未登陸網路時用戶的設置是不可用的。這些設置告訴系統哪些圖標會被使用,什麼組可用,哪個開始菜單可用,哪些顏色和字體可用,和控制面板上什麼選項和設置可用。
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\Config\0001\Display
這個鍵表示顯示的設置,如熒屏字體,窗體大小,窗體位置和解析度等
一個小技巧:當設置了計算機不支持的大解析度導致Windows不能啟動時(黑屏),可以修改解析度來解決。進入安全模式,運行regedit.exe,在這個鍵的Resolution鍵值中把數據值修改為640,480或者800,600這樣的低解析度,然後重新啟動計算機即可。
HKEY_LOCAL_MACHINE\Config\0001\System
這個鍵保存著系統里列印機的信息
HKEY_LOCAL_MACHINE\Config\0001\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網路中工作功能,它包括了關於認證過程和證明者的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RemoteAccess
在這個鍵里包括需要遠程工作在win95系統上的信息,有認證參數,主機信息,和為了建立一個撥號連接工作的協議信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP
這個鍵包括了所以snmp(簡單網路管理協議)的參數。它包括了允許的管理,配置陷阱,和有效的團體。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD
vxd鍵包括了win95中所有32位虛擬設備驅動信息,win95自動管理它們,所以不必要用注冊表編輯器編輯它們,所以的靜態vxds用子鍵列出。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebPost
webpost鍵包括了所有裝載的internet郵局的設置,如果你連接一個isp,並且它列出載這里,你應該給自己選則一個伺服器。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock
這個鍵列出了當連接到internet上winnsock文件的信息,如果列出了不正確的文件,你將不會連接上internet。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinTrust
wintrust功能是檢查從Internet上下載來的文件是否有病毒,它可以確保你得到干凈安全的文件。

HKEY_CLASSES_ROOT
在注冊表中HKEY_CLASSES_ROOT是系統中控制所有數據文件的項。這個在Win95和Winnt中是相通的。HKEY_CLASSES_ROOT控制鍵包括了所有文件擴展和所有和執行文件相關的文件。它同樣也決定了當一個文件被雙擊時起反應的相關應用程序。
HKEY_CLASSES_ROOT被用作程序員在安裝軟體時方便的發送信息,在Win95和Winnt中,HKEY_CLASSES_ROOT和HKEY_LOCAL_MACHINE\Software\Classes是相同的。程序員在運行他們的啟動程序時不需要擔憂實際的位置,相反的,他們只需要在HKEY_CLASSES_ROOT中加入數據就可以了。
在Windows用戶圖形界面下,每件事----每個文件,每個目錄,每個小程序,每個連接,每個驅動---都被看做一個對象;每個對象都有確定的屬性和它聯系。HKCR包含著對象類型和它們屬性的列表。HKCR主要的功能被設置為:
一個對象類型和一個文件擴展名關聯
一個對象類型和一種圖標關聯
一個對象類型和一個命令行動作的關聯
定義對象類型相關菜單選項和定義每一個對象類型屬性選項
在Win95中,相關菜單就是當你滑鼠右擊一個對象時所彈出的菜單;屬性就是當你選擇屬性項後一個展開的對話框。用簡單術語來說就是在改變HKCR中的設置可以改變一個給定文件擴展名預設的關聯。改變一個文件類型的預設圖標,和添加或者刪除給定對象類型的彈出菜單內容(或者所有的對象類型)
HKCR包括了三種基本類型的子鍵
\??? 或者文件擴展名子鍵
文件擴展名子鍵在彈出菜單上連接文件擴展名到對象類型和相關操作,屬性項,和相關操作。
\object 類型子鍵
對象類型子鍵定義了一個對象類型在它預設圖標的項,它的彈出菜單和屬性項,它的相關操作和它的CLSID連接。
\CLSID 子鍵
在Windows下每件事都被用一個數字取代它的名字來對待。就象人往往是用名字來處理事情一樣。CLSID是標識所有列出的圖標,應用程序,目錄,文件類型等等對象的數字。是微軟為製造商分配的,每一個都必須是唯一的。製造商將CLSID放入安裝程序文件這樣就可以在安裝時更新注冊表。
注冊表是應用程序進行時它們需要關於做什麼的指示的資料庫。比如說,假定你有一個微軟Excel 7電子數據表的Word 7文檔,當你在Word中雙擊這個電子數據表,應用程序菜單就會變成Excel的菜單而且電子數據表進入編輯狀態,就好象你在Excel中一樣。它是如何知道該做什麼呢?每個Excel 7創建的文件都有Excel的CLSID連接。Word讀這個CLSID後,到注冊表中尋找指示,依賴CLSID下的數據運行.DLL文件或者應用程序。
CLSID子鍵為對象類型提供了OLE和DDE信息和圖標。相關菜單,或者包含在它子鍵中的屬性項信息。這個可能是多數讓人看到後覺得「恐怖」的鍵。每個CLSID數必須是唯一的,實際上,為了這個目的微軟已經出產了CLSID-產生程序--這個結果導致你往往得到32位16進制的數字串,除非你是程序員,否則多數部分鍵看起來是很枯燥的。它們包括內存管理模式,客戶機/伺服器配置,和OLE處理的.dll連接。
關於子鍵的一點註解
1)shell:Shell鍵有個一」action「子鍵,如同」open「一樣,這里有一個command子鍵;command子鍵有一個預設句值,它包含了運行程序的命令行。將一個」open「子鍵放在一個對象類型的shell子鍵中會在這個對象類型的彈出菜單上多出一個」open「選項,給這個open子鍵一個command(預設命令行"C:\Windows \Notepad.exe %1")子鍵會使得打開這個對象類型時使用筆記本做為預設應用程序。其他操作選項包括View,Print,Copy,Virus,Scan等等。
2)shellex:Shellex鍵有一個子鍵。它們包含的每一個子鍵指向一個為對象類型執行OLE和DDE功能的CLSID項(比如說快速查看,一個菜單處理子鍵下指向一個有句值的CLSID鍵列出了包含了文件瀏覽功能的.dll文件)
3)shellnew:ShellNew包含了一個「command」句,它包含了一個打開對象類型「新」文件的命令行。
4)DefaultIcon:DefaultIcon子鍵包含了一個「default」句,?/ca>

G. 注冊表到底是什麼

什麼是注冊表?
注冊表因為它復雜的結構和沒有任何聯系的CLSID鍵使得它可能看上去很神秘。不幸的是,微軟並沒有完全公開講述關於注冊表正確設置的支持信息,這樣使得注冊表看上去更不可琢磨。處理和編輯注冊表如同「黑色藝術」一樣,它在系統中的設置讓用戶感覺象在黑暗中摸索一樣找不到感覺。這樣,因為用戶對這方面的缺乏了解使得注冊表更多的出現故障。
Windows注冊表是幫助Windows控制硬體、軟體、用戶環境和Windows界面的一套數據文件,注冊表包含在Windows目錄下兩個文件system.dat和user.dat里,還有它們的備份system.da0和user.da0。通過Windows目錄下的regedit.exe程序可以存取注冊表資料庫。在以前,在windows的更早版本(在win95以前),這些功能是靠win.ini,system.ini和其他和應用程序有關聯的.ini文件來實現的.
在windows操作系統家族中,system.ini和win.ini這兩個文件包含了操作系統所有的控制功能和應用程序的信息,system.ini管理計算機硬體而win.ini管理桌面和應用程序。所有驅動、字體、設置和參數會保存在.ini文件中,任何新程序都會被記錄在.ini文件中。這些記錄會在程序代碼中被引用。因為受win.ini和system.ini文件大小的限制,程序員添加輔助的.INI文件以用來控制更多的應用程序。舉例來說,微軟的Excel有一個excel.ini文件,它包含著選項、設置、預設參數和其他關繫到Excel運行正常的信息。在system.ini和win.ini中只需要指出excel.ini的路徑和文件名即可。
最開始,system.ini和win.ini控制著所有windows和應用程序的特徵和存取方法,它在少數的用戶和少數應用程序的環境中工作的很好。隨著應用程序的數量和復雜性越來越大,則需要在.ini文件中添加更多的參數項。這樣下來,在一個變化的環境中,在應用程序安裝到系統中後,每個人都會更改.ini文件。然而,沒有一個人在刪除應用程序後刪除.ini文件中的相關設置,所以system.ini和win.ini這個兩個文件會變的越來越大。每增加的內容會導致系統性能越來越慢。而且每次應用程序的升級都出現這樣的難題:升級會增加更多的參數項但是從來不去掉舊的設置。而且還有一個明顯的問題,一個.ini文件的最大尺寸是64KB。為了解決這個問題,軟體商自己開始支持自己的.ini文件,然後指向特定的ini文件如win.ini和system.ini文件。這樣下來多個.ini文件影響了系統正常的存取級別設置。如果一個應用程序的.ini文件和WIN.INI文件設置起沖突,究竟是誰的優先順序更高呢?
注冊表最初被設計為一個應用程序的數據文件相關參考文件,最後擴展成對於32位操作系統和應用程序包括了所有功能下的東東.注冊表是一套控制操作系統外表和如何響應外來事件工作的文件。這些「事件」的范圍從直接存取一個硬體設備到介面如何響應特定用戶到應用程序如何運行等等。注冊表因為它的目的和性質變的很復雜,它被設計為專門為32位應用程序工作,文件的大小被限制在大約40MB。

注冊表都做些什麼?
注冊表是為Windows NT和Windows95中所有32位硬體/驅動和32位應用程序設計的數據文件。16位驅動在Winnt下無法工作,所以所有設備都通過注冊表來控制,一般這些是通過BIOS來控制的。在Win95下,16位驅動會繼續以實模式方式設備工作,它們使用system.ini來控制。16位應用程序會工作在NT或者Win95 下,它們的程序仍然會參考win.ini和system.ini文件獲得信息和控制。
在沒有注冊表的情況下,操作系統不會獲得必須的信息來運行和控制附屬的設備和應用程序及正確響應用戶的輸入。
在系統中注冊表是一個記錄32位驅動的設置和位置的資料庫。當操作系統需要存取硬體設備,它使用驅動程序,甚至設備是一個BIOS支持的設備。無BIOS支持設備安裝時必須需要驅動,這個驅動是獨立於操作系統的,但是操作系統需要知道從哪裡找到它們,文件名、版本號、其他設置和信息,沒有注冊表對設備的記錄,它們就不能被使用。
當一個用戶准備運行一個應用程序,注冊表提供應用程序信息給操作系統,這樣應用程序可以被找到,正確數據文件的位置被規定,其他設置也都可以被使用。
注冊表保存關於預設數據和輔助文件的位置信息、菜單、按鈕條、窗口狀態和其他可選項。它同樣也保存了安裝信息(比如說日期),安裝軟體的用戶,軟體版本號和日期,序列號等。根據安裝軟體的不同,它包括的信息也不同。
然而,一般來說,注冊表控制所有32位應用程序和驅動,控制的方法是基於用戶和計算機的,而不依賴於應用程序或驅動,每個注冊表的參數項控制了一個用戶的功能或者計算機功能。用戶功能可能包括了桌面外觀和用戶目錄。所以,計算機功能和安裝的硬體和軟體有關,對所以用戶來說項都是公用的。
有些程序功能對用戶有影響,有些時作用於計算機而不是為個人設置的,同樣的,驅動可能是用戶指定的,但在很多時候,它們在計算機中是通用的。
注冊表控制用戶模式的例子有:
控制面板功能;
桌面外觀和圖標;
網路參數;
瀏覽器功能性和特徵;
那些功能中的某些是和用戶無關的,有些是針對用戶的。
計算機相關控制項基於計算機名,和登陸用戶無關。控制類型的例子是安裝一個應用程序,不管是哪個用戶,程序的可用性和存取是不變的,然而,運行程序圖標依賴於網路上登陸的用戶。網路協議可用性和優先權基於計算機,但是當前連接和用戶信息相關。
這里是在注冊表中基與計算機控制條目的一些例子:
存取控制;
登陸確認;
文件和列印機共享;
網卡設置和協議;
系統性能和虛擬內存設置;
沒有了注冊表,Win95和Winnt 就不太可能存在。它們實在太復雜了,以致於用過去的.ini文件無法控制,它們的擴展能力需要幾乎無限制的安裝和使用應用程序,注冊表實現了它。然而,注冊表比.ini文件更復雜,理解它如何工作,它做什麼和如何用它來做是有效管理系統的關鍵。
在系統中注冊表控制所有32位應用程序和它們的功能及多個應用程序的交互,比如復制和粘貼,它也控制所有的硬體和驅動程序。雖然多數可以通過控制面板來安裝和設置,理解注冊表仍是做Winnt和Win95系統管理基本常識。
二、注冊表的結構
注冊表的結構
注冊表是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信息)將被裝入,以用來保持你自己的桌面和圖標。

控制鍵
在注冊表編輯器中注冊表項是用控制鍵來顯示或者編輯的。控制鍵使得找到和編輯信息項組更容易。因此,注冊表使用這些條目。下面是六個控制鍵
HKEY_LOCAL_MACHINE
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA
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
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
HKEY_DYN_DATA和其他的注冊表控制鍵不同,因為實際上它並不被寫入硬碟驅動器中。Win95的一個優點是,在系統啟動時HKEY_DYN_DATA這個控制鍵儲存收集到的即插即用信息並配置它們。它保存在內存中,Win95用它來控制硬體。因為是在內存中,所以它不從硬碟中讀取,每次當你啟動計算機時,配置都有可能會不一樣。在啟動時Win95必須計算超過1600種可能的配置。所以,如果系統改變既定的設置而沒有報告給Win95那麼潛在的問題就可能發生。系統大多數時間工作良好,但是並非一直如此。
HKEY_USERS
HKEY_USERS僅包含了預設用戶設置和登陸用戶的信息。雖然它包含了所有獨立用戶的設置,但在用戶未登陸網路時用戶的設置是不可用的。這些設置告訴系統哪些圖標會被使用,什麼組可用,哪個開始菜單可用,哪些顏色和字體可用,和控制面板上什麼選項和設置可用。
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\Config\0001\Display
這個鍵表示顯示的設置,如熒屏字體,窗體大小,窗體位置和解析度等
一個小技巧:當設置了計算機不支持的大解析度導致Windows不能啟動時(黑屏),可以修改解析度來解決。進入安全模式,運行regedit.exe,在這個鍵的Resolution鍵值中把數據值修改為640,480或者800,600這樣的低解析度,然後重新啟動計算機即可。
HKEY_LOCAL_MACHINE\Config\0001\System
這個鍵保存著系統里列印機的信息
HKEY_LOCAL_MACHINE\Config\0001\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網路中工作功能,它包括了關於認證過程和證明者的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RemoteAccess
在這個鍵里包括需要遠程工作在win95系統上的信息,有認證參數,主機信息,和為了建立一個撥號連接工作的協議信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP
這個鍵包括了所以snmp(簡單網路管理協議)的參數。它包括了允許的管理,配置陷阱,和有效的團體。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD
vxd鍵包括了win95中所有32位虛擬設備驅動信息,win95自動管理它們,所以不必要用注冊表編輯器編輯它們,所以的靜態vxds用子鍵列出。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebPost
webpost鍵包括了所有裝載的internet郵局的設置,如果你連接一個isp,並且它列出載這里,你應該給自己選則一個伺服器。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock
這個鍵列出了當連接到internet上winnsock文件的信息,如果列出了不正確的文件,你將不會連接上internet。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinTrust
wintrust功能是檢查從Internet上下載來的文件是否有病毒,它可以確保你得到干凈安全的文件。

HKEY_CLASSES_ROOT
在注冊表中HKEY_CLASSES_ROOT是系統中控制所有數據文件的項。這個在Win95和Winnt中是相通的。HKEY_CLASSES_ROOT控制鍵包括了所有文件擴展和所有和執行文件相關的文件。它同樣也決定了當一個文件被雙擊時起反應的相關應用程序。
HKEY_CLASSES_ROOT被用作程序員在安裝軟體時方便的發送信息,在Win95和Winnt中,HKEY_CLASSES_ROOT和HKEY_LOCAL_MACHINE\Software\Classes是相同的。程序員在運行他們的啟動程序時不需要擔憂實際的位置,相反的,他們只需要在HKEY_CLASSES_ROOT中加入數據就可以了。
在Windows用戶圖形界面下,每件事----每個文件,每個目錄,每個小程序,每個連接,每個驅動---都被看做一個對象;每個對象都有確定的屬性和它聯系。HKCR包含著對象類型和它們屬性的列表。HKCR主要的功能被設置為:
一個對象類型和一個文件擴展名關聯
一個對象類型和一種圖標關聯
一個對象類型和一個命令行動作的關聯
定義對象類型相關菜單選項和定義每一個對象類型屬性選項
在Win95中,相關菜單就是當你滑鼠右擊一個對象時所彈出的菜單;屬性就是當你選擇屬性項後一個展開的對話框。用簡單術語來說就是在改變HKCR中的設置可以改變一個給定文件擴展名預設的關聯。改變一個文件類型的預設圖標,和添加或者刪除給定對象類型的彈出菜單內容(或者所有的對象類型)
HKCR包括了三種基本類型的子鍵
\??? 或者文件擴展名子鍵
文件擴展名子鍵在彈出菜單上連接文件擴展名到對象類型和相關操作,屬性項,和相關操作。
\object 類型子鍵
對象類型子鍵定義了一個對象類型在它預設圖標的項,它的彈出菜單和屬性項,它的相關操作和它的CLSID連接。
\CLSID 子鍵
在Windows下每件事都被用一個數字取代它的名字來對待。就象人往往是用名字來處理事情一樣。CLSID是標識所有列出的圖標,應用程序,目錄,文件類型等等對象的數字。是微軟為製造商分配的,每一個都必須是唯一的。製造商將CLSID放入安裝程序文件這樣就可以在安裝時更新注冊表。
注冊表是應用程序進行時它們需要關於做什麼的指示的資料庫。比如說,假定你有一個微軟Excel 7電子數據表的Word 7文檔,當你在Word中雙擊這個電子數據表,應用程序菜單就會變成Excel的菜單而且電子數據表進入編輯狀態,就好象你在Excel中一樣。它是如何知道該做什麼呢?每個Excel 7創建的文件都有Excel的CLSID連接。Word讀這個CLSID後,到注冊表中尋找指示,依賴CLSID下的數據運行.DLL文件或者應用程序。
CLSID子鍵為對象類型提供了OLE和DDE信息和圖標。相關菜單,或者包含在它子鍵中的屬性項信息。這個可能是多數讓人看到後覺得「恐怖」的鍵。每個CLSID數必須是唯一的,實際上,為了這個目的微軟已經出產了CLSID-產生程序--這個結果導致你往往得到32位16進制的數字串,除非你是程序員,否則多數部分鍵看起來是很枯燥的。它們包括內存管理模式,客戶機/伺服器配置,和OLE處理的.dll連接。
關於子鍵的一點註解
1)shell:Shell鍵有個一」action「子鍵,如同」open「一樣,這里有一個command子鍵;command子鍵有一個預設句值,它包含了運行程序的命令行。將一個」open「子鍵放在一個對象類型的shell子鍵中會在這個對象類型的彈出菜單上多出一個」open「選項,給這個open子鍵一個command(預設命令行"C:\Windows \Notepad.exe %1")子鍵會使得打開這個對象類型時使用筆記本做為預設應用程序。其他操作選項包括View,Print,Copy,Virus,Scan等等。
2)shellex:Shellex鍵有一個子鍵。它們包含的每一個子鍵指向一個為對象類型執行OLE和DDE功能的CLSID項(比如說快速查看,一個菜單處理子鍵下指向一個有句值的CLSID鍵列出了包含了文件瀏覽功能的.dll文件)
3)shellnew:ShellNew包含了一個「command」句,它包含了一個打開對象類型「新」文件的命令行。
4)DefaultIcon:DefaultIcon子鍵包含了一個「default」句,?/div>

H. 誰可以告訴我什麼是注冊表啊

開始--運行中輸入 regedit 進入注冊表編輯器。

注冊表包含計算機中每個用戶的配置文件、有關系統硬體的信息、安裝的程序及屬性設置。Windows 在操作過程中不斷地引用這些信息。
可以使用注冊表編輯器檢查與修改注冊表。

也就是說,注冊表是資料庫。它保存整個Windows操作系統所有的配置信息.包括硬體、軟體、用戶、及其它的配置信息。
操作系統工作時要不斷地引用注冊表裡面保存的信息。
注意注冊表和注冊表編輯器的區別。

熱點內容
安卓如何使用messager 發布:2025-01-08 19:14:47 瀏覽:126
電腦伺服器的終端 發布:2025-01-08 19:14:46 瀏覽:826
電腦系統的密碼文件是什麼 發布:2025-01-08 19:14:11 瀏覽:359
ppt加密如何解密 發布:2025-01-08 19:14:11 瀏覽:962
簡單c語言編程 發布:2025-01-08 19:14:10 瀏覽:51
linux安裝jdk配置環境變數配置 發布:2025-01-08 18:46:32 瀏覽:945
資料庫中有商品表如下 發布:2025-01-08 18:44:45 瀏覽:175
壓縮板變形 發布:2025-01-08 18:32:18 瀏覽:287
無鏈接如何查看wifi密碼 發布:2025-01-08 18:31:44 瀏覽:297
小米電腦id和密碼在哪裡 發布:2025-01-08 18:19:03 瀏覽:828