前沿拓展:
WIn10文件關(guān)聯(lián)DDE
1、通過快捷鍵【W(wǎng)in+R】調(diào)出運行窗口,輸入“regedit”后點擊【確定】。
2、找到【HKEY_CLASSES_ROOT\lnkfile】,在右側(cè)新建一個字符串值“IsShortcut”的文件;第二重啟電腦就可以解決。
windows注冊表方面的文章已經(jīng)有好多,但是其中更多的內(nèi)容還是很多windows注冊表的技巧,很多用戶都是“知其然不知其所以然”,而且很多的技巧所涉及的鍵和鍵值根本不為人所知的。這樣并沒有對注冊表有一個系統(tǒng)的介紹。下面這篇文章分三個部分:注冊表和它的用途,注冊表的結(jié)構(gòu),注冊表的問題和故障恢復(fù)。希望讓計算機新手對注冊表有一個簡單、全面的概念和了解。關(guān)于注冊表使用技巧和竅門很多文章都有介紹,在此就不贅述。其中翻譯不恰當和錯誤之處,望大家指正。
注冊表后面的秘密
(一)注冊表和它的角色
什么是注冊表?
注冊表因為它復(fù)雜的結(jié)構(gòu)和沒有任何聯(lián)系的CLSID鍵使得它可能看上去很神秘。不幸的是,微軟并沒有完全公開講述關(guān)于注冊表正確設(shè)置的支持信息,這樣使得注冊表看上去更不可琢磨。處理和編輯注冊表如同“黑色藝術(shù)”一樣,它在系統(tǒng)中的設(shè)置讓用戶感覺象在黑暗中摸索一樣找不到感覺。這樣,因為用戶對這方面的缺乏了解使得注冊表更多的出現(xiàn)故障。
Windows注冊表是幫助Windows控制硬件、軟件、用戶環(huán)境和Windows界面的一套數(shù)據(jù)文件,注冊表包含在Windows目錄下兩個文件 system.dat和user.dat里,還有它們的備份system.da0和user.da0。通過Windows目錄下的regedit.exe 程序可以存取注冊表數(shù)據(jù)庫。在以前,在windows的更早版本(在win95以前),這些功能是靠win.ini,system.ini和其他和應(yīng)用程序有關(guān)聯(lián)的.ini文件來實現(xiàn)的.
在windows**作系統(tǒng)家族中,system.ini和win.ini這兩個文件包含了**作系統(tǒng)所有的控制功能和應(yīng)用程序的信息, system.ini管理計算機硬件而win.ini管理桌面和應(yīng)用程序。所有驅(qū)動、字體、設(shè)置和參數(shù)會保存在.ini文件中,任何新程序都會被記錄在. ini文件中。這些記錄會在程序代碼中被引用。因為受win.ini和system.ini文件大小的限制,程序員添加輔助的.INI文件以用來控制更多的應(yīng)用程序。舉例來說,微軟的Excel有一個excel.ini文件,它包含著選項、設(shè)置、缺省參數(shù)和其他關(guān)系到Excel運行正常的信息。在 system.ini和win.ini中只需要指出excel.ini的路徑和文件名即可。
最開始,system.ini和win.ini控制著所有windows和應(yīng)用程序的特征和存取方法,它在少數(shù)的用戶和少數(shù)應(yīng)用程序的環(huán)境中工作的很好。隨著應(yīng)用程序的數(shù)量和復(fù)雜性越來越大,則需要在.ini文件中添加更多的參數(shù)項。這樣下來,在一個變化的環(huán)境中,在應(yīng)用程序安裝到系統(tǒng)中后,每個人都會更改.ini文件。然而,沒有一個人在刪除應(yīng)用程序后刪除.ini文件中的相關(guān)設(shè)置,所以system.ini和win.ini這個兩個文件會變的越來越大。每增加的內(nèi)容會導致系統(tǒng)性能越來越慢。而且每次應(yīng)用程序的升級都出現(xiàn)這樣的難題:升級會增加更多的參數(shù)項但是從來不去掉舊的設(shè)置。而且還有一個明顯的問題,一個.ini文件的最大尺寸是64KB。為了解決這個問題,軟件商自己開始支持自己的.ini文件,第二指向特定的ini文件如win.ini和 system.ini文件。這樣下來多個.ini文件影響了系統(tǒng)正常的存取級別設(shè)置。如果一個應(yīng)用程序的.ini文件和WIN.INI文件設(shè)置起沖突,究竟是誰的優(yōu)先級更高呢?
注冊表最初被設(shè)計為一個應(yīng)用程序的數(shù)據(jù)文件相關(guān)參考文件,最后擴展成對于32位**作系統(tǒng)和應(yīng)用程序包括了所有功能下的東東.注冊表是一套控制**作系統(tǒng)外表和如何響應(yīng)外來**工作的文件。這些“**”的范圍從直接存取一個硬件設(shè)備到接口如何響應(yīng)特定用戶到應(yīng)用程序如何運行等等。注冊表因為它的目的和性質(zhì)變的很復(fù)雜,它被設(shè)計為專門為32位應(yīng)用程序工作,文件的大小被限制在大約40MB。
注冊表都做些什么?
注冊表是為Windows NT和Windows95中所有32位硬件/驅(qū)動和32位應(yīng)用程序設(shè)計的數(shù)據(jù)文件。16位驅(qū)動在Winnt下無法工作,所以所有設(shè)備都通過注冊表來控制,一般這些是通過BIOS來控制的。在Win95下,16位驅(qū)動會繼續(xù)以實模式方式設(shè)備工作,它們使用system.ini 來控制。16位應(yīng)用程序會工作在NT或者Win95 下,它們的程序仍然會參考win.ini和system.ini文件獲得信息和控制。
在沒有注冊表的情況下,**作系統(tǒng)不會獲得必須的信息來運行和控制附屬的設(shè)備和應(yīng)用程序及正確響應(yīng)用戶的輸入。
在系統(tǒng)中注冊表是一個記錄32位驅(qū)動的設(shè)置和位置的數(shù)據(jù)庫。當**作系統(tǒng)需要存取硬件設(shè)備,它使用驅(qū)動程序,甚至設(shè)備是一個BIOS支持的設(shè)備。無 BIOS支持設(shè)備安裝時必須需要驅(qū)動,這個驅(qū)動是**于**作系統(tǒng)的,但是**作系統(tǒng)需要知道從哪里找到它們,文件名、版本號、其他設(shè)置和信息,沒有注冊表對設(shè)備的記錄,它們就不能被使用。
當一個用戶準備運行一個應(yīng)用程序,注冊表提供應(yīng)用程序信息給**作系統(tǒng),這樣應(yīng)用程序可以被找到,正確數(shù)據(jù)文件的位置被規(guī)定,其他設(shè)置也都可以被使用。
注冊表保存關(guān)于缺省數(shù)據(jù)和輔助文件的位置信息、菜單、按鈕條、窗口狀態(tài)和其他可選項。它同樣也保存了安裝信息(比如說日期),安裝軟件的用戶,軟件版本號和日期,序列號等。根據(jù)安裝軟件的不同,它包括的信息也不同。
然而,一般來說,注冊表控制所有32位應(yīng)用程序和驅(qū)動,控制的方法是基于用戶和計算機的,而不依賴于應(yīng)用程序或驅(qū)動,每個注冊表的參數(shù)項控制了一個用戶的功能或者計算機功能。用戶功能可能包括了桌面外觀和用戶目錄。所以,計算機功能和安裝的硬件和軟件有關(guān),對所以用戶來說項都是公用的。
有些程序功能對用戶有影響,有些時作用于計算機而不是為個人設(shè)置的,同樣的,驅(qū)動可能是用戶指定的,但在很多時候,它們在計算機中是通用的。
注冊表控制用戶模式的例子有:
控制面板功能;
桌面外觀和圖標;
網(wǎng)絡(luò)參數(shù);
瀏覽器功能性和特征;
那些功能中的某些是和用戶無關(guān)的,有些是針對用戶的。
計算機相關(guān)控制項基于計算機名,和登陸用戶無關(guān)??刂祁愋偷睦邮前惭b一個應(yīng)用程序,不管是哪個用戶,程序的可用性和存取是不變的,然而,運行程序圖標依賴于網(wǎng)絡(luò)上登陸的用戶。網(wǎng)絡(luò)協(xié)議可用性和優(yōu)先權(quán)基于計算機,但是當前連接和用戶信息相關(guān)。
這里是在注冊表中基與計算機控制條目的一些例子:
存取控制;
登陸確認;
文件和打印機共享;
網(wǎng)卡設(shè)置和協(xié)議;
系統(tǒng)性能和虛擬內(nèi)存設(shè)置;
沒有了注冊表,Win95和Winnt 就不太可能存在。它們實在太復(fù)雜了,以致于用過去的.ini文件無法控制,它們的擴展能力需要幾乎無限制的安裝和使用應(yīng)用程序,注冊表實現(xiàn)了它。然而,注冊表比.ini文件更復(fù)雜,理解它如何工作,它做什么和如何用它來做是有效管理系統(tǒng)的關(guān)鍵。
在系統(tǒng)中注冊表控制所有32位應(yīng)用程序和它們的功能及多個應(yīng)用程序的交互,比如**和粘貼,它也控制所有的硬件和驅(qū)動程序。雖然多數(shù)可以通過控制面板來安裝和設(shè)置,理解注冊表仍是做Winnt和Win95系統(tǒng)管理基本常識?! ?
二、注冊表的結(jié)構(gòu)
注冊表的結(jié)構(gòu)
注冊表是Windows程序員建造的一個復(fù)雜的信息數(shù)據(jù)庫,它是多層次式的。在不同系統(tǒng)上注冊表的基本結(jié)構(gòu)相同。其中的復(fù)雜數(shù)據(jù)會在不同方式上結(jié)合,從而產(chǎn)生出一個絕對唯一的注冊表。
計算機配置和缺省用戶設(shè)置的注冊表數(shù)據(jù)在Winnt中被保存在下面這五個文件中:
DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSER.DAT。
Win95中所有系統(tǒng)注冊信息保存在windows目錄下的SYSTEM.DAT文件里。所有硬件設(shè)置和軟件信息也保存在這個文件。它要比NT注冊表文件簡單的多,因為這里并不需要更多的控制。Win95被設(shè)計為一個網(wǎng)絡(luò)的客戶或者單獨工作的系統(tǒng),所以用戶控制或者安全級別和NT不一樣。這使得 Win95注冊表工作比NT更容易,所以這個文件也比較小。
Win95用戶的注冊數(shù)據(jù)一般被保存在windows目錄下的user.dat里。如果你在控制面板|密碼|用戶配置文件中創(chuàng)建并使用多于一個用戶的配置文件,每個用戶就會有在\WINDOWS
\Profiles\username\USER.DAT下它自己的user.dat文件。在啟動時,系統(tǒng)將記錄你的登陸,從你目錄中的配置文件(USER.DAT信息)將被裝入,以用來保持你自己的桌面和圖標。
控制鍵
在注冊表編輯器中注冊表項是用控制鍵來顯示或者編輯的??刂奇I使得找到和編輯信息項組更容易。因此,注冊表使用這些條目。下面是六個控制鍵
HKEY_LOCAL_MACHINE
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA
HKEY_USERS
HKEY_CURRENT_USER
Winnt和Win95的注冊表并不兼容。從Win95向Winnt升級需要你重新安裝32位應(yīng)用程序,重新在桌面上創(chuàng)建圖標,并重新建立用戶環(huán)境。
通過控制鍵可以比較容易編輯注冊表。雖然它們顯示和編輯好象**的鍵,其實HKEY_CLASSES_ROOT 和 HKEY_CURRENT_CONFIG是 HKEY_LOCAL_MACHINE的一部分。HKEY_CURRENT_USER是HKEY_USERS 的一部分。
HKEY_LOCAL_MACHINE包含了HKEY_CLASSES_ROOT和
HKEY_CURRENT_CONFIG的所有內(nèi)容。每次計算機啟動時,HKEY_CURRENT_CONFIG和HKEY_CLASSES_ROOT的信息被映射用以查看和編輯。
HKEY_CLASSES_ROOT其實就是HKEY_LOCAL_MACHINESOFTWARE\Classes,但是在HKEY_CLASSES_ROOT窗編輯相對來說顯得更容易和有條理。
HKEY_USERS保存著缺省用戶信息和當前登陸用戶信息。當一個域成員計算機啟動并且一個用戶登陸,域控制器自動將信息發(fā)送到 HKEY_CURRENT_USER里,而且HKEY_CURRENT_USER信息被映射到系統(tǒng)內(nèi)存中。其他用戶的信息并不發(fā)送到系統(tǒng),而是記錄在域控制器里。
鍵和子鍵
數(shù)據(jù)被分割成多層次的鍵和子鍵,建立分層次(就象Exploer一樣)結(jié)構(gòu)更易于編輯。每個鍵有成組的信息而且根據(jù)在其中的數(shù)據(jù)類型被命名。每個鍵在它的文件夾圖標上都有一個加號(+)標志子鍵說明在它下面還有更多內(nèi)容的東西。當點開它的時候,文件夾的加號標志被替換成一個減號(-)標志,第二顯示出下一級的子鍵。
所有軟件,硬件,windows工作的設(shè)置都存放在HKEY_LOCAL_MACHINE。所有安全策略,用戶權(quán)限和共享信息也包括在這個鍵中。用戶權(quán)限,安全策略,共享信息可以通過Windows NT域用戶管理器,Explorer和Win95中控制面板來設(shè)置。
HKEY_CLASSES_ROOT
HKEY_CLASSES_ROOT包含了所有應(yīng)用程序運行時必需的信息:
在文件和應(yīng)用程序之間所有的擴展名和關(guān)聯(lián);
所有的驅(qū)動程序名稱;
類的ID數(shù)字(所要存取項的名字用數(shù)字來代替);
DDE和OLE的信息;
用于應(yīng)用程序和文件的圖標;
HKEY_CURRENT_CONFIG.
HKEY_CURRENT_CONFIG是在HKEY_LOCAL_MACHINE中當前硬件配置信息的映射。如果系統(tǒng)只有一個配置文件,也就是原始配置,數(shù)據(jù)將一直在同樣的地方。在控制面板|系統(tǒng)|硬件配置文件|創(chuàng)建一個額外的配置使額外配置信息放入HKEY_LOCAL_MACHINE。當 Win95中存在多個配置文件時,當每次計算機啟動時將給出一個提示讓你選擇一個配置文件。在Winnt中,在啟動時你可以按空格鍵來選擇上次正常啟動時硬件配置文件。根據(jù)硬件配置文件選擇的不同,特定的信息被映射到HKEY_CURRENT_CONFIG。
HKEY_DYN_DATA
HKEY_DYN_DATA和其他的注冊表控制鍵不同,因為實際上它并不被寫入硬盤驅(qū)動器中。Win95的一個優(yōu)點是,在系統(tǒng)啟動時 HKEY_DYN_DATA這個控制鍵儲存收集到的即插即用信息并配置它們。它保存在內(nèi)存中,Win95用它來控制硬件。因為是在內(nèi)存中,所以它不從硬盤中讀取,每次當你啟動計算機時,配置都有可能會不一樣。在啟動時Win95必須計算超過1600種可能的配置。所以,如果系統(tǒng)改變既定的設(shè)置而沒有報告給 Win95那么潛在的問題就可能發(fā)生。系統(tǒng)大多數(shù)時間工作良好,但是并非一直如此。
HKEY_USERS
HKEY_USERS僅包含了缺省用戶設(shè)置和登陸用戶的信息。雖然它包含了所有**用戶的設(shè)置,但在用戶未登陸網(wǎng)絡(luò)時用戶的設(shè)置是不可用的。這些設(shè)置告訴系統(tǒng)哪些圖標會被使用,什么組可用,哪個開始菜單可用,哪些顏色和字體可用,和控制面板上什么選項和設(shè)置可用。
HKEY_CURRENT_USER
用來保存當前用戶和缺省用戶的信息,HKEY_CURRENT_USER僅映射當前登陸用戶的信息。
各主鍵的簡單介紹
HKEY_LOCAL_MACHINE
HKEY_LOCAL_MACHINE是一個顯示控制系統(tǒng)和軟件的處理鍵。HKLM鍵保存著計算機的系統(tǒng)信息。它包括網(wǎng)絡(luò)和硬件上所有的軟件設(shè)置。(比如文件的位置,注冊和未注冊的狀態(tài),版本號等等)這些設(shè)置和用戶無關(guān),因為這些設(shè)置是針對使用這個系統(tǒng)的所有用戶的。
HKEY_LOCAL_MACHINE\AppEvents
為了以后在瘦客戶機上運行客戶機/服務(wù)器這樣的應(yīng)用程序,在Win95/98中AppEvents鍵是空的。應(yīng)用程序?qū)嶋H上都駐留網(wǎng)絡(luò)服務(wù)器上,這些鍵會保存部分指針。
HKEY_LOCAL_MACHINE\Config
這個鍵保存著你計算機上所有不同的硬件設(shè)置(這些從控制面板的系統(tǒng)屬性中硬件配置文件中可以創(chuàng)建)。這些配置在啟動時通常被**到HKCC。每個配置會被用一個鍵(比如0001或者0002等等)來保存,每個都是一個**的配置。如果你只有一個單一的配置,那就只會有0001這個鍵
HKEY_LOCAL_MACHINE\Config\0001\Display
這個鍵表示顯示的設(shè)置,如熒屏字體,窗體大小,窗**置和分辨率等
一個小技巧:當設(shè)置了計算機不支持的大分辨率導致Windows不能啟動時(黑屏),可以修改分辨率來解決。進入安全模式,運行 regedit.exe,在這個鍵的Resolution鍵值中把數(shù)據(jù)值修改為640,480或者800,600這樣的低分辨率,第二重新啟動計算機即可。
HKEY_LOCAL_MACHINE\Config\0001\System
這個鍵保存著系統(tǒng)里打印機的信息 HKEY_LOCAL_MACHINEConfig\0001\System\CurrentControlSet\Control\Print
\Printers
在這個鍵下面,有一個鍵是為系統(tǒng)上每一個打印機設(shè)置的,通過控制面板添加和刪除打印機會調(diào)整這個列表
HKEY_LOCAL_MACHINE\Enum
Enum鍵包含啟動時發(fā)現(xiàn)的硬件設(shè)備和那些既插即用卡的信息。Win95使用總線列舉在啟動時通過不同的.ini文件來檢測硬件信息。那些在啟動時被安裝的和被檢測到的硬件會顯示在這里。子鍵包括BIOS, ESDI, FLOP, HTREE, ISAPNP, Monitor, Network, Root, SCSI, 和 VIRTUAL。子鍵名表示它們各自的硬件設(shè)備信息。
HKEY_LOCAL_MACHINE\Enum\BIOS
BIOS鍵保存著系統(tǒng)中所有即插即用設(shè)備的信息。它們用一套代碼數(shù)列出,包括每一個鍵的詳細說明,舉例,*pnp0400是并行口LPT1的鍵。如果LPT1并不具備即插即用功能,它就會別列入到Enum下的Root鍵中
HKEY_LOCAL_MACHINE\Enum\Root
Root鍵包括所有非即插即用設(shè)備的信息。在這里,我們可以迅速斷定哪些設(shè)備是即插即用,那些不是。比如SCSI適配器,這個設(shè)備必須符合Win95中一個鍵名為ForcedConfig的硬件設(shè)置,這個不會改變。
HKEY_LOCAL_MACHINE\Enum\Network
win95的網(wǎng)絡(luò)功能在這個鍵有詳細說明,子鍵包括了每個已經(jīng)安裝的主要的服務(wù)和協(xié)議。
HKEY_LOCAL_MACHINE\HARDWARE
hardware子鍵包括了兩個多層的子鍵:DESCRIPTION鍵,它包含了**處理器和一個浮點處理器的信息。還有一個設(shè)備映射鍵,它下面的串行鍵列出你所有的com端口。這個hardware鍵僅保存超級終端程序的信息,及數(shù)學處理器和串行口。
HKEY_LOCAL_MACHINE\Network
這個鍵僅保存網(wǎng)絡(luò)登陸信息。所有網(wǎng)絡(luò)服務(wù)細節(jié)都保存在HKEY_LOCAL_MACHINE\Enum\Network這個鍵中。這個鍵有一個子鍵, logon,包括了lmlogon(本地機器登陸?0=false 1=true)的值,logonvalidated(必須登陸驗證),策略處理,主登陸方式(Windows登陸 ,微軟網(wǎng)絡(luò)客戶方式等),用戶名和用戶配置。
HKEY_LOCAL_MACHINE\SECURITY
security 有兩個子鍵,第一個是存?。ㄋ罱K致使一個遠程鍵列出網(wǎng)絡(luò)安全資源,存取權(quán)限等)和提供(包括列出網(wǎng)絡(luò)地址和地址服務(wù)器),這個鍵被保留用在以后使用高級安全功能和NT兼容性上
HKEY_LOCAL_MACHINE\SOFTWARE
這個鍵列出了所有已安裝的32位軟件和程序的.ini文件。它包括了變化,依靠軟件安裝。那些程序的控制功能在這里的子鍵中列出。多數(shù)子鍵簡單的列出了安裝軟件的版本號。
我們在\Microsoft\Windows\Current Version下發(fā)現(xiàn)了一些有意思的設(shè)置,它有如下子鍵:
1.App paths: 你曾經(jīng)安裝過的所有32位軟件的位置。
2.Applets, Compression, Controls Folder : 包括下控制面板象顯示屬性那樣屬性條的附件。
3.Detect, explorer :很多有意思的子鍵如Namespace keys of Desktop和My Computer—-它們指出了回收站和撥號網(wǎng)絡(luò)的CLSID行—-和提示子鍵可以讓你建立自己的提示。
4.Extensions : 一個擴展聯(lián)系的列表,當前相關(guān)聯(lián)的擴展名和比特定的執(zhí)行文件更適合的目標類型。
5.Fonts, fontsize, FS Templates :系統(tǒng)屬性條中所選擇文件系統(tǒng)模板, 服務(wù)器,桌面計算機或者筆記本電腦信息。
6.MS-DOS Emulation :包括一個應(yīng)用程序兼容子鍵 為大量過時的程序二進制鍵所設(shè)。
7.MS-DOS Options :在dos模式下的設(shè)置,如himem.sys,cd-roms等。
8.Network :網(wǎng)絡(luò)驅(qū)動的配置。
9.Nls, Policies :系統(tǒng)管理員認為你不應(yīng)該去做的事。
10.ProfileList :所有可以登陸你計算機的用戶名列表。
11.在Windows啟動時運行的程序的神秘之處是它們并不在開始菜單的啟動文件夾中。它們在HKEY_LOCAL_MACHINE\Microsoft
\Windows\CurrentVersion\下的子鍵中被執(zhí)行。
Run : 程序在啟動時運行
RunOnce : windows初始化時程序在啟動時只運行一次,這個經(jīng)常用在當安裝軟件之后需要重新啟動系統(tǒng)的時候,所以這個鍵一般都是空的。
RunServices : 它就象Run一樣,但是包含了“服務(wù)”,它不象一般的程序它們是比較重要的或者是“系統(tǒng)”程序。但是它們不是VXDs,就象McAfee或者RegServ工作一樣。
RunServicesOnce : 它只運行一次,但是是“系統(tǒng)自身”的安裝(大量的windows安裝參數(shù):通常鍵值包括了系統(tǒng)目錄位置,和win95更新,可選項安裝組件,和windows啟動目錄的子鍵。
注意:在很多黑客木馬軟件中,常常在這里添加鍵值(一般是在Run中),這樣使得木馬軟件可以隨著windows啟動而啟動并且很隱秘。在這里可以查看不正常的啟動項和去掉無用的運行程序(比如我就很不喜歡超級解霸的自動伺服器,在這里可以去掉它)。
12.SharedDLLs:共享DLL的列表,每一個都給出了在一個不可知系統(tǒng)的一個數(shù)字等級。
13.Shell Extensions:列出了“被認可的”O(jiān)LE注冊條,和相應(yīng)的CLSID連接。
14.ShellScrap :這個包含了一個PriorityCacheFormats的子鍵,它包括了一個空的有限值,它更象過去**artDrive命令行參數(shù)的派生。
15.Time Zones : 主鍵值是你現(xiàn)在的時區(qū);子鍵定義了所以可能的時區(qū)。
16.Uninstall:這個保存了程序在添加/刪除程序?qū)υ捒虻娘@示;子鍵包含了指向反安裝程序的路徑。和安裝向?qū)嗨?#8230;….)winlogon(包含了合法登陸布告的文本句)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
這個子鍵包括設(shè)備驅(qū)動和其他服務(wù)的描述和控制。不同于windows nt,win95只包括限制驅(qū)動的控制設(shè)置信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
這個子鍵包括了win95控制面板中的信息。不要編輯這些信息,因為一些小程序的改變在很多地方,一個丟失的項會使這個系統(tǒng)變的不穩(wěn)定
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
這個鍵包括了所有win95的標準服務(wù)。所有被添加的服務(wù)和設(shè)備,每個標準的服務(wù)鍵包括了它的設(shè)置和辨認設(shè)置。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
\Arbitrators
arbitrators鍵包括了當兩個設(shè)備共同占用同樣的設(shè)置需要解決的信息。四個子鍵包括了內(nèi)存地址,沖突,DMA,I/O端口沖突和IRQ沖突。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
\Class
class鍵包括了所有win95支持的設(shè)備classes控制,這些和你在添加新硬件出現(xiàn)的硬件組很類似,還包括了這些設(shè)備如何安裝的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servicesinetaccs
這個鍵包括了關(guān)于這個系統(tǒng)變化的ie附件的可用性,它僅在你安裝過ie2。0或者更高版本才出現(xiàn)。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service**SNP32
msnp32描述了客戶機如何在microsoft網(wǎng)絡(luò)中實現(xiàn)功能,它包括了認證過程和認證者的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesNWNP32
nenp32鍵描述了windows客戶如何在netware網(wǎng)絡(luò)中工作功能,它包括了關(guān)于認證過程和證明者的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesRemoteAccess
在這個鍵里包括需要遠程工作在win95系統(tǒng)上的信息,有認證參數(shù),主機信息,和為了建立一個撥號連接工作的協(xié)議信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesSNMP
這個鍵包括了所以snmp(簡單網(wǎng)絡(luò)管理協(xié)議)的參數(shù)。它包括了允許的管理,配置陷阱,和有效的團體。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesVxD
vxd鍵包括了win95中所有32位虛擬設(shè)備驅(qū)動信息,win95自動管理它們,所以不必要用注冊表編輯器編輯它們,所以的靜態(tài)vxds用子鍵列出。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesWebPost
webpost鍵包括了所有裝載的internet郵局的設(shè)置,如果你連接一個isp,并且它列出載這里,你應(yīng)該給自己選則一個服務(wù)器。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesWinsock
這個鍵列出了當連接到internet上winnsock文件的信息,如果列出了不正確的文件,你將不會連接上internet。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesWinTrust
wintrust功能是檢查從Internet上下載來的文件是否有**,它可以確保你得到干凈安全的文件。
HKEY_CLASSES_ROOT
在注冊表中HKEY_CLASSES_ROOT是系統(tǒng)中控制所有數(shù)據(jù)文件的項。這個在Win95和Winnt中是相通的。 HKEY_CLASSES_ROOT控制鍵包括了所有文件擴展和所有和執(zhí)行文件相關(guān)的文件。它同樣也決定了當一個文件被雙擊時起反應(yīng)的相關(guān)應(yīng)用程序。
HKEY_CLASSES_ROOT被用作程序員在安裝軟件時方便的發(fā)送信息,在Win95和Winnt中,HKEY_CLASSES_ROOT和HKEY_LOCAL_
MACHINE\Software\Classes是相同的。程序員在運行他們的啟動程序時不需要擔憂實際的位置,相反的,他們只需要在HKEY-
CLASSES_ROOT中加入數(shù)據(jù)就可以了。
在Windows用戶圖形界面下,每件事—-每個文件,每個目錄,每個小程序,每個連接,每個驅(qū)動—都被看做一個對象;每個對象都有確定的屬性和它聯(lián)系。HKCR包含著對象類型和它們屬性的列表。HKCR主要的功能被設(shè)置為:
一個對象類型和一個文件擴展名關(guān)聯(lián)
一個對象類型和一種圖標關(guān)聯(lián)
一個對象類型和一個命令行動作的關(guān)聯(lián)
定義對象類型相關(guān)菜單選項和定義每一個對象類型屬性選項
在Win95中,相關(guān)菜單就是當你鼠標右擊一個對象時所彈出的菜單;屬性就是當你選擇屬性項后一個展開的對話框。用簡單術(shù)語來說就是在改變HKCR中的設(shè)置可以改變一個給定文件擴展名缺省的關(guān)聯(lián)。改變一個文件類型的缺省圖標,和添加或者刪除給定對象類型的彈出菜單內(nèi)容(或者所有的對象類型)
HKCR包括了三種基本類型的子鍵
\??? 或者文件擴展名子鍵
文件擴展名子鍵在彈出菜單上連接文件擴展名到對象類型和相關(guān)**作,屬性項,和相關(guān)**作。
\object 類型子鍵
對象類型子鍵定義了一個對象類型在它缺省圖標的項,它的彈出菜單和屬性項,它的相關(guān)**作和它的CLSID連接。
\CLSID 子鍵
在Windows下每件事都被用一個數(shù)字取代它的名字來對待。就象人往往是用名字來處理事情一樣。CLSID是標識所有列出的圖標,應(yīng)用程序,目錄,文件類型等等對象的數(shù)字。是微軟為制造商分配的,每一個都必須是唯一的。制造商將CLSID放入安裝程序文件這樣就可以在安裝時更新注冊表。
注冊表是應(yīng)用程序進行時它們需要關(guān)于做什么的指示的數(shù)據(jù)庫。比如說,假定你有一個微軟Excel 7電子數(shù)據(jù)表的Word 7文檔,當你在Word中雙擊這個電子數(shù)據(jù)表,應(yīng)用程序菜單就會變成Excel的菜單而且電子數(shù)據(jù)表進入編輯狀態(tài),就好象你在Excel中一樣。它是如何知道該做什么呢?每個 Excel 7創(chuàng)建的文件都有Excel的CLSID連接。Word讀這個CLSID后,到注冊表中尋找指示,依賴CLSID下的數(shù)據(jù)運行.DLL文件或者應(yīng)用程序。
CLSID子鍵為對象類型提供了OLE和DDE信息和圖標。相關(guān)菜單,或者包含在它子鍵中的屬性項信息。這個可能是多數(shù)讓人看到后覺得“恐怖”的鍵。每個CLSID數(shù)必須是唯一的,實際上,為了這個目的微軟已經(jīng)出產(chǎn)了CLSID-產(chǎn)生程序–這個結(jié)果導致你往往得到32位16進制的數(shù)字串,除非你是程序員,否則多數(shù)部分鍵看起來是很枯燥的。它們包括內(nèi)存管理模式,客戶機/服務(wù)器配置,和OLE處理的.dll連接。
關(guān)于子鍵的一點注解
1)shell:Shell鍵有個一”action“子鍵,如同”open“一樣,這里有一個command子鍵;command子鍵有一個缺省句值,它包含了運行程序的命令行。將一個”open“子鍵放在一個對象類型的shell子鍵中會在這個對象類型的彈出菜單上多出一個”open“選項,給這個open子鍵一個command(缺省命令行”C:\Windows \Notepad.exe %1″)子鍵會使得打開這個對象類型時使用筆記本做為缺省應(yīng)用程序。其他**作選項包括View,Print,Copy,Virus,Scan等等。
2)shellex:Shellex鍵有一個子鍵。它們包含的每一個子鍵指向一個為對象類型執(zhí)行OLE和DDE功能的CLSID項(比如說快速查看,一個菜單處理子鍵下指向一個有句值的CLSID鍵列出了包含了文件瀏覽功能的.dll文件)
3)shellnew:ShellNew包含了一個“command”句,它包含了一個打開對象類型“新”文件的命令行。
4)DefaultIcon:DefaultIcon子鍵包含了一個“default”句,它包括了一個指向圖標的命令行(比如說,”C:\ Windows \System \shell32.dll,2″ 2就是從0數(shù)的第三個圖標,記住,是在Shell32.dll中的)
除了和它們擴展名關(guān)聯(lián)擴展名和文件類型以外,它們在HKEY_CLASSES_ROOT還有很多項。所有它們的項也都適用于nt,如界面和應(yīng)用程序的執(zhí)行。通常你將編輯僅僅一小部分這樣的項。除了彈出菜單提示以外,所有包含在這里的項只會在安裝應(yīng)用程序,在程序中設(shè)置調(diào)整或者創(chuàng)造關(guān)聯(lián)時被改變。
沒有HKEY_CLASSES_ROOT你是不能啟動系統(tǒng)的;你手工編輯它真的是很困難。HKEY_CLASSES_ROOT是你需要注冊標一個很重要的原因:應(yīng)用程序的控制和**作這個系統(tǒng)??吹剿某叽绾瓦@個處理鍵的復(fù)雜程度,SYSTEM.INI 和 WIN.INI不再夠用也是不用驚奇的。
HKEY_CURRENT_CONFIG
win95一般只使用一個硬件配置文件。如果有多個硬件配置文件。HKEY_LOCAL_MACHINE\Config中就會添加一個鍵。HKEY_LOCAL_MACHINE\Config包含了HKEY_LOCAL_MACHINE中相同的數(shù)據(jù)
在啟動時,你可以選擇你愿意使用的配置文件。如果有多個安裝,每次系統(tǒng)重新啟動時,你就必須選擇.HKEY_CURRENT_CONFIG是在啟動時控制目前硬件配置的鍵
在系統(tǒng)啟動以后,任何地方的變化都會自動影響到它。程序員經(jīng)常使用HKEY_CURRENT_CONFIG方便的來存取配置信息。
HKEY_CURRENT_CONFIG包括了系統(tǒng)中現(xiàn)有的所有配置文件的細節(jié)。你的選擇影響了哪一個硬件配置文件成為現(xiàn)在的。舉例來說,如果配置0002被選擇了,所有0002的配置信息會被映射到這些鍵上
HKEY_CURRENT_CONFIG允許軟件和設(shè)備驅(qū)動程序員很方便的更新注冊表,而不涉及到多個配置文件信息。 HKEY_LOCAL_MACHINE中同樣的數(shù)據(jù)和任何注冊表的變化都會同時的變化。
HKEY_DYN_DATA
在HKEY_DYN_DATA鍵中所有信息都是在啟動時被寫入的。它再現(xiàn)了Win95在系統(tǒng)中控制硬件所使用的動態(tài)數(shù)據(jù)。它僅只有三個鍵。它們保留了系統(tǒng)目前狀態(tài)監(jiān)視所需要的很簡單的信息
在HKEY_DYN_DATA中除了暫時文件,沒有任何數(shù)據(jù)被寫入硬盤。在系統(tǒng)每次重新啟動時所有的數(shù)據(jù)被重新寫入。另外,在既插即用的情況下,當設(shè)備改變狀態(tài)時一些數(shù)據(jù)可能會寫入。(比如說系統(tǒng)運行時在一個PCMCIA槽中插入一塊網(wǎng)卡)
Config Manager
配置管理包括了在Win95中每個安裝設(shè)備啟動時的信息。在啟動時它從HKEY_CURRENT_CONFIG中獲得它的列表并且檢查每個項。如果找到一個沒有在列表中列出的設(shè)備,它向系統(tǒng)報告這些信息來安裝。如果列表中的一個設(shè)備不在系統(tǒng)中,它就會在這個鍵值中顯示這個情況。
Enum
系統(tǒng)中已安裝的每個設(shè)備的啟動狀態(tài)都在這個鍵中被列出。如果某個設(shè)備沒準備好,它就在這里顯示出來。如果它準備好了,它也會顯示出來。每個設(shè)備指針也被列出顯示哪個注冊這個設(shè)備用來做它的控制
PerfStats
系統(tǒng)中所有設(shè)備的性能特征保存在這個鍵。它是十分難讀的,但是通過系統(tǒng)監(jiān)視器就十分容易看懂
Security
這個鍵顯示了登陸在這臺機器和網(wǎng)絡(luò)上的登陸用戶從哪個證明者得到有效的證明
HKEY_USERS
HKEY_USERS將缺省用戶和目前登陸用戶的信息輸入到注冊表編輯器,在win95中,它僅被那些配置文件激活的登陸用戶使用,同樣在nt下,它也是這樣。
win95從user.dat中取得他們的信息,winnt從ntuser.dat中取得信息。.dat文件包含了所有基于用戶的注冊表設(shè)置并且允許你取配置這些用戶的環(huán)境。如果你改變了缺省用戶的設(shè)置,所有新用戶會繼承同樣的設(shè)置。而且,那些已經(jīng)被建立的用戶變的失效。
HKEY_USERS\.DEFAULT
這個鍵的設(shè)置被用于所有新用戶,用戶們的配置文件從這個配置文件中建立。它包括所有的環(huán)境,屏幕,聲音,和其他用戶相關(guān)的功能。
HKEY_USERS\.DEFAULT\AppEvents
這個鍵列出了**響應(yīng),描述,和各種系統(tǒng)功能的聲音
HKEY_USERS\.DEFAULT\AppEvents\Schemes
缺省和當前的聲音方案在這個鍵和它的子鍵中列出。在**的時間中系統(tǒng)播發(fā)這些聲音
HKEY_USERS\.DEFAULT\Console
這個鍵保存了MS-DOS窗口的選項、布局、熒屏顏色和字體設(shè)置。
HKEY_USERS\.DEFAULT\Control Panel
所有在控制面板里配置設(shè)置的信息全保存在這個鍵和它的子鍵中
HKEY_USERS\.DEFAULT\Control Panel\Accessibility
這個鍵保存了所有在控制面板中輔助功能的設(shè)置。
HKEY_USERS\.DEFAULT\Control Panel\Appearance
這個鍵保存了所有在控制面板里顯示外觀的設(shè)置
HKEY_USERS\.DEFAULT\Control Panel\Appearance\Schemes
這個鍵列出了缺省可用的方案,和每個方案包括的顏色和字體。
HKEY_USERS\.DEFAULT\Control Panel\Colors
這個鍵保存了Windows每個缺省顏色的設(shè)置。每個值(顏色名)像一個RGB(紅、綠、藍)值列出來。比如說,黑色是0 0 0,意思就是紅色值是 0,綠色值是0,藍色值也是0。相反的白色就是255 255 255。其他的顏色都是RGB值合成的。
HKEY_USERS\.DEFAULT\Control Panel\Sound
這個鍵決定了在錯誤時系統(tǒng)是否發(fā)出響聲
HKEY_USERS\.DEFAULT\Environment
這個鍵保存了環(huán)境設(shè)置,特定的臨時性文件的位置
HKEY_USERS\.DEFAULT\Keyboard Layout
鍵盤布局設(shè)置被設(shè)置成標準美國英國標準傳統(tǒng)鍵盤布局。如果你選擇了其他的布局,那么數(shù)字列表會不同
HKEY_USERS\.DEFAULT\Software
軟件的安裝設(shè)置被保存在這個鍵中,缺省用戶只有微軟程序的設(shè)置
HKEY_USERS\.DEFAULT\Software\Microsoft
微軟的應(yīng)用程序的相關(guān)設(shè)置被放在這個鍵里。如果其他微軟程序被安裝,它們就更新這個用戶的微軟鍵。在下面的項目顯示了缺省的控制
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows
這個鍵保存了只和windows有聯(lián)系,和windows nt沒關(guān)系的設(shè)置,這些設(shè)置在win95中是相同的,使用同樣的驅(qū)動和功能
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NT
基于nt 功能的設(shè)置在這個鍵中。windows nt沒有這些設(shè)置就不能夠運行,它建立環(huán)境和網(wǎng)絡(luò)上的進程,用戶權(quán)限,打印機,字體等等
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NTCurrentVersion\Winlogon
這個設(shè)置控制了windows nt的登陸功能
HKEY_USERS\.DEFAULT\UNICODE Program Groups
缺省unicode程序組只是在使用程序管理器時被使用,explorer并不使用它們
S-1-5-21-1658001358-1336221227-1912232085-500 (SID)
HKEY_USERS\S-1-5-21-1658001358-1336221227-1912232085-500
這個是目前登陸用戶的sid,每一個網(wǎng)絡(luò)上的用戶都被域用戶管理器分配了一個sid,每一個sid都是唯一的,所以它依賴與登陸用戶,這個信息改變。它是從用戶配置文件的ntuser.dat文件調(diào)出的。一般來說,它的子鍵很多,是基與安裝的軟件的,選擇的和最終設(shè)置
HKEY_USERS\SID\Network
這個鍵顯示了所有連接到其他系統(tǒng)的映射。舉例來說,如果你映射驅(qū)動器H: 到\\server1\docs,它會作為一個子鍵顯示出來
HKEY_USERS\SID\Printers
這個鍵顯示了所有安裝的,共享的和連接的打印機
HKEY_USERS\SID\Software
這個鍵為單獨的用戶擴展,基于為用戶或者被用戶安裝的其他軟件。
HKEY_USERS保存了所有目前登陸用戶和缺省用戶的設(shè)置。登陸用戶的改變就如同不同用戶使用這個系統(tǒng),sid是用戶信息的表現(xiàn)。使用程序重新找到任何用戶的ntuser.dat文件并且把他放如到注冊表中觀看和編輯。
HKEY_CURRENT_USER
HKEY_CURRENT_USER包含著在HKEY_USERS安全辨別里列出的同樣信息。任何在HKEY_CURRENT_USER里的改動也都會立即HKEY_USERS改動。相反也是這樣。
HKEY_CURRENT_USER允許程序員和開發(fā)者易于存取目前登陸用戶的設(shè)置。通過建立這個鍵,微軟很容易在不涉及到用戶的SID下改變,添加和設(shè)置。
也就是說,所有當前的**作改變只是針對當前用戶而改變,并不影響其他用戶。
注冊表后面的秘密(三)注冊表的損壞和解決方法
三、注冊表的損壞和解決方法
注冊表可能出現(xiàn)的問題。
如果注冊表受到嚴重的損害,存取硬件和軟件可能會受到很大的限制,甚至系統(tǒng)不能啟動??赡芤驗橐粋€很小的問題,一個應(yīng)用程序?qū)⒉荒苷5倪\行,或者運行的不穩(wěn)定。
當注冊表在運行時是受保護的,所以它不可能被**,刪除,或者改變內(nèi)容,除非經(jīng)過一個“驗證過的”程序(比如安裝程序,注冊表編輯工具,和域用戶管理器改變安全策略和瀏覽器等)。由于這些保護,注冊表是十分安全的,但是并不是完全能防止的。問題仍會發(fā)生,你需要作好認識它們的準備來應(yīng)付這些問題。
當你注冊表出現(xiàn)問題時,我們大多數(shù)會聽到或者感覺到下面一些癥狀來認識問題,注冊表問題的特征有:
昨天計算機(或者軟件程序)還工作,但是今天它就不工作了;
在我安裝軟件/硬件前它還工作,但是現(xiàn)在我無法使用它了;
我的系統(tǒng)不象以前那樣工作了;
當我試圖關(guān)閉計算機時,硬盤響個不停卻沒有什么反應(yīng);
我的計算機啟動不了了;
天!又是藍屏,**機了;
注冊表變的不正常一般來說有三種原因:
1、應(yīng)用程序和驅(qū)動被添加到系統(tǒng)中
1)在注冊表中找出大半的錯誤與添加和刪除程序有關(guān)。多數(shù)用戶自己添加或者更新驅(qū)動,應(yīng)用程序等等。而且添加和刪除都是多次的。
2)程序本身也有問題。沒有任何應(yīng)用程序沒有bug或者錯誤。最好的情況,就是錯誤微乎其微,復(fù)雜深奧的問題你可能從來沒見過。在設(shè)計程序時因為受時間和經(jīng)費的限制,這些錯誤被放置不管。作為一個程序員來講,在程序里有錯誤可能是次要的,但是它使系統(tǒng)崩潰那就變成一個大問題了。
3)驅(qū)動程序不兼容。個人計算機世界的開放結(jié)構(gòu)體系造成了一定的風險,因為任何類型的部件組合在一起都是可能的。但測試所有的組合并保證所有設(shè)備的兼容性卻不太可能。所以當用在Win95下的驅(qū)動被用在Winnt時,某些問題就會產(chǎn)生。
4)在應(yīng)用程序安裝過程中在注冊表中添加了不正確的項。在安裝時,多數(shù)應(yīng)用程序使用叫一個叫SETUP.INF的文件詳細說明例如需要什么磁盤,哪個目錄將被建立,從哪里**文件,使應(yīng)用程序工作正常所需要建立的注冊表項等等詳細信息。如果在SETUP.INF中有一個錯誤,這個改變也仍然會出現(xiàn),就會出現(xiàn)嚴重的問題。
5)一個應(yīng)用程序?qū)е铝硪粋€應(yīng)用程序和它缺省的文件關(guān)聯(lián)出現(xiàn)錯誤。當一個應(yīng)用程序被安裝后,缺省文件類型被記錄在注冊表中。第二用戶可以通過雙擊來啟動應(yīng)用程序和裝載文件。很多時候,其他應(yīng)用程序也會使用同樣的擴展名。舉例說,當一個TIF圖形在基于注冊表里的設(shè)置被激活時,最后一次裝載的程序?qū)兂梢粋€執(zhí)行體。有時候,徹底不相同和根本不兼容的程序會在它們自己的文檔文件中使用相同的文件擴展名,啟動文檔的快捷方式將不會工作。在用戶**作過程中,如果在文件打開方式選擇了不正確的程序,就會造成一定的問題。
6)在反安裝時出現(xiàn)的錯誤。當你在控制面板里的添加/刪除程序種刪除程序時,通過應(yīng)用程序自身的反安裝特征,或者通過第三方軟件,這可能會對注冊表造成損壞。除此之外,刪除程序,輔助文件,數(shù)據(jù)文件和反安裝程序可能會試圖移去注冊表的參數(shù)項。因為系統(tǒng)不可能知道一個應(yīng)用程序在注冊表中所要存取的相關(guān)參數(shù)項,這將會不經(jīng)意的移除掉其他應(yīng)用程序的參數(shù)項。
7)字體的錯誤。當注冊表中字體ID出錯,你將在應(yīng)用程序中看到一種不同的字體。這就讓人感覺很討厭并可能需要你移去部分或全部字體并取代它們。這經(jīng)常發(fā)生在用戶頻繁安裝和刪除字體的時候。
2、硬件設(shè)置改變或者硬件失敗
1)如果計算機系統(tǒng)自身有問題,注冊表會有損害。通常的,這些錯誤可以在正確的系統(tǒng)維護和管理下避免。
2)**問題。**很隱秘的改變正常的文件和注冊表中的部分內(nèi)容來影響我們的系統(tǒng)。
3)計算機用電如果不正常也會影響計算機系統(tǒng),用UPS可以避免。
4)磁盤問題。很多時候你會因為容量不夠使硬件失敗而換掉你的硬盤。如果整塊硬盤失敗,當然,你將不得不從備份中恢復(fù)你的注冊表。其他的則是磁盤**扇區(qū)或者簇的故障。雖然這些情況在今天的系統(tǒng)不可能發(fā)生,但是磁盤表面介質(zhì)的故障會使得磁盤部分不可讀,包括那些注冊表文件位置。
3、用戶改動了注冊表
1)手工改變注冊表。當人們手工編輯注冊表,由于數(shù)據(jù)的復(fù)雜性和難懂性使得他們難免容易犯錯誤,而且這個錯誤可能很嚴重導致系統(tǒng)工作發(fā)生中斷。
2)拷貝其他注冊表是很多用戶犯的一個嚴重錯誤。因為從其他機器上拷貝來的注冊表文件并不意味著也會在這一個機器上工作正常。對單獨的系統(tǒng)來說注冊表都是特殊的。甚至計算機硬件設(shè)備相同,拷貝來的注冊表在另一個系統(tǒng)上不見得就會工作。如果使用另一個系統(tǒng)的注冊表,多數(shù)硬件設(shè)備將不會工作,用戶和安全問題可能造成數(shù)據(jù)和應(yīng)用程序信息無法使用。
保護Windows注冊表
保護注冊表是很重要的,有很多不同的工具可以實現(xiàn)這一目的。當沒有安全設(shè)置時,用戶可能的錯誤會更多。幸運的是,他們可以有幾中方法來保護Windows注冊表,在注冊表失敗時他們可以用額外的拷貝來恢復(fù)注冊表。下面就是其中的一些方法:
1、使用windows備份軟件
注:Win95和Win98備份程序有部分區(qū)別,在這里只講Win98的備份程序。
Win98中包括一個備份程序。當安裝Win98時如果你選擇“自定義安裝”,或者你可以在控制面板中的添加/刪除程序里安裝它。當你安裝了這個備份程序,從 開始菜單| 程序| 附件 |系統(tǒng)工具 |備份 可以運行它。啟動時,這個程序提示你是否新建一個新備份,打開現(xiàn)有的備份作業(yè),或者是還原備份文件。
如果選擇新建備份,則會有一個備份向?qū)崾灸闳绾稳プ鰝浞荨?
如果選擇取消向?qū)?,那么可以自己手工設(shè)置要備份的內(nèi)容。在備份內(nèi)容里可以備份網(wǎng)絡(luò)和本地驅(qū)動器的文件??梢栽谀阆雮浞荽疟P或者文件的選擇框打上對號來做備份工作。第二在備份在何處里填**做備份的目的位置既可。如果要連同windows注冊表一起備份,那么在 作業(yè)|選項|高級 里,在“備份 windows注冊表”選擇框打?qū)μ柧涂梢粤?。恢?fù)則是備份的逆過程,這里就不詳述了。
2、在安全模式下**注冊表文件
當Win95運行時,注冊表文件被鎖定,只能用注冊表編輯器或者系統(tǒng)自己來進行存取,這些文件不能夠被**到其他地方。如果你在安全模式下啟動 Win95,注冊表就不會使用同樣的方法載入,這樣SYSTEM.DAT 和 USER.DAT就可以被**。實際上安全模式下系統(tǒng)文件是受保護的。
在啟動時,當計算機顯示Starting Windows 95…時按F8鍵進入安全模式。改變SYSTEM.DAT 和 USER.DAT的隱藏和只讀屬性這樣就可以看到和**它們。當拷貝完注冊表文件,不要忘記了改回它們只讀和隱藏屬性。
3、使用微軟配置備份來備份你的注冊表文件
CFGBACK.EXE是Win95(Win98中沒有這個軟件)所附帶的備份軟件。它在Win95CD-ROM上的\Other\Misc\ CFGBACK這個目錄。在系統(tǒng)上拷貝所有的文件到任何一個目錄,第二在桌面上建立一個CFGBACK.EXE的快捷方式。
要做一個注冊表的備份,啟動CFGBACK第二在選擇的備份名位置輸入一個名字第二點備份繼續(xù)。
注意:在使用CFGBACK前確定你已經(jīng)關(guān)掉了所有運行的程序。如果有程序在運行,CFGBACK可能將使得系統(tǒng)崩潰,數(shù)據(jù)丟失,而且保存的是一個不完整的備份。
4、導出注冊表
在我看來,如果你沒有磁帶機或者其他東西。在REGEDIT.EXE中導出選項有一個導出為文本文件。通常使用一個壓縮工具,導出工具選項也可以被用做保存和保護注冊表的方法。
要導出在注冊表中的任意鍵,選中這個鍵第二選擇 注冊|導出注冊表文件。這將會**這個鍵,并提示你在那里存放這個鍵及它的名字,第二用一個擴展名為.REG的文件保存這些數(shù)據(jù)。
當我們用文本格式導出注冊表。我們可以使用象pkzip或者其他壓縮工具壓縮它(可以在正常Dos模式運行的)來節(jié)省空間。
為了備份我們可以在windows目錄下建立一個用來做備份的文件夾。最少在一個月我們應(yīng)該進行定期的備份。因為許多計算機用戶訂閱或購買帶有贈送 CD的計算機雜志。這些CD上有大量的時間限制的共享軟件。許多用戶從其中安裝一個或者多個程序。當軟件過期時它們反安裝這些程序,但是這些程序在注冊表中留下了一些痕跡。頻繁的添加/刪除程序會影響注冊表,但是有了備份相對來說我們就比較安全了。
我們必須重新啟動計算機到DOS模式下來導入,假定你導出你的注冊表為mar99.reg.現(xiàn)在在命令提示下打
REGEDIT /C MAR99.REG
注冊表編輯器將mar99.reg中的數(shù)據(jù)導入你的注冊表并保存。不過只在命令提示下這個全部導入的工作才比較可靠。
技巧:如果你的注冊表不斷的變的龐大,那么先導出它第二象上面那樣再逐個導入它。在這個導入導出過程中注冊表中不必要的項將被清除出去。如果你使用 Win98那么你可以使用Scanreg.exe程序。在windows目錄命令提示下打 Scanreg /fix來執(zhí)行命令。
警告:當你想看一個導出的注冊表內(nèi)容時(擴展名為.reg的文件),不要直接雙擊它,擴展名.reg文件和REGEDIT.EXE是相關(guān)聯(lián)的,這將會在沒得任何提示時自動把這個文件導入到注冊表中。如果這個文件里有不正確的數(shù)據(jù),它將會破壞注冊表。要編輯這個文件,選中它,第二用鼠標右鍵點它第二選擇編輯。
請記住,預(yù)防要比修復(fù)好的多。無論你選擇什么樣的方法備份注冊表,做吧。注冊表太容易被改變了,在發(fā)生突然**時你手頭上有幾個注冊表的備份是解決問題最好的方法。
從注冊表故障中恢復(fù)
這里有四種不同級別的方法可以從Windows注冊表故障中恢復(fù)
Restart
Redetect
Restore
Reinstall
讓我們來看每一個方法來斷定來使用它最適合的時間,并且解決何種類型的問題。
Restart(重新啟動)
Win95注冊表大部分內(nèi)容保存在RAM中。如果哪個信息受損,它就必須重新讀取正確的信息。當你重新啟動系統(tǒng),注冊表將數(shù)據(jù)從硬盤讀到RAM中就可以使用了。
拿字體ID問題來說。每種字體在系統(tǒng)中用一個ID號來使用。當一個字體被用在一個文檔時,這個字體被這個數(shù)字保存并且用一個名字來標識。當字體ID損壞那么字體顯示和打印將被其他字體取代。重新啟動系統(tǒng)從硬盤上刷新數(shù)據(jù),將產(chǎn)生修復(fù)過的字體ID,這樣字體顯示和打印就變的正常了。
這也就是為什么Windows系統(tǒng)故障經(jīng)常在重新啟動后就又恢復(fù)正常的一個原因。
Redetect the Devices(重新檢測硬件)
如果一個設(shè)備工作不正常,那么在注冊表中控制設(shè)備的設(shè)置可能受損了。為了重新設(shè)置注冊表,你應(yīng)該刪除并且重裝設(shè)備的驅(qū)動,或者你應(yīng)該讓Win95重新檢測它們。很多時候,當一個設(shè)備工作不正常,它們會在設(shè)備管理器上此設(shè)備前使用一個驚嘆號標志顯示出來。很明顯,如果設(shè)備從不來工作,可能就是其他問題了。但是如果設(shè)備以前工作,現(xiàn)在出問題,注冊表就需要被恢復(fù)。
要檢測一個設(shè)備,在控制面板上選擇添加新硬件。第一個問題是文你“需要Windows搜索新硬件嗎?”如果你選擇是,Win95將做一個徹底的搜索去找“新”設(shè)備。任何設(shè)置不正確的或者沒找到驅(qū)動的設(shè)備將被檢測到并顯示出來。
Restore(恢復(fù))
從CFGBACK中恢復(fù)注冊表
從CFGBACK中恢復(fù)注冊表有很多好處。如果你建立了幾個備份,你可以選擇正確的一個來恢復(fù)。你可以如同做手術(shù)般放置排列注冊表參數(shù)項。
導入注冊表文件
象前面章節(jié)講述的那樣,一個代替使用備份的方法就是導入一個.REG文件。.REG文件包括了目的數(shù)據(jù)位置,所以對這個文件簡單的雙擊就可以將數(shù)據(jù)放入注冊表。它是所有恢復(fù)程序中最簡單的,但是也可能造成錯誤。錯誤不會是用REGEDIT.EXE把數(shù)據(jù)寫入錯誤的位置,它很可能出現(xiàn)在用戶直接雙擊注冊表文件的時候。
Reinstall(重新安裝)
重新安裝
最后的方法就是重新安裝驅(qū)動、應(yīng)用程序或者Win95。一般來說,它只花費你一個小時左右時間去做這些事。如果你在現(xiàn)有的文件上重新安裝,很多配置信息還被安裝在同樣的地方。同樣在安裝驅(qū)動程序時,你應(yīng)該重新加入配置數(shù)據(jù)。
實際上找出原因并修復(fù)它所花費的時間比重新安裝還要多,這就是為什么重新安裝在技術(shù)支持上是一個相當普通的“解決方法”。關(guān)鍵的問題在于,“你是否想找出是什么錯誤,或者你是否只想讓它工作正常?”**取決于問這個問題的用戶情況,發(fā)生問題的頻繁次數(shù)和重新安裝的軟件的實用性。
當Windows第一次被安裝時它將在啟動目錄的根目錄上創(chuàng)建一個名為SYSTEM.1ST的文件。這是Windows第一次啟動時創(chuàng)建的個簡單的 system.dat文件。你所應(yīng)該做的就是將這個文件放到windows目錄(在dos模式下)并將它的名字改為SYSTEM.DAT。第二重新啟動。第二你就可以得到安裝時第一次啟動的windows。
因為很多.INI,.DLL和其他文件的改變,這種方法的成功機率大概只超過50%。比如當裝IE4.0后系統(tǒng)和注冊表將有一個徹底的改變。我們的system.1st文件雖然包含了一個Dll文件的參考,但它可能更新或者改變版本號。
這里就是幾個在注冊表出故障的時候恢復(fù)它的工具和方法。你的數(shù)據(jù)可能會安全恢復(fù),但是不管你用什么方法,除了重新格式化硬盤,最好的方法就是做好系統(tǒng)注冊表的備份工作。
弈安傳媒科技微課堂,每天分享財經(jīng)資訊,計算機技術(shù)知識,人生感悟,創(chuàng)業(yè)指導以及各種專業(yè)技術(shù)知識資料學習交流.移動學習平臺、知識分享平臺。隨時隨地的學習,如果你喜歡成長,這里你不容錯過的地方.弈安傳媒科技培訓關(guān)注:關(guān)注自己成長,分享內(nèi)容,分享自己的技術(shù),成就未來.
[弈安傳媒科技提升自己的平臺]請關(guān)注:號及** 弈安傳媒科技
拓展知識:
WIn10文件關(guān)聯(lián)DDE
步驟一:我們需要打開電腦,在桌面的任意位置單擊右鍵,在彈出的窗口中選擇“新建”,之后新建“文本文檔”;
步驟二:新建完成文本文檔后,我們雙擊打開新建的文本文檔,將下面代碼**進去:Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.exe] @=”exefile” “Content Type”=”application/x-msdownload” ;[HKEY_CLASSES_ROOT\.exe\PersistentHandler] @=”{098f2470-bae0-11cd-b579-08002b30bfeb}” [HKEY_CLASSES_ROOT\exefile\shell\open\command] @=”\”%1\”” %*””
步驟三:**文成后,我們需要點擊“文件”后在“另存為”,在保存界面上,將保存類型修改為“所有文件”,將文件名修改為“修復(fù)exe關(guān)聯(lián).reg”,點擊保存;
步驟四:按照上述步驟**作之后,在“修復(fù)exe關(guān)聯(lián).reg”文件上單擊右鍵,選擇“合并”;
步驟五:點擊“合并”后,在彈出的提示框中點擊“是”,重啟計算機就可以解決;
步驟六:當我們電腦重啟之后,殺毒軟件就可以運行了,打開殺軟對系統(tǒng)進行**掃描。”
本回答被提問者采納
前沿拓展:
WIn10文件關(guān)聯(lián)DDE
1、通過快捷鍵【W(wǎng)in+R】調(diào)出運行窗口,輸入“regedit”后點擊【確定】。
2、找到【HKEY_CLASSES_ROOT\lnkfile】,在右側(cè)新建一個字符串值“IsShortcut”的文件;第二重啟電腦就可以解決。
windows注冊表方面的文章已經(jīng)有好多,但是其中更多的內(nèi)容還是很多windows注冊表的技巧,很多用戶都是“知其然不知其所以然”,而且很多的技巧所涉及的鍵和鍵值根本不為人所知的。這樣并沒有對注冊表有一個系統(tǒng)的介紹。下面這篇文章分三個部分:注冊表和它的用途,注冊表的結(jié)構(gòu),注冊表的問題和故障恢復(fù)。希望讓計算機新手對注冊表有一個簡單、全面的概念和了解。關(guān)于注冊表使用技巧和竅門很多文章都有介紹,在此就不贅述。其中翻譯不恰當和錯誤之處,望大家指正。
注冊表后面的秘密
(一)注冊表和它的角色
什么是注冊表?
注冊表因為它復(fù)雜的結(jié)構(gòu)和沒有任何聯(lián)系的CLSID鍵使得它可能看上去很神秘。不幸的是,微軟并沒有完全公開講述關(guān)于注冊表正確設(shè)置的支持信息,這樣使得注冊表看上去更不可琢磨。處理和編輯注冊表如同“黑色藝術(shù)”一樣,它在系統(tǒng)中的設(shè)置讓用戶感覺象在黑暗中摸索一樣找不到感覺。這樣,因為用戶對這方面的缺乏了解使得注冊表更多的出現(xiàn)故障。
Windows注冊表是幫助Windows控制硬件、軟件、用戶環(huán)境和Windows界面的一套數(shù)據(jù)文件,注冊表包含在Windows目錄下兩個文件 system.dat和user.dat里,還有它們的備份system.da0和user.da0。通過Windows目錄下的regedit.exe 程序可以存取注冊表數(shù)據(jù)庫。在以前,在windows的更早版本(在win95以前),這些功能是靠win.ini,system.ini和其他和應(yīng)用程序有關(guān)聯(lián)的.ini文件來實現(xiàn)的.
在windows**作系統(tǒng)家族中,system.ini和win.ini這兩個文件包含了**作系統(tǒng)所有的控制功能和應(yīng)用程序的信息, system.ini管理計算機硬件而win.ini管理桌面和應(yīng)用程序。所有驅(qū)動、字體、設(shè)置和參數(shù)會保存在.ini文件中,任何新程序都會被記錄在. ini文件中。這些記錄會在程序代碼中被引用。因為受win.ini和system.ini文件大小的限制,程序員添加輔助的.INI文件以用來控制更多的應(yīng)用程序。舉例來說,微軟的Excel有一個excel.ini文件,它包含著選項、設(shè)置、缺省參數(shù)和其他關(guān)系到Excel運行正常的信息。在 system.ini和win.ini中只需要指出excel.ini的路徑和文件名即可。
最開始,system.ini和win.ini控制著所有windows和應(yīng)用程序的特征和存取方法,它在少數(shù)的用戶和少數(shù)應(yīng)用程序的環(huán)境中工作的很好。隨著應(yīng)用程序的數(shù)量和復(fù)雜性越來越大,則需要在.ini文件中添加更多的參數(shù)項。這樣下來,在一個變化的環(huán)境中,在應(yīng)用程序安裝到系統(tǒng)中后,每個人都會更改.ini文件。然而,沒有一個人在刪除應(yīng)用程序后刪除.ini文件中的相關(guān)設(shè)置,所以system.ini和win.ini這個兩個文件會變的越來越大。每增加的內(nèi)容會導致系統(tǒng)性能越來越慢。而且每次應(yīng)用程序的升級都出現(xiàn)這樣的難題:升級會增加更多的參數(shù)項但是從來不去掉舊的設(shè)置。而且還有一個明顯的問題,一個.ini文件的最大尺寸是64KB。為了解決這個問題,軟件商自己開始支持自己的.ini文件,第二指向特定的ini文件如win.ini和 system.ini文件。這樣下來多個.ini文件影響了系統(tǒng)正常的存取級別設(shè)置。如果一個應(yīng)用程序的.ini文件和WIN.INI文件設(shè)置起沖突,究竟是誰的優(yōu)先級更高呢?
注冊表最初被設(shè)計為一個應(yīng)用程序的數(shù)據(jù)文件相關(guān)參考文件,最后擴展成對于32位**作系統(tǒng)和應(yīng)用程序包括了所有功能下的東東.注冊表是一套控制**作系統(tǒng)外表和如何響應(yīng)外來**工作的文件。這些“**”的范圍從直接存取一個硬件設(shè)備到接口如何響應(yīng)特定用戶到應(yīng)用程序如何運行等等。注冊表因為它的目的和性質(zhì)變的很復(fù)雜,它被設(shè)計為專門為32位應(yīng)用程序工作,文件的大小被限制在大約40MB。
注冊表都做些什么?
注冊表是為Windows NT和Windows95中所有32位硬件/驅(qū)動和32位應(yīng)用程序設(shè)計的數(shù)據(jù)文件。16位驅(qū)動在Winnt下無法工作,所以所有設(shè)備都通過注冊表來控制,一般這些是通過BIOS來控制的。在Win95下,16位驅(qū)動會繼續(xù)以實模式方式設(shè)備工作,它們使用system.ini 來控制。16位應(yīng)用程序會工作在NT或者Win95 下,它們的程序仍然會參考win.ini和system.ini文件獲得信息和控制。
在沒有注冊表的情況下,**作系統(tǒng)不會獲得必須的信息來運行和控制附屬的設(shè)備和應(yīng)用程序及正確響應(yīng)用戶的輸入。
在系統(tǒng)中注冊表是一個記錄32位驅(qū)動的設(shè)置和位置的數(shù)據(jù)庫。當**作系統(tǒng)需要存取硬件設(shè)備,它使用驅(qū)動程序,甚至設(shè)備是一個BIOS支持的設(shè)備。無 BIOS支持設(shè)備安裝時必須需要驅(qū)動,這個驅(qū)動是**于**作系統(tǒng)的,但是**作系統(tǒng)需要知道從哪里找到它們,文件名、版本號、其他設(shè)置和信息,沒有注冊表對設(shè)備的記錄,它們就不能被使用。
當一個用戶準備運行一個應(yīng)用程序,注冊表提供應(yīng)用程序信息給**作系統(tǒng),這樣應(yīng)用程序可以被找到,正確數(shù)據(jù)文件的位置被規(guī)定,其他設(shè)置也都可以被使用。
注冊表保存關(guān)于缺省數(shù)據(jù)和輔助文件的位置信息、菜單、按鈕條、窗口狀態(tài)和其他可選項。它同樣也保存了安裝信息(比如說日期),安裝軟件的用戶,軟件版本號和日期,序列號等。根據(jù)安裝軟件的不同,它包括的信息也不同。
然而,一般來說,注冊表控制所有32位應(yīng)用程序和驅(qū)動,控制的方法是基于用戶和計算機的,而不依賴于應(yīng)用程序或驅(qū)動,每個注冊表的參數(shù)項控制了一個用戶的功能或者計算機功能。用戶功能可能包括了桌面外觀和用戶目錄。所以,計算機功能和安裝的硬件和軟件有關(guān),對所以用戶來說項都是公用的。
有些程序功能對用戶有影響,有些時作用于計算機而不是為個人設(shè)置的,同樣的,驅(qū)動可能是用戶指定的,但在很多時候,它們在計算機中是通用的。
注冊表控制用戶模式的例子有:
控制面板功能;
桌面外觀和圖標;
網(wǎng)絡(luò)參數(shù);
瀏覽器功能性和特征;
那些功能中的某些是和用戶無關(guān)的,有些是針對用戶的。
計算機相關(guān)控制項基于計算機名,和登陸用戶無關(guān)??刂祁愋偷睦邮前惭b一個應(yīng)用程序,不管是哪個用戶,程序的可用性和存取是不變的,然而,運行程序圖標依賴于網(wǎng)絡(luò)上登陸的用戶。網(wǎng)絡(luò)協(xié)議可用性和優(yōu)先權(quán)基于計算機,但是當前連接和用戶信息相關(guān)。
這里是在注冊表中基與計算機控制條目的一些例子:
存取控制;
登陸確認;
文件和打印機共享;
網(wǎng)卡設(shè)置和協(xié)議;
系統(tǒng)性能和虛擬內(nèi)存設(shè)置;
沒有了注冊表,Win95和Winnt 就不太可能存在。它們實在太復(fù)雜了,以致于用過去的.ini文件無法控制,它們的擴展能力需要幾乎無限制的安裝和使用應(yīng)用程序,注冊表實現(xiàn)了它。然而,注冊表比.ini文件更復(fù)雜,理解它如何工作,它做什么和如何用它來做是有效管理系統(tǒng)的關(guān)鍵。
在系統(tǒng)中注冊表控制所有32位應(yīng)用程序和它們的功能及多個應(yīng)用程序的交互,比如**和粘貼,它也控制所有的硬件和驅(qū)動程序。雖然多數(shù)可以通過控制面板來安裝和設(shè)置,理解注冊表仍是做Winnt和Win95系統(tǒng)管理基本常識。
二、注冊表的結(jié)構(gòu)
注冊表的結(jié)構(gòu)
注冊表是Windows程序員建造的一個復(fù)雜的信息數(shù)據(jù)庫,它是多層次式的。在不同系統(tǒng)上注冊表的基本結(jié)構(gòu)相同。其中的復(fù)雜數(shù)據(jù)會在不同方式上結(jié)合,從而產(chǎn)生出一個絕對唯一的注冊表。
計算機配置和缺省用戶設(shè)置的注冊表數(shù)據(jù)在Winnt中被保存在下面這五個文件中:
DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSER.DAT。
Win95中所有系統(tǒng)注冊信息保存在windows目錄下的SYSTEM.DAT文件里。所有硬件設(shè)置和軟件信息也保存在這個文件。它要比NT注冊表文件簡單的多,因為這里并不需要更多的控制。Win95被設(shè)計為一個網(wǎng)絡(luò)的客戶或者單獨工作的系統(tǒng),所以用戶控制或者安全級別和NT不一樣。這使得 Win95注冊表工作比NT更容易,所以這個文件也比較小。
Win95用戶的注冊數(shù)據(jù)一般被保存在windows目錄下的user.dat里。如果你在控制面板|密碼|用戶配置文件中創(chuàng)建并使用多于一個用戶的配置文件,每個用戶就會有在\WINDOWS
\Profiles\username\USER.DAT下它自己的user.dat文件。在啟動時,系統(tǒng)將記錄你的登陸,從你目錄中的配置文件(USER.DAT信息)將被裝入,以用來保持你自己的桌面和圖標。
控制鍵
在注冊表編輯器中注冊表項是用控制鍵來顯示或者編輯的??刂奇I使得找到和編輯信息項組更容易。因此,注冊表使用這些條目。下面是六個控制鍵
HKEY_LOCAL_MACHINE
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA
HKEY_USERS
HKEY_CURRENT_USER
Winnt和Win95的注冊表并不兼容。從Win95向Winnt升級需要你重新安裝32位應(yīng)用程序,重新在桌面上創(chuàng)建圖標,并重新建立用戶環(huán)境。
通過控制鍵可以比較容易編輯注冊表。雖然它們顯示和編輯好象**的鍵,其實HKEY_CLASSES_ROOT 和 HKEY_CURRENT_CONFIG是 HKEY_LOCAL_MACHINE的一部分。HKEY_CURRENT_USER是HKEY_USERS 的一部分。
HKEY_LOCAL_MACHINE包含了HKEY_CLASSES_ROOT和
HKEY_CURRENT_CONFIG的所有內(nèi)容。每次計算機啟動時,HKEY_CURRENT_CONFIG和HKEY_CLASSES_ROOT的信息被映射用以查看和編輯。
HKEY_CLASSES_ROOT其實就是HKEY_LOCAL_MACHINESOFTWARE\Classes,但是在HKEY_CLASSES_ROOT窗編輯相對來說顯得更容易和有條理。
HKEY_USERS保存著缺省用戶信息和當前登陸用戶信息。當一個域成員計算機啟動并且一個用戶登陸,域控制器自動將信息發(fā)送到 HKEY_CURRENT_USER里,而且HKEY_CURRENT_USER信息被映射到系統(tǒng)內(nèi)存中。其他用戶的信息并不發(fā)送到系統(tǒng),而是記錄在域控制器里。
鍵和子鍵
數(shù)據(jù)被分割成多層次的鍵和子鍵,建立分層次(就象Exploer一樣)結(jié)構(gòu)更易于編輯。每個鍵有成組的信息而且根據(jù)在其中的數(shù)據(jù)類型被命名。每個鍵在它的文件夾圖標上都有一個加號(+)標志子鍵說明在它下面還有更多內(nèi)容的東西。當點開它的時候,文件夾的加號標志被替換成一個減號(-)標志,第二顯示出下一級的子鍵。
所有軟件,硬件,windows工作的設(shè)置都存放在HKEY_LOCAL_MACHINE。所有安全策略,用戶權(quán)限和共享信息也包括在這個鍵中。用戶權(quán)限,安全策略,共享信息可以通過Windows NT域用戶管理器,Explorer和Win95中控制面板來設(shè)置。
HKEY_CLASSES_ROOT
HKEY_CLASSES_ROOT包含了所有應(yīng)用程序運行時必需的信息:
在文件和應(yīng)用程序之間所有的擴展名和關(guān)聯(lián);
所有的驅(qū)動程序名稱;
類的ID數(shù)字(所要存取項的名字用數(shù)字來代替);
DDE和OLE的信息;
用于應(yīng)用程序和文件的圖標;
HKEY_CURRENT_CONFIG.
HKEY_CURRENT_CONFIG是在HKEY_LOCAL_MACHINE中當前硬件配置信息的映射。如果系統(tǒng)只有一個配置文件,也就是原始配置,數(shù)據(jù)將一直在同樣的地方。在控制面板|系統(tǒng)|硬件配置文件|創(chuàng)建一個額外的配置使額外配置信息放入HKEY_LOCAL_MACHINE。當 Win95中存在多個配置文件時,當每次計算機啟動時將給出一個提示讓你選擇一個配置文件。在Winnt中,在啟動時你可以按空格鍵來選擇上次正常啟動時硬件配置文件。根據(jù)硬件配置文件選擇的不同,特定的信息被映射到HKEY_CURRENT_CONFIG。
HKEY_DYN_DATA
HKEY_DYN_DATA和其他的注冊表控制鍵不同,因為實際上它并不被寫入硬盤驅(qū)動器中。Win95的一個優(yōu)點是,在系統(tǒng)啟動時 HKEY_DYN_DATA這個控制鍵儲存收集到的即插即用信息并配置它們。它保存在內(nèi)存中,Win95用它來控制硬件。因為是在內(nèi)存中,所以它不從硬盤中讀取,每次當你啟動計算機時,配置都有可能會不一樣。在啟動時Win95必須計算超過1600種可能的配置。所以,如果系統(tǒng)改變既定的設(shè)置而沒有報告給 Win95那么潛在的問題就可能發(fā)生。系統(tǒng)大多數(shù)時間工作良好,但是并非一直如此。
HKEY_USERS
HKEY_USERS僅包含了缺省用戶設(shè)置和登陸用戶的信息。雖然它包含了所有**用戶的設(shè)置,但在用戶未登陸網(wǎng)絡(luò)時用戶的設(shè)置是不可用的。這些設(shè)置告訴系統(tǒng)哪些圖標會被使用,什么組可用,哪個開始菜單可用,哪些顏色和字體可用,和控制面板上什么選項和設(shè)置可用。
HKEY_CURRENT_USER
用來保存當前用戶和缺省用戶的信息,HKEY_CURRENT_USER僅映射當前登陸用戶的信息。
各主鍵的簡單介紹
HKEY_LOCAL_MACHINE
HKEY_LOCAL_MACHINE是一個顯示控制系統(tǒng)和軟件的處理鍵。HKLM鍵保存著計算機的系統(tǒng)信息。它包括網(wǎng)絡(luò)和硬件上所有的軟件設(shè)置。(比如文件的位置,注冊和未注冊的狀態(tài),版本號等等)這些設(shè)置和用戶無關(guān),因為這些設(shè)置是針對使用這個系統(tǒng)的所有用戶的。
HKEY_LOCAL_MACHINE\AppEvents
為了以后在瘦客戶機上運行客戶機/服務(wù)器這樣的應(yīng)用程序,在Win95/98中AppEvents鍵是空的。應(yīng)用程序?qū)嶋H上都駐留網(wǎng)絡(luò)服務(wù)器上,這些鍵會保存部分指針。
HKEY_LOCAL_MACHINE\Config
這個鍵保存著你計算機上所有不同的硬件設(shè)置(這些從控制面板的系統(tǒng)屬性中硬件配置文件中可以創(chuàng)建)。這些配置在啟動時通常被**到HKCC。每個配置會被用一個鍵(比如0001或者0002等等)來保存,每個都是一個**的配置。如果你只有一個單一的配置,那就只會有0001這個鍵
HKEY_LOCAL_MACHINE\Config\0001\Display
這個鍵表示顯示的設(shè)置,如熒屏字體,窗體大小,窗**置和分辨率等
一個小技巧:當設(shè)置了計算機不支持的大分辨率導致Windows不能啟動時(黑屏),可以修改分辨率來解決。進入安全模式,運行 regedit.exe,在這個鍵的Resolution鍵值中把數(shù)據(jù)值修改為640,480或者800,600這樣的低分辨率,第二重新啟動計算機即可。
HKEY_LOCAL_MACHINE\Config\0001\System
這個鍵保存著系統(tǒng)里打印機的信息 HKEY_LOCAL_MACHINEConfig\0001\System\CurrentControlSet\Control\Print
\Printers
在這個鍵下面,有一個鍵是為系統(tǒng)上每一個打印機設(shè)置的,通過控制面板添加和刪除打印機會調(diào)整這個列表
HKEY_LOCAL_MACHINE\Enum
Enum鍵包含啟動時發(fā)現(xiàn)的硬件設(shè)備和那些既插即用卡的信息。Win95使用總線列舉在啟動時通過不同的.ini文件來檢測硬件信息。那些在啟動時被安裝的和被檢測到的硬件會顯示在這里。子鍵包括BIOS, ESDI, FLOP, HTREE, ISAPNP, Monitor, Network, Root, SCSI, 和 VIRTUAL。子鍵名表示它們各自的硬件設(shè)備信息。
HKEY_LOCAL_MACHINE\Enum\BIOS
BIOS鍵保存著系統(tǒng)中所有即插即用設(shè)備的信息。它們用一套代碼數(shù)列出,包括每一個鍵的詳細說明,舉例,*pnp0400是并行口LPT1的鍵。如果LPT1并不具備即插即用功能,它就會別列入到Enum下的Root鍵中
HKEY_LOCAL_MACHINE\Enum\Root
Root鍵包括所有非即插即用設(shè)備的信息。在這里,我們可以迅速斷定哪些設(shè)備是即插即用,那些不是。比如SCSI適配器,這個設(shè)備必須符合Win95中一個鍵名為ForcedConfig的硬件設(shè)置,這個不會改變。
HKEY_LOCAL_MACHINE\Enum\Network
win95的網(wǎng)絡(luò)功能在這個鍵有詳細說明,子鍵包括了每個已經(jīng)安裝的主要的服務(wù)和協(xié)議。
HKEY_LOCAL_MACHINE\HARDWARE
hardware子鍵包括了兩個多層的子鍵:DESCRIPTION鍵,它包含了**處理器和一個浮點處理器的信息。還有一個設(shè)備映射鍵,它下面的串行鍵列出你所有的com端口。這個hardware鍵僅保存超級終端程序的信息,及數(shù)學處理器和串行口。
HKEY_LOCAL_MACHINE\Network
這個鍵僅保存網(wǎng)絡(luò)登陸信息。所有網(wǎng)絡(luò)服務(wù)細節(jié)都保存在HKEY_LOCAL_MACHINE\Enum\Network這個鍵中。這個鍵有一個子鍵, logon,包括了lmlogon(本地機器登陸?0=false 1=true)的值,logonvalidated(必須登陸驗證),策略處理,主登陸方式(Windows登陸 ,微軟網(wǎng)絡(luò)客戶方式等),用戶名和用戶配置。
HKEY_LOCAL_MACHINE\SECURITY
security 有兩個子鍵,第一個是存?。ㄋ罱K致使一個遠程鍵列出網(wǎng)絡(luò)安全資源,存取權(quán)限等)和提供(包括列出網(wǎng)絡(luò)地址和地址服務(wù)器),這個鍵被保留用在以后使用高級安全功能和NT兼容性上
HKEY_LOCAL_MACHINE\SOFTWARE
這個鍵列出了所有已安裝的32位軟件和程序的.ini文件。它包括了變化,依靠軟件安裝。那些程序的控制功能在這里的子鍵中列出。多數(shù)子鍵簡單的列出了安裝軟件的版本號。
我們在\Microsoft\Windows\Current Version下發(fā)現(xiàn)了一些有意思的設(shè)置,它有如下子鍵:
1.App paths: 你曾經(jīng)安裝過的所有32位軟件的位置。
2.Applets, Compression, Controls Folder : 包括下控制面板象顯示屬性那樣屬性條的附件。
3.Detect, explorer :很多有意思的子鍵如Namespace keys of Desktop和My Computer—-它們指出了回收站和撥號網(wǎng)絡(luò)的CLSID行—-和提示子鍵可以讓你建立自己的提示。
4.Extensions : 一個擴展聯(lián)系的列表,當前相關(guān)聯(lián)的擴展名和比特定的執(zhí)行文件更適合的目標類型。
5.Fonts, fontsize, FS Templates :系統(tǒng)屬性條中所選擇文件系統(tǒng)模板, 服務(wù)器,桌面計算機或者筆記本電腦信息。
6.MS-DOS Emulation :包括一個應(yīng)用程序兼容子鍵 為大量過時的程序二進制鍵所設(shè)。
7.MS-DOS Options :在dos模式下的設(shè)置,如himem.sys,cd-roms等。
8.Network :網(wǎng)絡(luò)驅(qū)動的配置。
9.Nls, Policies :系統(tǒng)管理員認為你不應(yīng)該去做的事。
10.ProfileList :所有可以登陸你計算機的用戶名列表。
11.在Windows啟動時運行的程序的神秘之處是它們并不在開始菜單的啟動文件夾中。它們在HKEY_LOCAL_MACHINE\Microsoft
\Windows\CurrentVersion\下的子鍵中被執(zhí)行。
Run : 程序在啟動時運行
RunOnce : windows初始化時程序在啟動時只運行一次,這個經(jīng)常用在當安裝軟件之后需要重新啟動系統(tǒng)的時候,所以這個鍵一般都是空的。
RunServices : 它就象Run一樣,但是包含了“服務(wù)”,它不象一般的程序它們是比較重要的或者是“系統(tǒng)”程序。但是它們不是VXDs,就象McAfee或者RegServ工作一樣。
RunServicesOnce : 它只運行一次,但是是“系統(tǒng)自身”的安裝(大量的windows安裝參數(shù):通常鍵值包括了系統(tǒng)目錄位置,和win95更新,可選項安裝組件,和windows啟動目錄的子鍵。
注意:在很多黑客木馬軟件中,常常在這里添加鍵值(一般是在Run中),這樣使得木馬軟件可以隨著windows啟動而啟動并且很隱秘。在這里可以查看不正常的啟動項和去掉無用的運行程序(比如我就很不喜歡超級解霸的自動伺服器,在這里可以去掉它)。
12.SharedDLLs:共享DLL的列表,每一個都給出了在一個不可知系統(tǒng)的一個數(shù)字等級。
13.Shell Extensions:列出了“被認可的”O(jiān)LE注冊條,和相應(yīng)的CLSID連接。
14.ShellScrap :這個包含了一個PriorityCacheFormats的子鍵,它包括了一個空的有限值,它更象過去**artDrive命令行參數(shù)的派生。
15.Time Zones : 主鍵值是你現(xiàn)在的時區(qū);子鍵定義了所以可能的時區(qū)。
16.Uninstall:這個保存了程序在添加/刪除程序?qū)υ捒虻娘@示;子鍵包含了指向反安裝程序的路徑。和安裝向?qū)嗨?#8230;….)winlogon(包含了合法登陸布告的文本句)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
這個子鍵包括設(shè)備驅(qū)動和其他服務(wù)的描述和控制。不同于windows nt,win95只包括限制驅(qū)動的控制設(shè)置信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
這個子鍵包括了win95控制面板中的信息。不要編輯這些信息,因為一些小程序的改變在很多地方,一個丟失的項會使這個系統(tǒng)變的不穩(wěn)定
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
這個鍵包括了所有win95的標準服務(wù)。所有被添加的服務(wù)和設(shè)備,每個標準的服務(wù)鍵包括了它的設(shè)置和辨認設(shè)置。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
\Arbitrators
arbitrators鍵包括了當兩個設(shè)備共同占用同樣的設(shè)置需要解決的信息。四個子鍵包括了內(nèi)存地址,沖突,DMA,I/O端口沖突和IRQ沖突。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
\Class
class鍵包括了所有win95支持的設(shè)備classes控制,這些和你在添加新硬件出現(xiàn)的硬件組很類似,還包括了這些設(shè)備如何安裝的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servicesinetaccs
這個鍵包括了關(guān)于這個系統(tǒng)變化的ie附件的可用性,它僅在你安裝過ie2。0或者更高版本才出現(xiàn)。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service**SNP32
msnp32描述了客戶機如何在microsoft網(wǎng)絡(luò)中實現(xiàn)功能,它包括了認證過程和認證者的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesNWNP32
nenp32鍵描述了windows客戶如何在netware網(wǎng)絡(luò)中工作功能,它包括了關(guān)于認證過程和證明者的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesRemoteAccess
在這個鍵里包括需要遠程工作在win95系統(tǒng)上的信息,有認證參數(shù),主機信息,和為了建立一個撥號連接工作的協(xié)議信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesSNMP
這個鍵包括了所以snmp(簡單網(wǎng)絡(luò)管理協(xié)議)的參數(shù)。它包括了允許的管理,配置陷阱,和有效的團體。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesVxD
vxd鍵包括了win95中所有32位虛擬設(shè)備驅(qū)動信息,win95自動管理它們,所以不必要用注冊表編輯器編輯它們,所以的靜態(tài)vxds用子鍵列出。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesWebPost
webpost鍵包括了所有裝載的internet郵局的設(shè)置,如果你連接一個isp,并且它列出載這里,你應(yīng)該給自己選則一個服務(wù)器。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesWinsock
這個鍵列出了當連接到internet上winnsock文件的信息,如果列出了不正確的文件,你將不會連接上internet。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesWinTrust
wintrust功能是檢查從Internet上下載來的文件是否有**,它可以確保你得到干凈安全的文件。
HKEY_CLASSES_ROOT
在注冊表中HKEY_CLASSES_ROOT是系統(tǒng)中控制所有數(shù)據(jù)文件的項。這個在Win95和Winnt中是相通的。 HKEY_CLASSES_ROOT控制鍵包括了所有文件擴展和所有和執(zhí)行文件相關(guān)的文件。它同樣也決定了當一個文件被雙擊時起反應(yīng)的相關(guān)應(yīng)用程序。
HKEY_CLASSES_ROOT被用作程序員在安裝軟件時方便的發(fā)送信息,在Win95和Winnt中,HKEY_CLASSES_ROOT和HKEY_LOCAL_
MACHINE\Software\Classes是相同的。程序員在運行他們的啟動程序時不需要擔憂實際的位置,相反的,他們只需要在HKEY-
CLASSES_ROOT中加入數(shù)據(jù)就可以了。
在Windows用戶圖形界面下,每件事—-每個文件,每個目錄,每個小程序,每個連接,每個驅(qū)動—都被看做一個對象;每個對象都有確定的屬性和它聯(lián)系。HKCR包含著對象類型和它們屬性的列表。HKCR主要的功能被設(shè)置為:
一個對象類型和一個文件擴展名關(guān)聯(lián)
一個對象類型和一種圖標關(guān)聯(lián)
一個對象類型和一個命令行動作的關(guān)聯(lián)
定義對象類型相關(guān)菜單選項和定義每一個對象類型屬性選項
在Win95中,相關(guān)菜單就是當你鼠標右擊一個對象時所彈出的菜單;屬性就是當你選擇屬性項后一個展開的對話框。用簡單術(shù)語來說就是在改變HKCR中的設(shè)置可以改變一個給定文件擴展名缺省的關(guān)聯(lián)。改變一個文件類型的缺省圖標,和添加或者刪除給定對象類型的彈出菜單內(nèi)容(或者所有的對象類型)
HKCR包括了三種基本類型的子鍵
\??? 或者文件擴展名子鍵
文件擴展名子鍵在彈出菜單上連接文件擴展名到對象類型和相關(guān)**作,屬性項,和相關(guān)**作。
\object 類型子鍵
對象類型子鍵定義了一個對象類型在它缺省圖標的項,它的彈出菜單和屬性項,它的相關(guān)**作和它的CLSID連接。
\CLSID 子鍵
在Windows下每件事都被用一個數(shù)字取代它的名字來對待。就象人往往是用名字來處理事情一樣。CLSID是標識所有列出的圖標,應(yīng)用程序,目錄,文件類型等等對象的數(shù)字。是微軟為制造商分配的,每一個都必須是唯一的。制造商將CLSID放入安裝程序文件這樣就可以在安裝時更新注冊表。
注冊表是應(yīng)用程序進行時它們需要關(guān)于做什么的指示的數(shù)據(jù)庫。比如說,假定你有一個微軟Excel 7電子數(shù)據(jù)表的Word 7文檔,當你在Word中雙擊這個電子數(shù)據(jù)表,應(yīng)用程序菜單就會變成Excel的菜單而且電子數(shù)據(jù)表進入編輯狀態(tài),就好象你在Excel中一樣。它是如何知道該做什么呢?每個 Excel 7創(chuàng)建的文件都有Excel的CLSID連接。Word讀這個CLSID后,到注冊表中尋找指示,依賴CLSID下的數(shù)據(jù)運行.DLL文件或者應(yīng)用程序。
CLSID子鍵為對象類型提供了OLE和DDE信息和圖標。相關(guān)菜單,或者包含在它子鍵中的屬性項信息。這個可能是多數(shù)讓人看到后覺得“恐怖”的鍵。每個CLSID數(shù)必須是唯一的,實際上,為了這個目的微軟已經(jīng)出產(chǎn)了CLSID-產(chǎn)生程序–這個結(jié)果導致你往往得到32位16進制的數(shù)字串,除非你是程序員,否則多數(shù)部分鍵看起來是很枯燥的。它們包括內(nèi)存管理模式,客戶機/服務(wù)器配置,和OLE處理的.dll連接。
關(guān)于子鍵的一點注解
1)shell:Shell鍵有個一”action“子鍵,如同”open“一樣,這里有一個command子鍵;command子鍵有一個缺省句值,它包含了運行程序的命令行。將一個”open“子鍵放在一個對象類型的shell子鍵中會在這個對象類型的彈出菜單上多出一個”open“選項,給這個open子鍵一個command(缺省命令行”C:\Windows \Notepad.exe %1″)子鍵會使得打開這個對象類型時使用筆記本做為缺省應(yīng)用程序。其他**作選項包括View,Print,Copy,Virus,Scan等等。
2)shellex:Shellex鍵有一個子鍵。它們包含的每一個子鍵指向一個為對象類型執(zhí)行OLE和DDE功能的CLSID項(比如說快速查看,一個菜單處理子鍵下指向一個有句值的CLSID鍵列出了包含了文件瀏覽功能的.dll文件)
3)shellnew:ShellNew包含了一個“command”句,它包含了一個打開對象類型“新”文件的命令行。
4)DefaultIcon:DefaultIcon子鍵包含了一個“default”句,它包括了一個指向圖標的命令行(比如說,”C:\ Windows \System \shell32.dll,2″ 2就是從0數(shù)的第三個圖標,記住,是在Shell32.dll中的)
除了和它們擴展名關(guān)聯(lián)擴展名和文件類型以外,它們在HKEY_CLASSES_ROOT還有很多項。所有它們的項也都適用于nt,如界面和應(yīng)用程序的執(zhí)行。通常你將編輯僅僅一小部分這樣的項。除了彈出菜單提示以外,所有包含在這里的項只會在安裝應(yīng)用程序,在程序中設(shè)置調(diào)整或者創(chuàng)造關(guān)聯(lián)時被改變。
沒有HKEY_CLASSES_ROOT你是不能啟動系統(tǒng)的;你手工編輯它真的是很困難。HKEY_CLASSES_ROOT是你需要注冊標一個很重要的原因:應(yīng)用程序的控制和**作這個系統(tǒng)??吹剿某叽绾瓦@個處理鍵的復(fù)雜程度,SYSTEM.INI 和 WIN.INI不再夠用也是不用驚奇的。
HKEY_CURRENT_CONFIG
win95一般只使用一個硬件配置文件。如果有多個硬件配置文件。HKEY_LOCAL_MACHINE\Config中就會添加一個鍵。HKEY_LOCAL_MACHINE\Config包含了HKEY_LOCAL_MACHINE中相同的數(shù)據(jù)
在啟動時,你可以選擇你愿意使用的配置文件。如果有多個安裝,每次系統(tǒng)重新啟動時,你就必須選擇.HKEY_CURRENT_CONFIG是在啟動時控制目前硬件配置的鍵
在系統(tǒng)啟動以后,任何地方的變化都會自動影響到它。程序員經(jīng)常使用HKEY_CURRENT_CONFIG方便的來存取配置信息。
HKEY_CURRENT_CONFIG包括了系統(tǒng)中現(xiàn)有的所有配置文件的細節(jié)。你的選擇影響了哪一個硬件配置文件成為現(xiàn)在的。舉例來說,如果配置0002被選擇了,所有0002的配置信息會被映射到這些鍵上
HKEY_CURRENT_CONFIG允許軟件和設(shè)備驅(qū)動程序員很方便的更新注冊表,而不涉及到多個配置文件信息。 HKEY_LOCAL_MACHINE中同樣的數(shù)據(jù)和任何注冊表的變化都會同時的變化。
HKEY_DYN_DATA
在HKEY_DYN_DATA鍵中所有信息都是在啟動時被寫入的。它再現(xiàn)了Win95在系統(tǒng)中控制硬件所使用的動態(tài)數(shù)據(jù)。它僅只有三個鍵。它們保留了系統(tǒng)目前狀態(tài)監(jiān)視所需要的很簡單的信息
在HKEY_DYN_DATA中除了暫時文件,沒有任何數(shù)據(jù)被寫入硬盤。在系統(tǒng)每次重新啟動時所有的數(shù)據(jù)被重新寫入。另外,在既插即用的情況下,當設(shè)備改變狀態(tài)時一些數(shù)據(jù)可能會寫入。(比如說系統(tǒng)運行時在一個PCMCIA槽中插入一塊網(wǎng)卡)
Config Manager
配置管理包括了在Win95中每個安裝設(shè)備啟動時的信息。在啟動時它從HKEY_CURRENT_CONFIG中獲得它的列表并且檢查每個項。如果找到一個沒有在列表中列出的設(shè)備,它向系統(tǒng)報告這些信息來安裝。如果列表中的一個設(shè)備不在系統(tǒng)中,它就會在這個鍵值中顯示這個情況。
Enum
系統(tǒng)中已安裝的每個設(shè)備的啟動狀態(tài)都在這個鍵中被列出。如果某個設(shè)備沒準備好,它就在這里顯示出來。如果它準備好了,它也會顯示出來。每個設(shè)備指針也被列出顯示哪個注冊這個設(shè)備用來做它的控制
PerfStats
系統(tǒng)中所有設(shè)備的性能特征保存在這個鍵。它是十分難讀的,但是通過系統(tǒng)監(jiān)視器就十分容易看懂
Security
這個鍵顯示了登陸在這臺機器和網(wǎng)絡(luò)上的登陸用戶從哪個證明者得到有效的證明
HKEY_USERS
HKEY_USERS將缺省用戶和目前登陸用戶的信息輸入到注冊表編輯器,在win95中,它僅被那些配置文件激活的登陸用戶使用,同樣在nt下,它也是這樣。
win95從user.dat中取得他們的信息,winnt從ntuser.dat中取得信息。.dat文件包含了所有基于用戶的注冊表設(shè)置并且允許你取配置這些用戶的環(huán)境。如果你改變了缺省用戶的設(shè)置,所有新用戶會繼承同樣的設(shè)置。而且,那些已經(jīng)被建立的用戶變的失效。
HKEY_USERS\.DEFAULT
這個鍵的設(shè)置被用于所有新用戶,用戶們的配置文件從這個配置文件中建立。它包括所有的環(huán)境,屏幕,聲音,和其他用戶相關(guān)的功能。
HKEY_USERS\.DEFAULT\AppEvents
這個鍵列出了**響應(yīng),描述,和各種系統(tǒng)功能的聲音
HKEY_USERS\.DEFAULT\AppEvents\Schemes
缺省和當前的聲音方案在這個鍵和它的子鍵中列出。在**的時間中系統(tǒng)播發(fā)這些聲音
HKEY_USERS\.DEFAULT\Console
這個鍵保存了MS-DOS窗口的選項、布局、熒屏顏色和字體設(shè)置。
HKEY_USERS\.DEFAULT\Control Panel
所有在控制面板里配置設(shè)置的信息全保存在這個鍵和它的子鍵中
HKEY_USERS\.DEFAULT\Control Panel\Accessibility
這個鍵保存了所有在控制面板中輔助功能的設(shè)置。
HKEY_USERS\.DEFAULT\Control Panel\Appearance
這個鍵保存了所有在控制面板里顯示外觀的設(shè)置
HKEY_USERS\.DEFAULT\Control Panel\Appearance\Schemes
這個鍵列出了缺省可用的方案,和每個方案包括的顏色和字體。
HKEY_USERS\.DEFAULT\Control Panel\Colors
這個鍵保存了Windows每個缺省顏色的設(shè)置。每個值(顏色名)像一個RGB(紅、綠、藍)值列出來。比如說,黑色是0 0 0,意思就是紅色值是 0,綠色值是0,藍色值也是0。相反的白色就是255 255 255。其他的顏色都是RGB值合成的。
HKEY_USERS\.DEFAULT\Control Panel\Sound
這個鍵決定了在錯誤時系統(tǒng)是否發(fā)出響聲
HKEY_USERS\.DEFAULT\Environment
這個鍵保存了環(huán)境設(shè)置,特定的臨時性文件的位置
HKEY_USERS\.DEFAULT\Keyboard Layout
鍵盤布局設(shè)置被設(shè)置成標準美國英國標準傳統(tǒng)鍵盤布局。如果你選擇了其他的布局,那么數(shù)字列表會不同
HKEY_USERS\.DEFAULT\Software
軟件的安裝設(shè)置被保存在這個鍵中,缺省用戶只有微軟程序的設(shè)置
HKEY_USERS\.DEFAULT\Software\Microsoft
微軟的應(yīng)用程序的相關(guān)設(shè)置被放在這個鍵里。如果其他微軟程序被安裝,它們就更新這個用戶的微軟鍵。在下面的項目顯示了缺省的控制
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows
這個鍵保存了只和windows有聯(lián)系,和windows nt沒關(guān)系的設(shè)置,這些設(shè)置在win95中是相同的,使用同樣的驅(qū)動和功能
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NT
基于nt 功能的設(shè)置在這個鍵中。windows nt沒有這些設(shè)置就不能夠運行,它建立環(huán)境和網(wǎng)絡(luò)上的進程,用戶權(quán)限,打印機,字體等等
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NTCurrentVersion\Winlogon
這個設(shè)置控制了windows nt的登陸功能
HKEY_USERS\.DEFAULT\UNICODE Program Groups
缺省unicode程序組只是在使用程序管理器時被使用,explorer并不使用它們
S-1-5-21-1658001358-1336221227-1912232085-500 (SID)
HKEY_USERS\S-1-5-21-1658001358-1336221227-1912232085-500
這個是目前登陸用戶的sid,每一個網(wǎng)絡(luò)上的用戶都被域用戶管理器分配了一個sid,每一個sid都是唯一的,所以它依賴與登陸用戶,這個信息改變。它是從用戶配置文件的ntuser.dat文件調(diào)出的。一般來說,它的子鍵很多,是基與安裝的軟件的,選擇的和最終設(shè)置
HKEY_USERS\SID\Network
這個鍵顯示了所有連接到其他系統(tǒng)的映射。舉例來說,如果你映射驅(qū)動器H: 到\\server1\docs,它會作為一個子鍵顯示出來
HKEY_USERS\SID\Printers
這個鍵顯示了所有安裝的,共享的和連接的打印機
HKEY_USERS\SID\Software
這個鍵為單獨的用戶擴展,基于為用戶或者被用戶安裝的其他軟件。
HKEY_USERS保存了所有目前登陸用戶和缺省用戶的設(shè)置。登陸用戶的改變就如同不同用戶使用這個系統(tǒng),sid是用戶信息的表現(xiàn)。使用程序重新找到任何用戶的ntuser.dat文件并且把他放如到注冊表中觀看和編輯。
HKEY_CURRENT_USER
HKEY_CURRENT_USER包含著在HKEY_USERS安全辨別里列出的同樣信息。任何在HKEY_CURRENT_USER里的改動也都會立即HKEY_USERS改動。相反也是這樣。
HKEY_CURRENT_USER允許程序員和開發(fā)者易于存取目前登陸用戶的設(shè)置。通過建立這個鍵,微軟很容易在不涉及到用戶的SID下改變,添加和設(shè)置。
也就是說,所有當前的**作改變只是針對當前用戶而改變,并不影響其他用戶。
注冊表后面的秘密(三)注冊表的損壞和解決方法
三、注冊表的損壞和解決方法
注冊表可能出現(xiàn)的問題。
如果注冊表受到嚴重的損害,存取硬件和軟件可能會受到很大的限制,甚至系統(tǒng)不能啟動??赡芤驗橐粋€很小的問題,一個應(yīng)用程序?qū)⒉荒苷5倪\行,或者運行的不穩(wěn)定。
當注冊表在運行時是受保護的,所以它不可能被**,刪除,或者改變內(nèi)容,除非經(jīng)過一個“驗證過的”程序(比如安裝程序,注冊表編輯工具,和域用戶管理器改變安全策略和瀏覽器等)。由于這些保護,注冊表是十分安全的,但是并不是完全能防止的。問題仍會發(fā)生,你需要作好認識它們的準備來應(yīng)付這些問題。
當你注冊表出現(xiàn)問題時,我們大多數(shù)會聽到或者感覺到下面一些癥狀來認識問題,注冊表問題的特征有:
昨天計算機(或者軟件程序)還工作,但是今天它就不工作了;
在我安裝軟件/硬件前它還工作,但是現(xiàn)在我無法使用它了;
我的系統(tǒng)不象以前那樣工作了;
當我試圖關(guān)閉計算機時,硬盤響個不停卻沒有什么反應(yīng);
我的計算機啟動不了了;
天!又是藍屏,**機了;
注冊表變的不正常一般來說有三種原因:
1、應(yīng)用程序和驅(qū)動被添加到系統(tǒng)中
1)在注冊表中找出大半的錯誤與添加和刪除程序有關(guān)。多數(shù)用戶自己添加或者更新驅(qū)動,應(yīng)用程序等等。而且添加和刪除都是多次的。
2)程序本身也有問題。沒有任何應(yīng)用程序沒有bug或者錯誤。最好的情況,就是錯誤微乎其微,復(fù)雜深奧的問題你可能從來沒見過。在設(shè)計程序時因為受時間和經(jīng)費的限制,這些錯誤被放置不管。作為一個程序員來講,在程序里有錯誤可能是次要的,但是它使系統(tǒng)崩潰那就變成一個大問題了。
3)驅(qū)動程序不兼容。個人計算機世界的開放結(jié)構(gòu)體系造成了一定的風險,因為任何類型的部件組合在一起都是可能的。但測試所有的組合并保證所有設(shè)備的兼容性卻不太可能。所以當用在Win95下的驅(qū)動被用在Winnt時,某些問題就會產(chǎn)生。
4)在應(yīng)用程序安裝過程中在注冊表中添加了不正確的項。在安裝時,多數(shù)應(yīng)用程序使用叫一個叫SETUP.INF的文件詳細說明例如需要什么磁盤,哪個目錄將被建立,從哪里**文件,使應(yīng)用程序工作正常所需要建立的注冊表項等等詳細信息。如果在SETUP.INF中有一個錯誤,這個改變也仍然會出現(xiàn),就會出現(xiàn)嚴重的問題。
5)一個應(yīng)用程序?qū)е铝硪粋€應(yīng)用程序和它缺省的文件關(guān)聯(lián)出現(xiàn)錯誤。當一個應(yīng)用程序被安裝后,缺省文件類型被記錄在注冊表中。第二用戶可以通過雙擊來啟動應(yīng)用程序和裝載文件。很多時候,其他應(yīng)用程序也會使用同樣的擴展名。舉例說,當一個TIF圖形在基于注冊表里的設(shè)置被激活時,最后一次裝載的程序?qū)兂梢粋€執(zhí)行體。有時候,徹底不相同和根本不兼容的程序會在它們自己的文檔文件中使用相同的文件擴展名,啟動文檔的快捷方式將不會工作。在用戶**作過程中,如果在文件打開方式選擇了不正確的程序,就會造成一定的問題。
6)在反安裝時出現(xiàn)的錯誤。當你在控制面板里的添加/刪除程序種刪除程序時,通過應(yīng)用程序自身的反安裝特征,或者通過第三方軟件,這可能會對注冊表造成損壞。除此之外,刪除程序,輔助文件,數(shù)據(jù)文件和反安裝程序可能會試圖移去注冊表的參數(shù)項。因為系統(tǒng)不可能知道一個應(yīng)用程序在注冊表中所要存取的相關(guān)參數(shù)項,這將會不經(jīng)意的移除掉其他應(yīng)用程序的參數(shù)項。
7)字體的錯誤。當注冊表中字體ID出錯,你將在應(yīng)用程序中看到一種不同的字體。這就讓人感覺很討厭并可能需要你移去部分或全部字體并取代它們。這經(jīng)常發(fā)生在用戶頻繁安裝和刪除字體的時候。
2、硬件設(shè)置改變或者硬件失敗
1)如果計算機系統(tǒng)自身有問題,注冊表會有損害。通常的,這些錯誤可以在正確的系統(tǒng)維護和管理下避免。
2)**問題。**很隱秘的改變正常的文件和注冊表中的部分內(nèi)容來影響我們的系統(tǒng)。
3)計算機用電如果不正常也會影響計算機系統(tǒng),用UPS可以避免。
4)磁盤問題。很多時候你會因為容量不夠使硬件失敗而換掉你的硬盤。如果整塊硬盤失敗,當然,你將不得不從備份中恢復(fù)你的注冊表。其他的則是磁盤**扇區(qū)或者簇的故障。雖然這些情況在今天的系統(tǒng)不可能發(fā)生,但是磁盤表面介質(zhì)的故障會使得磁盤部分不可讀,包括那些注冊表文件位置。
3、用戶改動了注冊表
1)手工改變注冊表。當人們手工編輯注冊表,由于數(shù)據(jù)的復(fù)雜性和難懂性使得他們難免容易犯錯誤,而且這個錯誤可能很嚴重導致系統(tǒng)工作發(fā)生中斷。
2)拷貝其他注冊表是很多用戶犯的一個嚴重錯誤。因為從其他機器上拷貝來的注冊表文件并不意味著也會在這一個機器上工作正常。對單獨的系統(tǒng)來說注冊表都是特殊的。甚至計算機硬件設(shè)備相同,拷貝來的注冊表在另一個系統(tǒng)上不見得就會工作。如果使用另一個系統(tǒng)的注冊表,多數(shù)硬件設(shè)備將不會工作,用戶和安全問題可能造成數(shù)據(jù)和應(yīng)用程序信息無法使用。
保護Windows注冊表
保護注冊表是很重要的,有很多不同的工具可以實現(xiàn)這一目的。當沒有安全設(shè)置時,用戶可能的錯誤會更多。幸運的是,他們可以有幾中方法來保護Windows注冊表,在注冊表失敗時他們可以用額外的拷貝來恢復(fù)注冊表。下面就是其中的一些方法:
1、使用windows備份軟件
注:Win95和Win98備份程序有部分區(qū)別,在這里只講Win98的備份程序。
Win98中包括一個備份程序。當安裝Win98時如果你選擇“自定義安裝”,或者你可以在控制面板中的添加/刪除程序里安裝它。當你安裝了這個備份程序,從 開始菜單| 程序| 附件 |系統(tǒng)工具 |備份 可以運行它。啟動時,這個程序提示你是否新建一個新備份,打開現(xiàn)有的備份作業(yè),或者是還原備份文件。
如果選擇新建備份,則會有一個備份向?qū)崾灸闳绾稳プ鰝浞荨?
如果選擇取消向?qū)?,那么可以自己手工設(shè)置要備份的內(nèi)容。在備份內(nèi)容里可以備份網(wǎng)絡(luò)和本地驅(qū)動器的文件??梢栽谀阆雮浞荽疟P或者文件的選擇框打上對號來做備份工作。第二在備份在何處里填**做備份的目的位置既可。如果要連同windows注冊表一起備份,那么在 作業(yè)|選項|高級 里,在“備份 windows注冊表”選擇框打?qū)μ柧涂梢粤??;謴?fù)則是備份的逆過程,這里就不詳述了。
2、在安全模式下**注冊表文件
當Win95運行時,注冊表文件被鎖定,只能用注冊表編輯器或者系統(tǒng)自己來進行存取,這些文件不能夠被**到其他地方。如果你在安全模式下啟動 Win95,注冊表就不會使用同樣的方法載入,這樣SYSTEM.DAT 和 USER.DAT就可以被**。實際上安全模式下系統(tǒng)文件是受保護的。
在啟動時,當計算機顯示Starting Windows 95…時按F8鍵進入安全模式。改變SYSTEM.DAT 和 USER.DAT的隱藏和只讀屬性這樣就可以看到和**它們。當拷貝完注冊表文件,不要忘記了改回它們只讀和隱藏屬性。
3、使用微軟配置備份來備份你的注冊表文件
CFGBACK.EXE是Win95(Win98中沒有這個軟件)所附帶的備份軟件。它在Win95CD-ROM上的\Other\Misc\ CFGBACK這個目錄。在系統(tǒng)上拷貝所有的文件到任何一個目錄,第二在桌面上建立一個CFGBACK.EXE的快捷方式。
要做一個注冊表的備份,啟動CFGBACK第二在選擇的備份名位置輸入一個名字第二點備份繼續(xù)。
注意:在使用CFGBACK前確定你已經(jīng)關(guān)掉了所有運行的程序。如果有程序在運行,CFGBACK可能將使得系統(tǒng)崩潰,數(shù)據(jù)丟失,而且保存的是一個不完整的備份。
4、導出注冊表
在我看來,如果你沒有磁帶機或者其他東西。在REGEDIT.EXE中導出選項有一個導出為文本文件。通常使用一個壓縮工具,導出工具選項也可以被用做保存和保護注冊表的方法。
要導出在注冊表中的任意鍵,選中這個鍵第二選擇 注冊|導出注冊表文件。這將會**這個鍵,并提示你在那里存放這個鍵及它的名字,第二用一個擴展名為.REG的文件保存這些數(shù)據(jù)。
當我們用文本格式導出注冊表。我們可以使用象pkzip或者其他壓縮工具壓縮它(可以在正常Dos模式運行的)來節(jié)省空間。
為了備份我們可以在windows目錄下建立一個用來做備份的文件夾。最少在一個月我們應(yīng)該進行定期的備份。因為許多計算機用戶訂閱或購買帶有贈送 CD的計算機雜志。這些CD上有大量的時間限制的共享軟件。許多用戶從其中安裝一個或者多個程序。當軟件過期時它們反安裝這些程序,但是這些程序在注冊表中留下了一些痕跡。頻繁的添加/刪除程序會影響注冊表,但是有了備份相對來說我們就比較安全了。
我們必須重新啟動計算機到DOS模式下來導入,假定你導出你的注冊表為mar99.reg.現(xiàn)在在命令提示下打
REGEDIT /C MAR99.REG
注冊表編輯器將mar99.reg中的數(shù)據(jù)導入你的注冊表并保存。不過只在命令提示下這個全部導入的工作才比較可靠。
技巧:如果你的注冊表不斷的變的龐大,那么先導出它第二象上面那樣再逐個導入它。在這個導入導出過程中注冊表中不必要的項將被清除出去。如果你使用 Win98那么你可以使用Scanreg.exe程序。在windows目錄命令提示下打 Scanreg /fix來執(zhí)行命令。
警告:當你想看一個導出的注冊表內(nèi)容時(擴展名為.reg的文件),不要直接雙擊它,擴展名.reg文件和REGEDIT.EXE是相關(guān)聯(lián)的,這將會在沒得任何提示時自動把這個文件導入到注冊表中。如果這個文件里有不正確的數(shù)據(jù),它將會破壞注冊表。要編輯這個文件,選中它,第二用鼠標右鍵點它第二選擇編輯。
請記住,預(yù)防要比修復(fù)好的多。無論你選擇什么樣的方法備份注冊表,做吧。注冊表太容易被改變了,在發(fā)生突然**時你手頭上有幾個注冊表的備份是解決問題最好的方法。
從注冊表故障中恢復(fù)
這里有四種不同級別的方法可以從Windows注冊表故障中恢復(fù)
Restart
Redetect
Restore
Reinstall
讓我們來看每一個方法來斷定來使用它最適合的時間,并且解決何種類型的問題。
Restart(重新啟動)
Win95注冊表大部分內(nèi)容保存在RAM中。如果哪個信息受損,它就必須重新讀取正確的信息。當你重新啟動系統(tǒng),注冊表將數(shù)據(jù)從硬盤讀到RAM中就可以使用了。
拿字體ID問題來說。每種字體在系統(tǒng)中用一個ID號來使用。當一個字體被用在一個文檔時,這個字體被這個數(shù)字保存并且用一個名字來標識。當字體ID損壞那么字體顯示和打印將被其他字體取代。重新啟動系統(tǒng)從硬盤上刷新數(shù)據(jù),將產(chǎn)生修復(fù)過的字體ID,這樣字體顯示和打印就變的正常了。
這也就是為什么Windows系統(tǒng)故障經(jīng)常在重新啟動后就又恢復(fù)正常的一個原因。
Redetect the Devices(重新檢測硬件)
如果一個設(shè)備工作不正常,那么在注冊表中控制設(shè)備的設(shè)置可能受損了。為了重新設(shè)置注冊表,你應(yīng)該刪除并且重裝設(shè)備的驅(qū)動,或者你應(yīng)該讓Win95重新檢測它們。很多時候,當一個設(shè)備工作不正常,它們會在設(shè)備管理器上此設(shè)備前使用一個驚嘆號標志顯示出來。很明顯,如果設(shè)備從不來工作,可能就是其他問題了。但是如果設(shè)備以前工作,現(xiàn)在出問題,注冊表就需要被恢復(fù)。
要檢測一個設(shè)備,在控制面板上選擇添加新硬件。第一個問題是文你“需要Windows搜索新硬件嗎?”如果你選擇是,Win95將做一個徹底的搜索去找“新”設(shè)備。任何設(shè)置不正確的或者沒找到驅(qū)動的設(shè)備將被檢測到并顯示出來。
Restore(恢復(fù))
從CFGBACK中恢復(fù)注冊表
從CFGBACK中恢復(fù)注冊表有很多好處。如果你建立了幾個備份,你可以選擇正確的一個來恢復(fù)。你可以如同做手術(shù)般放置排列注冊表參數(shù)項。
導入注冊表文件
象前面章節(jié)講述的那樣,一個代替使用備份的方法就是導入一個.REG文件。.REG文件包括了目的數(shù)據(jù)位置,所以對這個文件簡單的雙擊就可以將數(shù)據(jù)放入注冊表。它是所有恢復(fù)程序中最簡單的,但是也可能造成錯誤。錯誤不會是用REGEDIT.EXE把數(shù)據(jù)寫入錯誤的位置,它很可能出現(xiàn)在用戶直接雙擊注冊表文件的時候。
Reinstall(重新安裝)
重新安裝
最后的方法就是重新安裝驅(qū)動、應(yīng)用程序或者Win95。一般來說,它只花費你一個小時左右時間去做這些事。如果你在現(xiàn)有的文件上重新安裝,很多配置信息還被安裝在同樣的地方。同樣在安裝驅(qū)動程序時,你應(yīng)該重新加入配置數(shù)據(jù)。
實際上找出原因并修復(fù)它所花費的時間比重新安裝還要多,這就是為什么重新安裝在技術(shù)支持上是一個相當普通的“解決方法”。關(guān)鍵的問題在于,“你是否想找出是什么錯誤,或者你是否只想讓它工作正常?”**取決于問這個問題的用戶情況,發(fā)生問題的頻繁次數(shù)和重新安裝的軟件的實用性。
當Windows第一次被安裝時它將在啟動目錄的根目錄上創(chuàng)建一個名為SYSTEM.1ST的文件。這是Windows第一次啟動時創(chuàng)建的個簡單的 system.dat文件。你所應(yīng)該做的就是將這個文件放到windows目錄(在dos模式下)并將它的名字改為SYSTEM.DAT。第二重新啟動。第二你就可以得到安裝時第一次啟動的windows。
因為很多.INI,.DLL和其他文件的改變,這種方法的成功機率大概只超過50%。比如當裝IE4.0后系統(tǒng)和注冊表將有一個徹底的改變。我們的system.1st文件雖然包含了一個Dll文件的參考,但它可能更新或者改變版本號。
這里就是幾個在注冊表出故障的時候恢復(fù)它的工具和方法。你的數(shù)據(jù)可能會安全恢復(fù),但是不管你用什么方法,除了重新格式化硬盤,最好的方法就是做好系統(tǒng)注冊表的備份工作。
弈安傳媒科技微課堂,每天分享財經(jīng)資訊,計算機技術(shù)知識,人生感悟,創(chuàng)業(yè)指導以及各種專業(yè)技術(shù)知識資料學習交流.移動學習平臺、知識分享平臺。隨時隨地的學習,如果你喜歡成長,這里你不容錯過的地方.弈安傳媒科技培訓關(guān)注:關(guān)注自己成長,分享內(nèi)容,分享自己的技術(shù),成就未來.
[弈安傳媒科技提升自己的平臺]請關(guān)注:號及** 弈安傳媒科技
拓展知識:
WIn10文件關(guān)聯(lián)DDE
步驟一:我們需要打開電腦,在桌面的任意位置單擊右鍵,在彈出的窗口中選擇“新建”,之后新建“文本文檔”;
步驟二:新建完成文本文檔后,我們雙擊打開新建的文本文檔,將下面代碼**進去:Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.exe] @=”exefile” “Content Type”=”application/x-msdownload” ;[HKEY_CLASSES_ROOT\.exe\PersistentHandler] @=”{098f2470-bae0-11cd-b579-08002b30bfeb}” [HKEY_CLASSES_ROOT\exefile\shell\open\command] @=”\”%1\”” %*””
步驟三:**文成后,我們需要點擊“文件”后在“另存為”,在保存界面上,將保存類型修改為“所有文件”,將文件名修改為“修復(fù)exe關(guān)聯(lián).reg”,點擊保存;
步驟四:按照上述步驟**作之后,在“修復(fù)exe關(guān)聯(lián).reg”文件上單擊右鍵,選擇“合并”;
步驟五:點擊“合并”后,在彈出的提示框中點擊“是”,重啟計算機就可以解決;
步驟六:當我們電腦重啟之后,殺毒軟件就可以運行了,打開殺軟對系統(tǒng)進行**掃描。”
本回答被提問者采納
前沿拓展:
WIn10文件關(guān)聯(lián)DDE
1、通過快捷鍵【W(wǎng)in+R】調(diào)出運行窗口,輸入“regedit”后點擊【確定】。
2、找到【HKEY_CLASSES_ROOT\lnkfile】,在右側(cè)新建一個字符串值“IsShortcut”的文件;第二重啟電腦就可以解決。
windows注冊表方面的文章已經(jīng)有好多,但是其中更多的內(nèi)容還是很多windows注冊表的技巧,很多用戶都是“知其然不知其所以然”,而且很多的技巧所涉及的鍵和鍵值根本不為人所知的。這樣并沒有對注冊表有一個系統(tǒng)的介紹。下面這篇文章分三個部分:注冊表和它的用途,注冊表的結(jié)構(gòu),注冊表的問題和故障恢復(fù)。希望讓計算機新手對注冊表有一個簡單、全面的概念和了解。關(guān)于注冊表使用技巧和竅門很多文章都有介紹,在此就不贅述。其中翻譯不恰當和錯誤之處,望大家指正。
注冊表后面的秘密
(一)注冊表和它的角色
什么是注冊表?
注冊表因為它復(fù)雜的結(jié)構(gòu)和沒有任何聯(lián)系的CLSID鍵使得它可能看上去很神秘。不幸的是,微軟并沒有完全公開講述關(guān)于注冊表正確設(shè)置的支持信息,這樣使得注冊表看上去更不可琢磨。處理和編輯注冊表如同“黑色藝術(shù)”一樣,它在系統(tǒng)中的設(shè)置讓用戶感覺象在黑暗中摸索一樣找不到感覺。這樣,因為用戶對這方面的缺乏了解使得注冊表更多的出現(xiàn)故障。
Windows注冊表是幫助Windows控制硬件、軟件、用戶環(huán)境和Windows界面的一套數(shù)據(jù)文件,注冊表包含在Windows目錄下兩個文件 system.dat和user.dat里,還有它們的備份system.da0和user.da0。通過Windows目錄下的regedit.exe 程序可以存取注冊表數(shù)據(jù)庫。在以前,在windows的更早版本(在win95以前),這些功能是靠win.ini,system.ini和其他和應(yīng)用程序有關(guān)聯(lián)的.ini文件來實現(xiàn)的.
在windows**作系統(tǒng)家族中,system.ini和win.ini這兩個文件包含了**作系統(tǒng)所有的控制功能和應(yīng)用程序的信息, system.ini管理計算機硬件而win.ini管理桌面和應(yīng)用程序。所有驅(qū)動、字體、設(shè)置和參數(shù)會保存在.ini文件中,任何新程序都會被記錄在. ini文件中。這些記錄會在程序代碼中被引用。因為受win.ini和system.ini文件大小的限制,程序員添加輔助的.INI文件以用來控制更多的應(yīng)用程序。舉例來說,微軟的Excel有一個excel.ini文件,它包含著選項、設(shè)置、缺省參數(shù)和其他關(guān)系到Excel運行正常的信息。在 system.ini和win.ini中只需要指出excel.ini的路徑和文件名即可。
最開始,system.ini和win.ini控制著所有windows和應(yīng)用程序的特征和存取方法,它在少數(shù)的用戶和少數(shù)應(yīng)用程序的環(huán)境中工作的很好。隨著應(yīng)用程序的數(shù)量和復(fù)雜性越來越大,則需要在.ini文件中添加更多的參數(shù)項。這樣下來,在一個變化的環(huán)境中,在應(yīng)用程序安裝到系統(tǒng)中后,每個人都會更改.ini文件。然而,沒有一個人在刪除應(yīng)用程序后刪除.ini文件中的相關(guān)設(shè)置,所以system.ini和win.ini這個兩個文件會變的越來越大。每增加的內(nèi)容會導致系統(tǒng)性能越來越慢。而且每次應(yīng)用程序的升級都出現(xiàn)這樣的難題:升級會增加更多的參數(shù)項但是從來不去掉舊的設(shè)置。而且還有一個明顯的問題,一個.ini文件的最大尺寸是64KB。為了解決這個問題,軟件商自己開始支持自己的.ini文件,第二指向特定的ini文件如win.ini和 system.ini文件。這樣下來多個.ini文件影響了系統(tǒng)正常的存取級別設(shè)置。如果一個應(yīng)用程序的.ini文件和WIN.INI文件設(shè)置起沖突,究竟是誰的優(yōu)先級更高呢?
注冊表最初被設(shè)計為一個應(yīng)用程序的數(shù)據(jù)文件相關(guān)參考文件,最后擴展成對于32位**作系統(tǒng)和應(yīng)用程序包括了所有功能下的東東.注冊表是一套控制**作系統(tǒng)外表和如何響應(yīng)外來**工作的文件。這些“**”的范圍從直接存取一個硬件設(shè)備到接口如何響應(yīng)特定用戶到應(yīng)用程序如何運行等等。注冊表因為它的目的和性質(zhì)變的很復(fù)雜,它被設(shè)計為專門為32位應(yīng)用程序工作,文件的大小被限制在大約40MB。
注冊表都做些什么?
注冊表是為Windows NT和Windows95中所有32位硬件/驅(qū)動和32位應(yīng)用程序設(shè)計的數(shù)據(jù)文件。16位驅(qū)動在Winnt下無法工作,所以所有設(shè)備都通過注冊表來控制,一般這些是通過BIOS來控制的。在Win95下,16位驅(qū)動會繼續(xù)以實模式方式設(shè)備工作,它們使用system.ini 來控制。16位應(yīng)用程序會工作在NT或者Win95 下,它們的程序仍然會參考win.ini和system.ini文件獲得信息和控制。
在沒有注冊表的情況下,**作系統(tǒng)不會獲得必須的信息來運行和控制附屬的設(shè)備和應(yīng)用程序及正確響應(yīng)用戶的輸入。
在系統(tǒng)中注冊表是一個記錄32位驅(qū)動的設(shè)置和位置的數(shù)據(jù)庫。當**作系統(tǒng)需要存取硬件設(shè)備,它使用驅(qū)動程序,甚至設(shè)備是一個BIOS支持的設(shè)備。無 BIOS支持設(shè)備安裝時必須需要驅(qū)動,這個驅(qū)動是**于**作系統(tǒng)的,但是**作系統(tǒng)需要知道從哪里找到它們,文件名、版本號、其他設(shè)置和信息,沒有注冊表對設(shè)備的記錄,它們就不能被使用。
當一個用戶準備運行一個應(yīng)用程序,注冊表提供應(yīng)用程序信息給**作系統(tǒng),這樣應(yīng)用程序可以被找到,正確數(shù)據(jù)文件的位置被規(guī)定,其他設(shè)置也都可以被使用。
注冊表保存關(guān)于缺省數(shù)據(jù)和輔助文件的位置信息、菜單、按鈕條、窗口狀態(tài)和其他可選項。它同樣也保存了安裝信息(比如說日期),安裝軟件的用戶,軟件版本號和日期,序列號等。根據(jù)安裝軟件的不同,它包括的信息也不同。
然而,一般來說,注冊表控制所有32位應(yīng)用程序和驅(qū)動,控制的方法是基于用戶和計算機的,而不依賴于應(yīng)用程序或驅(qū)動,每個注冊表的參數(shù)項控制了一個用戶的功能或者計算機功能。用戶功能可能包括了桌面外觀和用戶目錄。所以,計算機功能和安裝的硬件和軟件有關(guān),對所以用戶來說項都是公用的。
有些程序功能對用戶有影響,有些時作用于計算機而不是為個人設(shè)置的,同樣的,驅(qū)動可能是用戶指定的,但在很多時候,它們在計算機中是通用的。
注冊表控制用戶模式的例子有:
控制面板功能;
桌面外觀和圖標;
網(wǎng)絡(luò)參數(shù);
瀏覽器功能性和特征;
那些功能中的某些是和用戶無關(guān)的,有些是針對用戶的。
計算機相關(guān)控制項基于計算機名,和登陸用戶無關(guān)??刂祁愋偷睦邮前惭b一個應(yīng)用程序,不管是哪個用戶,程序的可用性和存取是不變的,然而,運行程序圖標依賴于網(wǎng)絡(luò)上登陸的用戶。網(wǎng)絡(luò)協(xié)議可用性和優(yōu)先權(quán)基于計算機,但是當前連接和用戶信息相關(guān)。
這里是在注冊表中基與計算機控制條目的一些例子:
存取控制;
登陸確認;
文件和打印機共享;
網(wǎng)卡設(shè)置和協(xié)議;
系統(tǒng)性能和虛擬內(nèi)存設(shè)置;
沒有了注冊表,Win95和Winnt 就不太可能存在。它們實在太復(fù)雜了,以致于用過去的.ini文件無法控制,它們的擴展能力需要幾乎無限制的安裝和使用應(yīng)用程序,注冊表實現(xiàn)了它。然而,注冊表比.ini文件更復(fù)雜,理解它如何工作,它做什么和如何用它來做是有效管理系統(tǒng)的關(guān)鍵。
在系統(tǒng)中注冊表控制所有32位應(yīng)用程序和它們的功能及多個應(yīng)用程序的交互,比如**和粘貼,它也控制所有的硬件和驅(qū)動程序。雖然多數(shù)可以通過控制面板來安裝和設(shè)置,理解注冊表仍是做Winnt和Win95系統(tǒng)管理基本常識。
二、注冊表的結(jié)構(gòu)
注冊表的結(jié)構(gòu)
注冊表是Windows程序員建造的一個復(fù)雜的信息數(shù)據(jù)庫,它是多層次式的。在不同系統(tǒng)上注冊表的基本結(jié)構(gòu)相同。其中的復(fù)雜數(shù)據(jù)會在不同方式上結(jié)合,從而產(chǎn)生出一個絕對唯一的注冊表。
計算機配置和缺省用戶設(shè)置的注冊表數(shù)據(jù)在Winnt中被保存在下面這五個文件中:
DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSER.DAT。
Win95中所有系統(tǒng)注冊信息保存在windows目錄下的SYSTEM.DAT文件里。所有硬件設(shè)置和軟件信息也保存在這個文件。它要比NT注冊表文件簡單的多,因為這里并不需要更多的控制。Win95被設(shè)計為一個網(wǎng)絡(luò)的客戶或者單獨工作的系統(tǒng),所以用戶控制或者安全級別和NT不一樣。這使得 Win95注冊表工作比NT更容易,所以這個文件也比較小。
Win95用戶的注冊數(shù)據(jù)一般被保存在windows目錄下的user.dat里。如果你在控制面板|密碼|用戶配置文件中創(chuàng)建并使用多于一個用戶的配置文件,每個用戶就會有在\WINDOWS
\Profiles\username\USER.DAT下它自己的user.dat文件。在啟動時,系統(tǒng)將記錄你的登陸,從你目錄中的配置文件(USER.DAT信息)將被裝入,以用來保持你自己的桌面和圖標。
控制鍵
在注冊表編輯器中注冊表項是用控制鍵來顯示或者編輯的??刂奇I使得找到和編輯信息項組更容易。因此,注冊表使用這些條目。下面是六個控制鍵
HKEY_LOCAL_MACHINE
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA
HKEY_USERS
HKEY_CURRENT_USER
Winnt和Win95的注冊表并不兼容。從Win95向Winnt升級需要你重新安裝32位應(yīng)用程序,重新在桌面上創(chuàng)建圖標,并重新建立用戶環(huán)境。
通過控制鍵可以比較容易編輯注冊表。雖然它們顯示和編輯好象**的鍵,其實HKEY_CLASSES_ROOT 和 HKEY_CURRENT_CONFIG是 HKEY_LOCAL_MACHINE的一部分。HKEY_CURRENT_USER是HKEY_USERS 的一部分。
HKEY_LOCAL_MACHINE包含了HKEY_CLASSES_ROOT和
HKEY_CURRENT_CONFIG的所有內(nèi)容。每次計算機啟動時,HKEY_CURRENT_CONFIG和HKEY_CLASSES_ROOT的信息被映射用以查看和編輯。
HKEY_CLASSES_ROOT其實就是HKEY_LOCAL_MACHINESOFTWARE\Classes,但是在HKEY_CLASSES_ROOT窗編輯相對來說顯得更容易和有條理。
HKEY_USERS保存著缺省用戶信息和當前登陸用戶信息。當一個域成員計算機啟動并且一個用戶登陸,域控制器自動將信息發(fā)送到 HKEY_CURRENT_USER里,而且HKEY_CURRENT_USER信息被映射到系統(tǒng)內(nèi)存中。其他用戶的信息并不發(fā)送到系統(tǒng),而是記錄在域控制器里。
鍵和子鍵
數(shù)據(jù)被分割成多層次的鍵和子鍵,建立分層次(就象Exploer一樣)結(jié)構(gòu)更易于編輯。每個鍵有成組的信息而且根據(jù)在其中的數(shù)據(jù)類型被命名。每個鍵在它的文件夾圖標上都有一個加號(+)標志子鍵說明在它下面還有更多內(nèi)容的東西。當點開它的時候,文件夾的加號標志被替換成一個減號(-)標志,第二顯示出下一級的子鍵。
所有軟件,硬件,windows工作的設(shè)置都存放在HKEY_LOCAL_MACHINE。所有安全策略,用戶權(quán)限和共享信息也包括在這個鍵中。用戶權(quán)限,安全策略,共享信息可以通過Windows NT域用戶管理器,Explorer和Win95中控制面板來設(shè)置。
HKEY_CLASSES_ROOT
HKEY_CLASSES_ROOT包含了所有應(yīng)用程序運行時必需的信息:
在文件和應(yīng)用程序之間所有的擴展名和關(guān)聯(lián);
所有的驅(qū)動程序名稱;
類的ID數(shù)字(所要存取項的名字用數(shù)字來代替);
DDE和OLE的信息;
用于應(yīng)用程序和文件的圖標;
HKEY_CURRENT_CONFIG.
HKEY_CURRENT_CONFIG是在HKEY_LOCAL_MACHINE中當前硬件配置信息的映射。如果系統(tǒng)只有一個配置文件,也就是原始配置,數(shù)據(jù)將一直在同樣的地方。在控制面板|系統(tǒng)|硬件配置文件|創(chuàng)建一個額外的配置使額外配置信息放入HKEY_LOCAL_MACHINE。當 Win95中存在多個配置文件時,當每次計算機啟動時將給出一個提示讓你選擇一個配置文件。在Winnt中,在啟動時你可以按空格鍵來選擇上次正常啟動時硬件配置文件。根據(jù)硬件配置文件選擇的不同,特定的信息被映射到HKEY_CURRENT_CONFIG。
HKEY_DYN_DATA
HKEY_DYN_DATA和其他的注冊表控制鍵不同,因為實際上它并不被寫入硬盤驅(qū)動器中。Win95的一個優(yōu)點是,在系統(tǒng)啟動時 HKEY_DYN_DATA這個控制鍵儲存收集到的即插即用信息并配置它們。它保存在內(nèi)存中,Win95用它來控制硬件。因為是在內(nèi)存中,所以它不從硬盤中讀取,每次當你啟動計算機時,配置都有可能會不一樣。在啟動時Win95必須計算超過1600種可能的配置。所以,如果系統(tǒng)改變既定的設(shè)置而沒有報告給 Win95那么潛在的問題就可能發(fā)生。系統(tǒng)大多數(shù)時間工作良好,但是并非一直如此。
HKEY_USERS
HKEY_USERS僅包含了缺省用戶設(shè)置和登陸用戶的信息。雖然它包含了所有**用戶的設(shè)置,但在用戶未登陸網(wǎng)絡(luò)時用戶的設(shè)置是不可用的。這些設(shè)置告訴系統(tǒng)哪些圖標會被使用,什么組可用,哪個開始菜單可用,哪些顏色和字體可用,和控制面板上什么選項和設(shè)置可用。
HKEY_CURRENT_USER
用來保存當前用戶和缺省用戶的信息,HKEY_CURRENT_USER僅映射當前登陸用戶的信息。
各主鍵的簡單介紹
HKEY_LOCAL_MACHINE
HKEY_LOCAL_MACHINE是一個顯示控制系統(tǒng)和軟件的處理鍵。HKLM鍵保存著計算機的系統(tǒng)信息。它包括網(wǎng)絡(luò)和硬件上所有的軟件設(shè)置。(比如文件的位置,注冊和未注冊的狀態(tài),版本號等等)這些設(shè)置和用戶無關(guān),因為這些設(shè)置是針對使用這個系統(tǒng)的所有用戶的。
HKEY_LOCAL_MACHINE\AppEvents
為了以后在瘦客戶機上運行客戶機/服務(wù)器這樣的應(yīng)用程序,在Win95/98中AppEvents鍵是空的。應(yīng)用程序?qū)嶋H上都駐留網(wǎng)絡(luò)服務(wù)器上,這些鍵會保存部分指針。
HKEY_LOCAL_MACHINE\Config
這個鍵保存著你計算機上所有不同的硬件設(shè)置(這些從控制面板的系統(tǒng)屬性中硬件配置文件中可以創(chuàng)建)。這些配置在啟動時通常被**到HKCC。每個配置會被用一個鍵(比如0001或者0002等等)來保存,每個都是一個**的配置。如果你只有一個單一的配置,那就只會有0001這個鍵
HKEY_LOCAL_MACHINE\Config\0001\Display
這個鍵表示顯示的設(shè)置,如熒屏字體,窗體大小,窗**置和分辨率等
一個小技巧:當設(shè)置了計算機不支持的大分辨率導致Windows不能啟動時(黑屏),可以修改分辨率來解決。進入安全模式,運行 regedit.exe,在這個鍵的Resolution鍵值中把數(shù)據(jù)值修改為640,480或者800,600這樣的低分辨率,第二重新啟動計算機即可。
HKEY_LOCAL_MACHINE\Config\0001\System
這個鍵保存著系統(tǒng)里打印機的信息 HKEY_LOCAL_MACHINEConfig\0001\System\CurrentControlSet\Control\Print
\Printers
在這個鍵下面,有一個鍵是為系統(tǒng)上每一個打印機設(shè)置的,通過控制面板添加和刪除打印機會調(diào)整這個列表
HKEY_LOCAL_MACHINE\Enum
Enum鍵包含啟動時發(fā)現(xiàn)的硬件設(shè)備和那些既插即用卡的信息。Win95使用總線列舉在啟動時通過不同的.ini文件來檢測硬件信息。那些在啟動時被安裝的和被檢測到的硬件會顯示在這里。子鍵包括BIOS, ESDI, FLOP, HTREE, ISAPNP, Monitor, Network, Root, SCSI, 和 VIRTUAL。子鍵名表示它們各自的硬件設(shè)備信息。
HKEY_LOCAL_MACHINE\Enum\BIOS
BIOS鍵保存著系統(tǒng)中所有即插即用設(shè)備的信息。它們用一套代碼數(shù)列出,包括每一個鍵的詳細說明,舉例,*pnp0400是并行口LPT1的鍵。如果LPT1并不具備即插即用功能,它就會別列入到Enum下的Root鍵中
HKEY_LOCAL_MACHINE\Enum\Root
Root鍵包括所有非即插即用設(shè)備的信息。在這里,我們可以迅速斷定哪些設(shè)備是即插即用,那些不是。比如SCSI適配器,這個設(shè)備必須符合Win95中一個鍵名為ForcedConfig的硬件設(shè)置,這個不會改變。
HKEY_LOCAL_MACHINE\Enum\Network
win95的網(wǎng)絡(luò)功能在這個鍵有詳細說明,子鍵包括了每個已經(jīng)安裝的主要的服務(wù)和協(xié)議。
HKEY_LOCAL_MACHINE\HARDWARE
hardware子鍵包括了兩個多層的子鍵:DESCRIPTION鍵,它包含了**處理器和一個浮點處理器的信息。還有一個設(shè)備映射鍵,它下面的串行鍵列出你所有的com端口。這個hardware鍵僅保存超級終端程序的信息,及數(shù)學處理器和串行口。
HKEY_LOCAL_MACHINE\Network
這個鍵僅保存網(wǎng)絡(luò)登陸信息。所有網(wǎng)絡(luò)服務(wù)細節(jié)都保存在HKEY_LOCAL_MACHINE\Enum\Network這個鍵中。這個鍵有一個子鍵, logon,包括了lmlogon(本地機器登陸?0=false 1=true)的值,logonvalidated(必須登陸驗證),策略處理,主登陸方式(Windows登陸 ,微軟網(wǎng)絡(luò)客戶方式等),用戶名和用戶配置。
HKEY_LOCAL_MACHINE\SECURITY
security 有兩個子鍵,第一個是存?。ㄋ罱K致使一個遠程鍵列出網(wǎng)絡(luò)安全資源,存取權(quán)限等)和提供(包括列出網(wǎng)絡(luò)地址和地址服務(wù)器),這個鍵被保留用在以后使用高級安全功能和NT兼容性上
HKEY_LOCAL_MACHINE\SOFTWARE
這個鍵列出了所有已安裝的32位軟件和程序的.ini文件。它包括了變化,依靠軟件安裝。那些程序的控制功能在這里的子鍵中列出。多數(shù)子鍵簡單的列出了安裝軟件的版本號。
我們在\Microsoft\Windows\Current Version下發(fā)現(xiàn)了一些有意思的設(shè)置,它有如下子鍵:
1.App paths: 你曾經(jīng)安裝過的所有32位軟件的位置。
2.Applets, Compression, Controls Folder : 包括下控制面板象顯示屬性那樣屬性條的附件。
3.Detect, explorer :很多有意思的子鍵如Namespace keys of Desktop和My Computer—-它們指出了回收站和撥號網(wǎng)絡(luò)的CLSID行—-和提示子鍵可以讓你建立自己的提示。
4.Extensions : 一個擴展聯(lián)系的列表,當前相關(guān)聯(lián)的擴展名和比特定的執(zhí)行文件更適合的目標類型。
5.Fonts, fontsize, FS Templates :系統(tǒng)屬性條中所選擇文件系統(tǒng)模板, 服務(wù)器,桌面計算機或者筆記本電腦信息。
6.MS-DOS Emulation :包括一個應(yīng)用程序兼容子鍵 為大量過時的程序二進制鍵所設(shè)。
7.MS-DOS Options :在dos模式下的設(shè)置,如himem.sys,cd-roms等。
8.Network :網(wǎng)絡(luò)驅(qū)動的配置。
9.Nls, Policies :系統(tǒng)管理員認為你不應(yīng)該去做的事。
10.ProfileList :所有可以登陸你計算機的用戶名列表。
11.在Windows啟動時運行的程序的神秘之處是它們并不在開始菜單的啟動文件夾中。它們在HKEY_LOCAL_MACHINE\Microsoft
\Windows\CurrentVersion\下的子鍵中被執(zhí)行。
Run : 程序在啟動時運行
RunOnce : windows初始化時程序在啟動時只運行一次,這個經(jīng)常用在當安裝軟件之后需要重新啟動系統(tǒng)的時候,所以這個鍵一般都是空的。
RunServices : 它就象Run一樣,但是包含了“服務(wù)”,它不象一般的程序它們是比較重要的或者是“系統(tǒng)”程序。但是它們不是VXDs,就象McAfee或者RegServ工作一樣。
RunServicesOnce : 它只運行一次,但是是“系統(tǒng)自身”的安裝(大量的windows安裝參數(shù):通常鍵值包括了系統(tǒng)目錄位置,和win95更新,可選項安裝組件,和windows啟動目錄的子鍵。
注意:在很多黑客木馬軟件中,常常在這里添加鍵值(一般是在Run中),這樣使得木馬軟件可以隨著windows啟動而啟動并且很隱秘。在這里可以查看不正常的啟動項和去掉無用的運行程序(比如我就很不喜歡超級解霸的自動伺服器,在這里可以去掉它)。
12.SharedDLLs:共享DLL的列表,每一個都給出了在一個不可知系統(tǒng)的一個數(shù)字等級。
13.Shell Extensions:列出了“被認可的”O(jiān)LE注冊條,和相應(yīng)的CLSID連接。
14.ShellScrap :這個包含了一個PriorityCacheFormats的子鍵,它包括了一個空的有限值,它更象過去**artDrive命令行參數(shù)的派生。
15.Time Zones : 主鍵值是你現(xiàn)在的時區(qū);子鍵定義了所以可能的時區(qū)。
16.Uninstall:這個保存了程序在添加/刪除程序?qū)υ捒虻娘@示;子鍵包含了指向反安裝程序的路徑。和安裝向?qū)嗨?#8230;….)winlogon(包含了合法登陸布告的文本句)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
這個子鍵包括設(shè)備驅(qū)動和其他服務(wù)的描述和控制。不同于windows nt,win95只包括限制驅(qū)動的控制設(shè)置信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
這個子鍵包括了win95控制面板中的信息。不要編輯這些信息,因為一些小程序的改變在很多地方,一個丟失的項會使這個系統(tǒng)變的不穩(wěn)定
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
這個鍵包括了所有win95的標準服務(wù)。所有被添加的服務(wù)和設(shè)備,每個標準的服務(wù)鍵包括了它的設(shè)置和辨認設(shè)置。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
\Arbitrators
arbitrators鍵包括了當兩個設(shè)備共同占用同樣的設(shè)置需要解決的信息。四個子鍵包括了內(nèi)存地址,沖突,DMA,I/O端口沖突和IRQ沖突。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
\Class
class鍵包括了所有win95支持的設(shè)備classes控制,這些和你在添加新硬件出現(xiàn)的硬件組很類似,還包括了這些設(shè)備如何安裝的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servicesinetaccs
這個鍵包括了關(guān)于這個系統(tǒng)變化的ie附件的可用性,它僅在你安裝過ie2。0或者更高版本才出現(xiàn)。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service**SNP32
msnp32描述了客戶機如何在microsoft網(wǎng)絡(luò)中實現(xiàn)功能,它包括了認證過程和認證者的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesNWNP32
nenp32鍵描述了windows客戶如何在netware網(wǎng)絡(luò)中工作功能,它包括了關(guān)于認證過程和證明者的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesRemoteAccess
在這個鍵里包括需要遠程工作在win95系統(tǒng)上的信息,有認證參數(shù),主機信息,和為了建立一個撥號連接工作的協(xié)議信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesSNMP
這個鍵包括了所以snmp(簡單網(wǎng)絡(luò)管理協(xié)議)的參數(shù)。它包括了允許的管理,配置陷阱,和有效的團體。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesVxD
vxd鍵包括了win95中所有32位虛擬設(shè)備驅(qū)動信息,win95自動管理它們,所以不必要用注冊表編輯器編輯它們,所以的靜態(tài)vxds用子鍵列出。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesWebPost
webpost鍵包括了所有裝載的internet郵局的設(shè)置,如果你連接一個isp,并且它列出載這里,你應(yīng)該給自己選則一個服務(wù)器。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesWinsock
這個鍵列出了當連接到internet上winnsock文件的信息,如果列出了不正確的文件,你將不會連接上internet。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesWinTrust
wintrust功能是檢查從Internet上下載來的文件是否有**,它可以確保你得到干凈安全的文件。
HKEY_CLASSES_ROOT
在注冊表中HKEY_CLASSES_ROOT是系統(tǒng)中控制所有數(shù)據(jù)文件的項。這個在Win95和Winnt中是相通的。 HKEY_CLASSES_ROOT控制鍵包括了所有文件擴展和所有和執(zhí)行文件相關(guān)的文件。它同樣也決定了當一個文件被雙擊時起反應(yīng)的相關(guān)應(yīng)用程序。
HKEY_CLASSES_ROOT被用作程序員在安裝軟件時方便的發(fā)送信息,在Win95和Winnt中,HKEY_CLASSES_ROOT和HKEY_LOCAL_
MACHINE\Software\Classes是相同的。程序員在運行他們的啟動程序時不需要擔憂實際的位置,相反的,他們只需要在HKEY-
CLASSES_ROOT中加入數(shù)據(jù)就可以了。
在Windows用戶圖形界面下,每件事—-每個文件,每個目錄,每個小程序,每個連接,每個驅(qū)動—都被看做一個對象;每個對象都有確定的屬性和它聯(lián)系。HKCR包含著對象類型和它們屬性的列表。HKCR主要的功能被設(shè)置為:
一個對象類型和一個文件擴展名關(guān)聯(lián)
一個對象類型和一種圖標關(guān)聯(lián)
一個對象類型和一個命令行動作的關(guān)聯(lián)
定義對象類型相關(guān)菜單選項和定義每一個對象類型屬性選項
在Win95中,相關(guān)菜單就是當你鼠標右擊一個對象時所彈出的菜單;屬性就是當你選擇屬性項后一個展開的對話框。用簡單術(shù)語來說就是在改變HKCR中的設(shè)置可以改變一個給定文件擴展名缺省的關(guān)聯(lián)。改變一個文件類型的缺省圖標,和添加或者刪除給定對象類型的彈出菜單內(nèi)容(或者所有的對象類型)
HKCR包括了三種基本類型的子鍵
\??? 或者文件擴展名子鍵
文件擴展名子鍵在彈出菜單上連接文件擴展名到對象類型和相關(guān)**作,屬性項,和相關(guān)**作。
\object 類型子鍵
對象類型子鍵定義了一個對象類型在它缺省圖標的項,它的彈出菜單和屬性項,它的相關(guān)**作和它的CLSID連接。
\CLSID 子鍵
在Windows下每件事都被用一個數(shù)字取代它的名字來對待。就象人往往是用名字來處理事情一樣。CLSID是標識所有列出的圖標,應(yīng)用程序,目錄,文件類型等等對象的數(shù)字。是微軟為制造商分配的,每一個都必須是唯一的。制造商將CLSID放入安裝程序文件這樣就可以在安裝時更新注冊表。
注冊表是應(yīng)用程序進行時它們需要關(guān)于做什么的指示的數(shù)據(jù)庫。比如說,假定你有一個微軟Excel 7電子數(shù)據(jù)表的Word 7文檔,當你在Word中雙擊這個電子數(shù)據(jù)表,應(yīng)用程序菜單就會變成Excel的菜單而且電子數(shù)據(jù)表進入編輯狀態(tài),就好象你在Excel中一樣。它是如何知道該做什么呢?每個 Excel 7創(chuàng)建的文件都有Excel的CLSID連接。Word讀這個CLSID后,到注冊表中尋找指示,依賴CLSID下的數(shù)據(jù)運行.DLL文件或者應(yīng)用程序。
CLSID子鍵為對象類型提供了OLE和DDE信息和圖標。相關(guān)菜單,或者包含在它子鍵中的屬性項信息。這個可能是多數(shù)讓人看到后覺得“恐怖”的鍵。每個CLSID數(shù)必須是唯一的,實際上,為了這個目的微軟已經(jīng)出產(chǎn)了CLSID-產(chǎn)生程序–這個結(jié)果導致你往往得到32位16進制的數(shù)字串,除非你是程序員,否則多數(shù)部分鍵看起來是很枯燥的。它們包括內(nèi)存管理模式,客戶機/服務(wù)器配置,和OLE處理的.dll連接。
關(guān)于子鍵的一點注解
1)shell:Shell鍵有個一”action“子鍵,如同”open“一樣,這里有一個command子鍵;command子鍵有一個缺省句值,它包含了運行程序的命令行。將一個”open“子鍵放在一個對象類型的shell子鍵中會在這個對象類型的彈出菜單上多出一個”open“選項,給這個open子鍵一個command(缺省命令行”C:\Windows \Notepad.exe %1″)子鍵會使得打開這個對象類型時使用筆記本做為缺省應(yīng)用程序。其他**作選項包括View,Print,Copy,Virus,Scan等等。
2)shellex:Shellex鍵有一個子鍵。它們包含的每一個子鍵指向一個為對象類型執(zhí)行OLE和DDE功能的CLSID項(比如說快速查看,一個菜單處理子鍵下指向一個有句值的CLSID鍵列出了包含了文件瀏覽功能的.dll文件)
3)shellnew:ShellNew包含了一個“command”句,它包含了一個打開對象類型“新”文件的命令行。
4)DefaultIcon:DefaultIcon子鍵包含了一個“default”句,它包括了一個指向圖標的命令行(比如說,”C:\ Windows \System \shell32.dll,2″ 2就是從0數(shù)的第三個圖標,記住,是在Shell32.dll中的)
除了和它們擴展名關(guān)聯(lián)擴展名和文件類型以外,它們在HKEY_CLASSES_ROOT還有很多項。所有它們的項也都適用于nt,如界面和應(yīng)用程序的執(zhí)行。通常你將編輯僅僅一小部分這樣的項。除了彈出菜單提示以外,所有包含在這里的項只會在安裝應(yīng)用程序,在程序中設(shè)置調(diào)整或者創(chuàng)造關(guān)聯(lián)時被改變。
沒有HKEY_CLASSES_ROOT你是不能啟動系統(tǒng)的;你手工編輯它真的是很困難。HKEY_CLASSES_ROOT是你需要注冊標一個很重要的原因:應(yīng)用程序的控制和**作這個系統(tǒng)??吹剿某叽绾瓦@個處理鍵的復(fù)雜程度,SYSTEM.INI 和 WIN.INI不再夠用也是不用驚奇的。
HKEY_CURRENT_CONFIG
win95一般只使用一個硬件配置文件。如果有多個硬件配置文件。HKEY_LOCAL_MACHINE\Config中就會添加一個鍵。HKEY_LOCAL_MACHINE\Config包含了HKEY_LOCAL_MACHINE中相同的數(shù)據(jù)
在啟動時,你可以選擇你愿意使用的配置文件。如果有多個安裝,每次系統(tǒng)重新啟動時,你就必須選擇.HKEY_CURRENT_CONFIG是在啟動時控制目前硬件配置的鍵
在系統(tǒng)啟動以后,任何地方的變化都會自動影響到它。程序員經(jīng)常使用HKEY_CURRENT_CONFIG方便的來存取配置信息。
HKEY_CURRENT_CONFIG包括了系統(tǒng)中現(xiàn)有的所有配置文件的細節(jié)。你的選擇影響了哪一個硬件配置文件成為現(xiàn)在的。舉例來說,如果配置0002被選擇了,所有0002的配置信息會被映射到這些鍵上
HKEY_CURRENT_CONFIG允許軟件和設(shè)備驅(qū)動程序員很方便的更新注冊表,而不涉及到多個配置文件信息。 HKEY_LOCAL_MACHINE中同樣的數(shù)據(jù)和任何注冊表的變化都會同時的變化。
HKEY_DYN_DATA
在HKEY_DYN_DATA鍵中所有信息都是在啟動時被寫入的。它再現(xiàn)了Win95在系統(tǒng)中控制硬件所使用的動態(tài)數(shù)據(jù)。它僅只有三個鍵。它們保留了系統(tǒng)目前狀態(tài)監(jiān)視所需要的很簡單的信息
在HKEY_DYN_DATA中除了暫時文件,沒有任何數(shù)據(jù)被寫入硬盤。在系統(tǒng)每次重新啟動時所有的數(shù)據(jù)被重新寫入。另外,在既插即用的情況下,當設(shè)備改變狀態(tài)時一些數(shù)據(jù)可能會寫入。(比如說系統(tǒng)運行時在一個PCMCIA槽中插入一塊網(wǎng)卡)
Config Manager
配置管理包括了在Win95中每個安裝設(shè)備啟動時的信息。在啟動時它從HKEY_CURRENT_CONFIG中獲得它的列表并且檢查每個項。如果找到一個沒有在列表中列出的設(shè)備,它向系統(tǒng)報告這些信息來安裝。如果列表中的一個設(shè)備不在系統(tǒng)中,它就會在這個鍵值中顯示這個情況。
Enum
系統(tǒng)中已安裝的每個設(shè)備的啟動狀態(tài)都在這個鍵中被列出。如果某個設(shè)備沒準備好,它就在這里顯示出來。如果它準備好了,它也會顯示出來。每個設(shè)備指針也被列出顯示哪個注冊這個設(shè)備用來做它的控制
PerfStats
系統(tǒng)中所有設(shè)備的性能特征保存在這個鍵。它是十分難讀的,但是通過系統(tǒng)監(jiān)視器就十分容易看懂
Security
這個鍵顯示了登陸在這臺機器和網(wǎng)絡(luò)上的登陸用戶從哪個證明者得到有效的證明
HKEY_USERS
HKEY_USERS將缺省用戶和目前登陸用戶的信息輸入到注冊表編輯器,在win95中,它僅被那些配置文件激活的登陸用戶使用,同樣在nt下,它也是這樣。
win95從user.dat中取得他們的信息,winnt從ntuser.dat中取得信息。.dat文件包含了所有基于用戶的注冊表設(shè)置并且允許你取配置這些用戶的環(huán)境。如果你改變了缺省用戶的設(shè)置,所有新用戶會繼承同樣的設(shè)置。而且,那些已經(jīng)被建立的用戶變的失效。
HKEY_USERS\.DEFAULT
這個鍵的設(shè)置被用于所有新用戶,用戶們的配置文件從這個配置文件中建立。它包括所有的環(huán)境,屏幕,聲音,和其他用戶相關(guān)的功能。
HKEY_USERS\.DEFAULT\AppEvents
這個鍵列出了**響應(yīng),描述,和各種系統(tǒng)功能的聲音
HKEY_USERS\.DEFAULT\AppEvents\Schemes
缺省和當前的聲音方案在這個鍵和它的子鍵中列出。在**的時間中系統(tǒng)播發(fā)這些聲音
HKEY_USERS\.DEFAULT\Console
這個鍵保存了MS-DOS窗口的選項、布局、熒屏顏色和字體設(shè)置。
HKEY_USERS\.DEFAULT\Control Panel
所有在控制面板里配置設(shè)置的信息全保存在這個鍵和它的子鍵中
HKEY_USERS\.DEFAULT\Control Panel\Accessibility
這個鍵保存了所有在控制面板中輔助功能的設(shè)置。
HKEY_USERS\.DEFAULT\Control Panel\Appearance
這個鍵保存了所有在控制面板里顯示外觀的設(shè)置
HKEY_USERS\.DEFAULT\Control Panel\Appearance\Schemes
這個鍵列出了缺省可用的方案,和每個方案包括的顏色和字體。
HKEY_USERS\.DEFAULT\Control Panel\Colors
這個鍵保存了Windows每個缺省顏色的設(shè)置。每個值(顏色名)像一個RGB(紅、綠、藍)值列出來。比如說,黑色是0 0 0,意思就是紅色值是 0,綠色值是0,藍色值也是0。相反的白色就是255 255 255。其他的顏色都是RGB值合成的。
HKEY_USERS\.DEFAULT\Control Panel\Sound
這個鍵決定了在錯誤時系統(tǒng)是否發(fā)出響聲
HKEY_USERS\.DEFAULT\Environment
這個鍵保存了環(huán)境設(shè)置,特定的臨時性文件的位置
HKEY_USERS\.DEFAULT\Keyboard Layout
鍵盤布局設(shè)置被設(shè)置成標準美國英國標準傳統(tǒng)鍵盤布局。如果你選擇了其他的布局,那么數(shù)字列表會不同
HKEY_USERS\.DEFAULT\Software
軟件的安裝設(shè)置被保存在這個鍵中,缺省用戶只有微軟程序的設(shè)置
HKEY_USERS\.DEFAULT\Software\Microsoft
微軟的應(yīng)用程序的相關(guān)設(shè)置被放在這個鍵里。如果其他微軟程序被安裝,它們就更新這個用戶的微軟鍵。在下面的項目顯示了缺省的控制
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows
這個鍵保存了只和windows有聯(lián)系,和windows nt沒關(guān)系的設(shè)置,這些設(shè)置在win95中是相同的,使用同樣的驅(qū)動和功能
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NT
基于nt 功能的設(shè)置在這個鍵中。windows nt沒有這些設(shè)置就不能夠運行,它建立環(huán)境和網(wǎng)絡(luò)上的進程,用戶權(quán)限,打印機,字體等等
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NTCurrentVersion\Winlogon
這個設(shè)置控制了windows nt的登陸功能
HKEY_USERS\.DEFAULT\UNICODE Program Groups
缺省unicode程序組只是在使用程序管理器時被使用,explorer并不使用它們
S-1-5-21-1658001358-1336221227-1912232085-500 (SID)
HKEY_USERS\S-1-5-21-1658001358-1336221227-1912232085-500
這個是目前登陸用戶的sid,每一個網(wǎng)絡(luò)上的用戶都被域用戶管理器分配了一個sid,每一個sid都是唯一的,所以它依賴與登陸用戶,這個信息改變。它是從用戶配置文件的ntuser.dat文件調(diào)出的。一般來說,它的子鍵很多,是基與安裝的軟件的,選擇的和最終設(shè)置
HKEY_USERS\SID\Network
這個鍵顯示了所有連接到其他系統(tǒng)的映射。舉例來說,如果你映射驅(qū)動器H: 到\\server1\docs,它會作為一個子鍵顯示出來
HKEY_USERS\SID\Printers
這個鍵顯示了所有安裝的,共享的和連接的打印機
HKEY_USERS\SID\Software
這個鍵為單獨的用戶擴展,基于為用戶或者被用戶安裝的其他軟件。
HKEY_USERS保存了所有目前登陸用戶和缺省用戶的設(shè)置。登陸用戶的改變就如同不同用戶使用這個系統(tǒng),sid是用戶信息的表現(xiàn)。使用程序重新找到任何用戶的ntuser.dat文件并且把他放如到注冊表中觀看和編輯。
HKEY_CURRENT_USER
HKEY_CURRENT_USER包含著在HKEY_USERS安全辨別里列出的同樣信息。任何在HKEY_CURRENT_USER里的改動也都會立即HKEY_USERS改動。相反也是這樣。
HKEY_CURRENT_USER允許程序員和開發(fā)者易于存取目前登陸用戶的設(shè)置。通過建立這個鍵,微軟很容易在不涉及到用戶的SID下改變,添加和設(shè)置。
也就是說,所有當前的**作改變只是針對當前用戶而改變,并不影響其他用戶。
注冊表后面的秘密(三)注冊表的損壞和解決方法
三、注冊表的損壞和解決方法
注冊表可能出現(xiàn)的問題。
如果注冊表受到嚴重的損害,存取硬件和軟件可能會受到很大的限制,甚至系統(tǒng)不能啟動??赡芤驗橐粋€很小的問題,一個應(yīng)用程序?qū)⒉荒苷5倪\行,或者運行的不穩(wěn)定。
當注冊表在運行時是受保護的,所以它不可能被**,刪除,或者改變內(nèi)容,除非經(jīng)過一個“驗證過的”程序(比如安裝程序,注冊表編輯工具,和域用戶管理器改變安全策略和瀏覽器等)。由于這些保護,注冊表是十分安全的,但是并不是完全能防止的。問題仍會發(fā)生,你需要作好認識它們的準備來應(yīng)付這些問題。
當你注冊表出現(xiàn)問題時,我們大多數(shù)會聽到或者感覺到下面一些癥狀來認識問題,注冊表問題的特征有:
昨天計算機(或者軟件程序)還工作,但是今天它就不工作了;
在我安裝軟件/硬件前它還工作,但是現(xiàn)在我無法使用它了;
我的系統(tǒng)不象以前那樣工作了;
當我試圖關(guān)閉計算機時,硬盤響個不停卻沒有什么反應(yīng);
我的計算機啟動不了了;
天!又是藍屏,**機了;
注冊表變的不正常一般來說有三種原因:
1、應(yīng)用程序和驅(qū)動被添加到系統(tǒng)中
1)在注冊表中找出大半的錯誤與添加和刪除程序有關(guān)。多數(shù)用戶自己添加或者更新驅(qū)動,應(yīng)用程序等等。而且添加和刪除都是多次的。
2)程序本身也有問題。沒有任何應(yīng)用程序沒有bug或者錯誤。最好的情況,就是錯誤微乎其微,復(fù)雜深奧的問題你可能從來沒見過。在設(shè)計程序時因為受時間和經(jīng)費的限制,這些錯誤被放置不管。作為一個程序員來講,在程序里有錯誤可能是次要的,但是它使系統(tǒng)崩潰那就變成一個大問題了。
3)驅(qū)動程序不兼容。個人計算機世界的開放結(jié)構(gòu)體系造成了一定的風險,因為任何類型的部件組合在一起都是可能的。但測試所有的組合并保證所有設(shè)備的兼容性卻不太可能。所以當用在Win95下的驅(qū)動被用在Winnt時,某些問題就會產(chǎn)生。
4)在應(yīng)用程序安裝過程中在注冊表中添加了不正確的項。在安裝時,多數(shù)應(yīng)用程序使用叫一個叫SETUP.INF的文件詳細說明例如需要什么磁盤,哪個目錄將被建立,從哪里**文件,使應(yīng)用程序工作正常所需要建立的注冊表項等等詳細信息。如果在SETUP.INF中有一個錯誤,這個改變也仍然會出現(xiàn),就會出現(xiàn)嚴重的問題。
5)一個應(yīng)用程序?qū)е铝硪粋€應(yīng)用程序和它缺省的文件關(guān)聯(lián)出現(xiàn)錯誤。當一個應(yīng)用程序被安裝后,缺省文件類型被記錄在注冊表中。第二用戶可以通過雙擊來啟動應(yīng)用程序和裝載文件。很多時候,其他應(yīng)用程序也會使用同樣的擴展名。舉例說,當一個TIF圖形在基于注冊表里的設(shè)置被激活時,最后一次裝載的程序?qū)兂梢粋€執(zhí)行體。有時候,徹底不相同和根本不兼容的程序會在它們自己的文檔文件中使用相同的文件擴展名,啟動文檔的快捷方式將不會工作。在用戶**作過程中,如果在文件打開方式選擇了不正確的程序,就會造成一定的問題。
6)在反安裝時出現(xiàn)的錯誤。當你在控制面板里的添加/刪除程序種刪除程序時,通過應(yīng)用程序自身的反安裝特征,或者通過第三方軟件,這可能會對注冊表造成損壞。除此之外,刪除程序,輔助文件,數(shù)據(jù)文件和反安裝程序可能會試圖移去注冊表的參數(shù)項。因為系統(tǒng)不可能知道一個應(yīng)用程序在注冊表中所要存取的相關(guān)參數(shù)項,這將會不經(jīng)意的移除掉其他應(yīng)用程序的參數(shù)項。
7)字體的錯誤。當注冊表中字體ID出錯,你將在應(yīng)用程序中看到一種不同的字體。這就讓人感覺很討厭并可能需要你移去部分或全部字體并取代它們。這經(jīng)常發(fā)生在用戶頻繁安裝和刪除字體的時候。
2、硬件設(shè)置改變或者硬件失敗
1)如果計算機系統(tǒng)自身有問題,注冊表會有損害。通常的,這些錯誤可以在正確的系統(tǒng)維護和管理下避免。
2)**問題。**很隱秘的改變正常的文件和注冊表中的部分內(nèi)容來影響我們的系統(tǒng)。
3)計算機用電如果不正常也會影響計算機系統(tǒng),用UPS可以避免。
4)磁盤問題。很多時候你會因為容量不夠使硬件失敗而換掉你的硬盤。如果整塊硬盤失敗,當然,你將不得不從備份中恢復(fù)你的注冊表。其他的則是磁盤**扇區(qū)或者簇的故障。雖然這些情況在今天的系統(tǒng)不可能發(fā)生,但是磁盤表面介質(zhì)的故障會使得磁盤部分不可讀,包括那些注冊表文件位置。
3、用戶改動了注冊表
1)手工改變注冊表。當人們手工編輯注冊表,由于數(shù)據(jù)的復(fù)雜性和難懂性使得他們難免容易犯錯誤,而且這個錯誤可能很嚴重導致系統(tǒng)工作發(fā)生中斷。
2)拷貝其他注冊表是很多用戶犯的一個嚴重錯誤。因為從其他機器上拷貝來的注冊表文件并不意味著也會在這一個機器上工作正常。對單獨的系統(tǒng)來說注冊表都是特殊的。甚至計算機硬件設(shè)備相同,拷貝來的注冊表在另一個系統(tǒng)上不見得就會工作。如果使用另一個系統(tǒng)的注冊表,多數(shù)硬件設(shè)備將不會工作,用戶和安全問題可能造成數(shù)據(jù)和應(yīng)用程序信息無法使用。
保護Windows注冊表
保護注冊表是很重要的,有很多不同的工具可以實現(xiàn)這一目的。當沒有安全設(shè)置時,用戶可能的錯誤會更多。幸運的是,他們可以有幾中方法來保護Windows注冊表,在注冊表失敗時他們可以用額外的拷貝來恢復(fù)注冊表。下面就是其中的一些方法:
1、使用windows備份軟件
注:Win95和Win98備份程序有部分區(qū)別,在這里只講Win98的備份程序。
Win98中包括一個備份程序。當安裝Win98時如果你選擇“自定義安裝”,或者你可以在控制面板中的添加/刪除程序里安裝它。當你安裝了這個備份程序,從 開始菜單| 程序| 附件 |系統(tǒng)工具 |備份 可以運行它。啟動時,這個程序提示你是否新建一個新備份,打開現(xiàn)有的備份作業(yè),或者是還原備份文件。
如果選擇新建備份,則會有一個備份向?qū)崾灸闳绾稳プ鰝浞荨?
如果選擇取消向?qū)?,那么可以自己手工設(shè)置要備份的內(nèi)容。在備份內(nèi)容里可以備份網(wǎng)絡(luò)和本地驅(qū)動器的文件??梢栽谀阆雮浞荽疟P或者文件的選擇框打上對號來做備份工作。第二在備份在何處里填**做備份的目的位置既可。如果要連同windows注冊表一起備份,那么在 作業(yè)|選項|高級 里,在“備份 windows注冊表”選擇框打?qū)μ柧涂梢粤恕;謴?fù)則是備份的逆過程,這里就不詳述了。
2、在安全模式下**注冊表文件
當Win95運行時,注冊表文件被鎖定,只能用注冊表編輯器或者系統(tǒng)自己來進行存取,這些文件不能夠被**到其他地方。如果你在安全模式下啟動 Win95,注冊表就不會使用同樣的方法載入,這樣SYSTEM.DAT 和 USER.DAT就可以被**。實際上安全模式下系統(tǒng)文件是受保護的。
在啟動時,當計算機顯示Starting Windows 95…時按F8鍵進入安全模式。改變SYSTEM.DAT 和 USER.DAT的隱藏和只讀屬性這樣就可以看到和**它們。當拷貝完注冊表文件,不要忘記了改回它們只讀和隱藏屬性。
3、使用微軟配置備份來備份你的注冊表文件
CFGBACK.EXE是Win95(Win98中沒有這個軟件)所附帶的備份軟件。它在Win95CD-ROM上的\Other\Misc\ CFGBACK這個目錄。在系統(tǒng)上拷貝所有的文件到任何一個目錄,第二在桌面上建立一個CFGBACK.EXE的快捷方式。
要做一個注冊表的備份,啟動CFGBACK第二在選擇的備份名位置輸入一個名字第二點備份繼續(xù)。
注意:在使用CFGBACK前確定你已經(jīng)關(guān)掉了所有運行的程序。如果有程序在運行,CFGBACK可能將使得系統(tǒng)崩潰,數(shù)據(jù)丟失,而且保存的是一個不完整的備份。
4、導出注冊表
在我看來,如果你沒有磁帶機或者其他東西。在REGEDIT.EXE中導出選項有一個導出為文本文件。通常使用一個壓縮工具,導出工具選項也可以被用做保存和保護注冊表的方法。
要導出在注冊表中的任意鍵,選中這個鍵第二選擇 注冊|導出注冊表文件。這將會**這個鍵,并提示你在那里存放這個鍵及它的名字,第二用一個擴展名為.REG的文件保存這些數(shù)據(jù)。
當我們用文本格式導出注冊表。我們可以使用象pkzip或者其他壓縮工具壓縮它(可以在正常Dos模式運行的)來節(jié)省空間。
為了備份我們可以在windows目錄下建立一個用來做備份的文件夾。最少在一個月我們應(yīng)該進行定期的備份。因為許多計算機用戶訂閱或購買帶有贈送 CD的計算機雜志。這些CD上有大量的時間限制的共享軟件。許多用戶從其中安裝一個或者多個程序。當軟件過期時它們反安裝這些程序,但是這些程序在注冊表中留下了一些痕跡。頻繁的添加/刪除程序會影響注冊表,但是有了備份相對來說我們就比較安全了。
我們必須重新啟動計算機到DOS模式下來導入,假定你導出你的注冊表為mar99.reg.現(xiàn)在在命令提示下打
REGEDIT /C MAR99.REG
注冊表編輯器將mar99.reg中的數(shù)據(jù)導入你的注冊表并保存。不過只在命令提示下這個全部導入的工作才比較可靠。
技巧:如果你的注冊表不斷的變的龐大,那么先導出它第二象上面那樣再逐個導入它。在這個導入導出過程中注冊表中不必要的項將被清除出去。如果你使用 Win98那么你可以使用Scanreg.exe程序。在windows目錄命令提示下打 Scanreg /fix來執(zhí)行命令。
警告:當你想看一個導出的注冊表內(nèi)容時(擴展名為.reg的文件),不要直接雙擊它,擴展名.reg文件和REGEDIT.EXE是相關(guān)聯(lián)的,這將會在沒得任何提示時自動把這個文件導入到注冊表中。如果這個文件里有不正確的數(shù)據(jù),它將會破壞注冊表。要編輯這個文件,選中它,第二用鼠標右鍵點它第二選擇編輯。
請記住,預(yù)防要比修復(fù)好的多。無論你選擇什么樣的方法備份注冊表,做吧。注冊表太容易被改變了,在發(fā)生突然**時你手頭上有幾個注冊表的備份是解決問題最好的方法。
從注冊表故障中恢復(fù)
這里有四種不同級別的方法可以從Windows注冊表故障中恢復(fù)
Restart
Redetect
Restore
Reinstall
讓我們來看每一個方法來斷定來使用它最適合的時間,并且解決何種類型的問題。
Restart(重新啟動)
Win95注冊表大部分內(nèi)容保存在RAM中。如果哪個信息受損,它就必須重新讀取正確的信息。當你重新啟動系統(tǒng),注冊表將數(shù)據(jù)從硬盤讀到RAM中就可以使用了。
拿字體ID問題來說。每種字體在系統(tǒng)中用一個ID號來使用。當一個字體被用在一個文檔時,這個字體被這個數(shù)字保存并且用一個名字來標識。當字體ID損壞那么字體顯示和打印將被其他字體取代。重新啟動系統(tǒng)從硬盤上刷新數(shù)據(jù),將產(chǎn)生修復(fù)過的字體ID,這樣字體顯示和打印就變的正常了。
這也就是為什么Windows系統(tǒng)故障經(jīng)常在重新啟動后就又恢復(fù)正常的一個原因。
Redetect the Devices(重新檢測硬件)
如果一個設(shè)備工作不正常,那么在注冊表中控制設(shè)備的設(shè)置可能受損了。為了重新設(shè)置注冊表,你應(yīng)該刪除并且重裝設(shè)備的驅(qū)動,或者你應(yīng)該讓Win95重新檢測它們。很多時候,當一個設(shè)備工作不正常,它們會在設(shè)備管理器上此設(shè)備前使用一個驚嘆號標志顯示出來。很明顯,如果設(shè)備從不來工作,可能就是其他問題了。但是如果設(shè)備以前工作,現(xiàn)在出問題,注冊表就需要被恢復(fù)。
要檢測一個設(shè)備,在控制面板上選擇添加新硬件。第一個問題是文你“需要Windows搜索新硬件嗎?”如果你選擇是,Win95將做一個徹底的搜索去找“新”設(shè)備。任何設(shè)置不正確的或者沒找到驅(qū)動的設(shè)備將被檢測到并顯示出來。
Restore(恢復(fù))
從CFGBACK中恢復(fù)注冊表
從CFGBACK中恢復(fù)注冊表有很多好處。如果你建立了幾個備份,你可以選擇正確的一個來恢復(fù)。你可以如同做手術(shù)般放置排列注冊表參數(shù)項。
導入注冊表文件
象前面章節(jié)講述的那樣,一個代替使用備份的方法就是導入一個.REG文件。.REG文件包括了目的數(shù)據(jù)位置,所以對這個文件簡單的雙擊就可以將數(shù)據(jù)放入注冊表。它是所有恢復(fù)程序中最簡單的,但是也可能造成錯誤。錯誤不會是用REGEDIT.EXE把數(shù)據(jù)寫入錯誤的位置,它很可能出現(xiàn)在用戶直接雙擊注冊表文件的時候。
Reinstall(重新安裝)
重新安裝
最后的方法就是重新安裝驅(qū)動、應(yīng)用程序或者Win95。一般來說,它只花費你一個小時左右時間去做這些事。如果你在現(xiàn)有的文件上重新安裝,很多配置信息還被安裝在同樣的地方。同樣在安裝驅(qū)動程序時,你應(yīng)該重新加入配置數(shù)據(jù)。
實際上找出原因并修復(fù)它所花費的時間比重新安裝還要多,這就是為什么重新安裝在技術(shù)支持上是一個相當普通的“解決方法”。關(guān)鍵的問題在于,“你是否想找出是什么錯誤,或者你是否只想讓它工作正常?”**取決于問這個問題的用戶情況,發(fā)生問題的頻繁次數(shù)和重新安裝的軟件的實用性。
當Windows第一次被安裝時它將在啟動目錄的根目錄上創(chuàng)建一個名為SYSTEM.1ST的文件。這是Windows第一次啟動時創(chuàng)建的個簡單的 system.dat文件。你所應(yīng)該做的就是將這個文件放到windows目錄(在dos模式下)并將它的名字改為SYSTEM.DAT。第二重新啟動。第二你就可以得到安裝時第一次啟動的windows。
因為很多.INI,.DLL和其他文件的改變,這種方法的成功機率大概只超過50%。比如當裝IE4.0后系統(tǒng)和注冊表將有一個徹底的改變。我們的system.1st文件雖然包含了一個Dll文件的參考,但它可能更新或者改變版本號。
這里就是幾個在注冊表出故障的時候恢復(fù)它的工具和方法。你的數(shù)據(jù)可能會安全恢復(fù),但是不管你用什么方法,除了重新格式化硬盤,最好的方法就是做好系統(tǒng)注冊表的備份工作。
弈安傳媒科技微課堂,每天分享財經(jīng)資訊,計算機技術(shù)知識,人生感悟,創(chuàng)業(yè)指導以及各種專業(yè)技術(shù)知識資料學習交流.移動學習平臺、知識分享平臺。隨時隨地的學習,如果你喜歡成長,這里你不容錯過的地方.弈安傳媒科技培訓關(guān)注:關(guān)注自己成長,分享內(nèi)容,分享自己的技術(shù),成就未來.
[弈安傳媒科技提升自己的平臺]請關(guān)注:號及** 弈安傳媒科技
拓展知識:
WIn10文件關(guān)聯(lián)DDE
步驟一:我們需要打開電腦,在桌面的任意位置單擊右鍵,在彈出的窗口中選擇“新建”,之后新建“文本文檔”;
步驟二:新建完成文本文檔后,我們雙擊打開新建的文本文檔,將下面代碼**進去:Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.exe] @=”exefile” “Content Type”=”application/x-msdownload” ;[HKEY_CLASSES_ROOT\.exe\PersistentHandler] @=”{098f2470-bae0-11cd-b579-08002b30bfeb}” [HKEY_CLASSES_ROOT\exefile\shell\open\command] @=”\”%1\”” %*””
步驟三:**文成后,我們需要點擊“文件”后在“另存為”,在保存界面上,將保存類型修改為“所有文件”,將文件名修改為“修復(fù)exe關(guān)聯(lián).reg”,點擊保存;
步驟四:按照上述步驟**作之后,在“修復(fù)exe關(guān)聯(lián).reg”文件上單擊右鍵,選擇“合并”;
步驟五:點擊“合并”后,在彈出的提示框中點擊“是”,重啟計算機就可以解決;
步驟六:當我們電腦重啟之后,殺毒軟件就可以運行了,打開殺軟對系統(tǒng)進行**掃描。”
本回答被提問者采納
前沿拓展:
WIn10文件關(guān)聯(lián)DDE
1、通過快捷鍵【W(wǎng)in+R】調(diào)出運行窗口,輸入“regedit”后點擊【確定】。
2、找到【HKEY_CLASSES_ROOT\lnkfile】,在右側(cè)新建一個字符串值“IsShortcut”的文件;第二重啟電腦就可以解決。
windows注冊表方面的文章已經(jīng)有好多,但是其中更多的內(nèi)容還是很多windows注冊表的技巧,很多用戶都是“知其然不知其所以然”,而且很多的技巧所涉及的鍵和鍵值根本不為人所知的。這樣并沒有對注冊表有一個系統(tǒng)的介紹。下面這篇文章分三個部分:注冊表和它的用途,注冊表的結(jié)構(gòu),注冊表的問題和故障恢復(fù)。希望讓計算機新手對注冊表有一個簡單、全面的概念和了解。關(guān)于注冊表使用技巧和竅門很多文章都有介紹,在此就不贅述。其中翻譯不恰當和錯誤之處,望大家指正。
注冊表后面的秘密
(一)注冊表和它的角色
什么是注冊表?
注冊表因為它復(fù)雜的結(jié)構(gòu)和沒有任何聯(lián)系的CLSID鍵使得它可能看上去很神秘。不幸的是,微軟并沒有完全公開講述關(guān)于注冊表正確設(shè)置的支持信息,這樣使得注冊表看上去更不可琢磨。處理和編輯注冊表如同“黑色藝術(shù)”一樣,它在系統(tǒng)中的設(shè)置讓用戶感覺象在黑暗中摸索一樣找不到感覺。這樣,因為用戶對這方面的缺乏了解使得注冊表更多的出現(xiàn)故障。
Windows注冊表是幫助Windows控制硬件、軟件、用戶環(huán)境和Windows界面的一套數(shù)據(jù)文件,注冊表包含在Windows目錄下兩個文件 system.dat和user.dat里,還有它們的備份system.da0和user.da0。通過Windows目錄下的regedit.exe 程序可以存取注冊表數(shù)據(jù)庫。在以前,在windows的更早版本(在win95以前),這些功能是靠win.ini,system.ini和其他和應(yīng)用程序有關(guān)聯(lián)的.ini文件來實現(xiàn)的.
在windows**作系統(tǒng)家族中,system.ini和win.ini這兩個文件包含了**作系統(tǒng)所有的控制功能和應(yīng)用程序的信息, system.ini管理計算機硬件而win.ini管理桌面和應(yīng)用程序。所有驅(qū)動、字體、設(shè)置和參數(shù)會保存在.ini文件中,任何新程序都會被記錄在. ini文件中。這些記錄會在程序代碼中被引用。因為受win.ini和system.ini文件大小的限制,程序員添加輔助的.INI文件以用來控制更多的應(yīng)用程序。舉例來說,微軟的Excel有一個excel.ini文件,它包含著選項、設(shè)置、缺省參數(shù)和其他關(guān)系到Excel運行正常的信息。在 system.ini和win.ini中只需要指出excel.ini的路徑和文件名即可。
最開始,system.ini和win.ini控制著所有windows和應(yīng)用程序的特征和存取方法,它在少數(shù)的用戶和少數(shù)應(yīng)用程序的環(huán)境中工作的很好。隨著應(yīng)用程序的數(shù)量和復(fù)雜性越來越大,則需要在.ini文件中添加更多的參數(shù)項。這樣下來,在一個變化的環(huán)境中,在應(yīng)用程序安裝到系統(tǒng)中后,每個人都會更改.ini文件。然而,沒有一個人在刪除應(yīng)用程序后刪除.ini文件中的相關(guān)設(shè)置,所以system.ini和win.ini這個兩個文件會變的越來越大。每增加的內(nèi)容會導致系統(tǒng)性能越來越慢。而且每次應(yīng)用程序的升級都出現(xiàn)這樣的難題:升級會增加更多的參數(shù)項但是從來不去掉舊的設(shè)置。而且還有一個明顯的問題,一個.ini文件的最大尺寸是64KB。為了解決這個問題,軟件商自己開始支持自己的.ini文件,第二指向特定的ini文件如win.ini和 system.ini文件。這樣下來多個.ini文件影響了系統(tǒng)正常的存取級別設(shè)置。如果一個應(yīng)用程序的.ini文件和WIN.INI文件設(shè)置起沖突,究竟是誰的優(yōu)先級更高呢?
注冊表最初被設(shè)計為一個應(yīng)用程序的數(shù)據(jù)文件相關(guān)參考文件,最后擴展成對于32位**作系統(tǒng)和應(yīng)用程序包括了所有功能下的東東.注冊表是一套控制**作系統(tǒng)外表和如何響應(yīng)外來**工作的文件。這些“**”的范圍從直接存取一個硬件設(shè)備到接口如何響應(yīng)特定用戶到應(yīng)用程序如何運行等等。注冊表因為它的目的和性質(zhì)變的很復(fù)雜,它被設(shè)計為專門為32位應(yīng)用程序工作,文件的大小被限制在大約40MB。
注冊表都做些什么?
注冊表是為Windows NT和Windows95中所有32位硬件/驅(qū)動和32位應(yīng)用程序設(shè)計的數(shù)據(jù)文件。16位驅(qū)動在Winnt下無法工作,所以所有設(shè)備都通過注冊表來控制,一般這些是通過BIOS來控制的。在Win95下,16位驅(qū)動會繼續(xù)以實模式方式設(shè)備工作,它們使用system.ini 來控制。16位應(yīng)用程序會工作在NT或者Win95 下,它們的程序仍然會參考win.ini和system.ini文件獲得信息和控制。
在沒有注冊表的情況下,**作系統(tǒng)不會獲得必須的信息來運行和控制附屬的設(shè)備和應(yīng)用程序及正確響應(yīng)用戶的輸入。
在系統(tǒng)中注冊表是一個記錄32位驅(qū)動的設(shè)置和位置的數(shù)據(jù)庫。當**作系統(tǒng)需要存取硬件設(shè)備,它使用驅(qū)動程序,甚至設(shè)備是一個BIOS支持的設(shè)備。無 BIOS支持設(shè)備安裝時必須需要驅(qū)動,這個驅(qū)動是**于**作系統(tǒng)的,但是**作系統(tǒng)需要知道從哪里找到它們,文件名、版本號、其他設(shè)置和信息,沒有注冊表對設(shè)備的記錄,它們就不能被使用。
當一個用戶準備運行一個應(yīng)用程序,注冊表提供應(yīng)用程序信息給**作系統(tǒng),這樣應(yīng)用程序可以被找到,正確數(shù)據(jù)文件的位置被規(guī)定,其他設(shè)置也都可以被使用。
注冊表保存關(guān)于缺省數(shù)據(jù)和輔助文件的位置信息、菜單、按鈕條、窗口狀態(tài)和其他可選項。它同樣也保存了安裝信息(比如說日期),安裝軟件的用戶,軟件版本號和日期,序列號等。根據(jù)安裝軟件的不同,它包括的信息也不同。
然而,一般來說,注冊表控制所有32位應(yīng)用程序和驅(qū)動,控制的方法是基于用戶和計算機的,而不依賴于應(yīng)用程序或驅(qū)動,每個注冊表的參數(shù)項控制了一個用戶的功能或者計算機功能。用戶功能可能包括了桌面外觀和用戶目錄。所以,計算機功能和安裝的硬件和軟件有關(guān),對所以用戶來說項都是公用的。
有些程序功能對用戶有影響,有些時作用于計算機而不是為個人設(shè)置的,同樣的,驅(qū)動可能是用戶指定的,但在很多時候,它們在計算機中是通用的。
注冊表控制用戶模式的例子有:
控制面板功能;
桌面外觀和圖標;
網(wǎng)絡(luò)參數(shù);
瀏覽器功能性和特征;
那些功能中的某些是和用戶無關(guān)的,有些是針對用戶的。
計算機相關(guān)控制項基于計算機名,和登陸用戶無關(guān)??刂祁愋偷睦邮前惭b一個應(yīng)用程序,不管是哪個用戶,程序的可用性和存取是不變的,然而,運行程序圖標依賴于網(wǎng)絡(luò)上登陸的用戶。網(wǎng)絡(luò)協(xié)議可用性和優(yōu)先權(quán)基于計算機,但是當前連接和用戶信息相關(guān)。
這里是在注冊表中基與計算機控制條目的一些例子:
存取控制;
登陸確認;
文件和打印機共享;
網(wǎng)卡設(shè)置和協(xié)議;
系統(tǒng)性能和虛擬內(nèi)存設(shè)置;
沒有了注冊表,Win95和Winnt 就不太可能存在。它們實在太復(fù)雜了,以致于用過去的.ini文件無法控制,它們的擴展能力需要幾乎無限制的安裝和使用應(yīng)用程序,注冊表實現(xiàn)了它。然而,注冊表比.ini文件更復(fù)雜,理解它如何工作,它做什么和如何用它來做是有效管理系統(tǒng)的關(guān)鍵。
在系統(tǒng)中注冊表控制所有32位應(yīng)用程序和它們的功能及多個應(yīng)用程序的交互,比如**和粘貼,它也控制所有的硬件和驅(qū)動程序。雖然多數(shù)可以通過控制面板來安裝和設(shè)置,理解注冊表仍是做Winnt和Win95系統(tǒng)管理基本常識?! ?
二、注冊表的結(jié)構(gòu)
注冊表的結(jié)構(gòu)
注冊表是Windows程序員建造的一個復(fù)雜的信息數(shù)據(jù)庫,它是多層次式的。在不同系統(tǒng)上注冊表的基本結(jié)構(gòu)相同。其中的復(fù)雜數(shù)據(jù)會在不同方式上結(jié)合,從而產(chǎn)生出一個絕對唯一的注冊表。
計算機配置和缺省用戶設(shè)置的注冊表數(shù)據(jù)在Winnt中被保存在下面這五個文件中:
DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSER.DAT。
Win95中所有系統(tǒng)注冊信息保存在windows目錄下的SYSTEM.DAT文件里。所有硬件設(shè)置和軟件信息也保存在這個文件。它要比NT注冊表文件簡單的多,因為這里并不需要更多的控制。Win95被設(shè)計為一個網(wǎng)絡(luò)的客戶或者單獨工作的系統(tǒng),所以用戶控制或者安全級別和NT不一樣。這使得 Win95注冊表工作比NT更容易,所以這個文件也比較小。
Win95用戶的注冊數(shù)據(jù)一般被保存在windows目錄下的user.dat里。如果你在控制面板|密碼|用戶配置文件中創(chuàng)建并使用多于一個用戶的配置文件,每個用戶就會有在\WINDOWS
\Profiles\username\USER.DAT下它自己的user.dat文件。在啟動時,系統(tǒng)將記錄你的登陸,從你目錄中的配置文件(USER.DAT信息)將被裝入,以用來保持你自己的桌面和圖標。
控制鍵
在注冊表編輯器中注冊表項是用控制鍵來顯示或者編輯的??刂奇I使得找到和編輯信息項組更容易。因此,注冊表使用這些條目。下面是六個控制鍵
HKEY_LOCAL_MACHINE
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA
HKEY_USERS
HKEY_CURRENT_USER
Winnt和Win95的注冊表并不兼容。從Win95向Winnt升級需要你重新安裝32位應(yīng)用程序,重新在桌面上創(chuàng)建圖標,并重新建立用戶環(huán)境。
通過控制鍵可以比較容易編輯注冊表。雖然它們顯示和編輯好象**的鍵,其實HKEY_CLASSES_ROOT 和 HKEY_CURRENT_CONFIG是 HKEY_LOCAL_MACHINE的一部分。HKEY_CURRENT_USER是HKEY_USERS 的一部分。
HKEY_LOCAL_MACHINE包含了HKEY_CLASSES_ROOT和
HKEY_CURRENT_CONFIG的所有內(nèi)容。每次計算機啟動時,HKEY_CURRENT_CONFIG和HKEY_CLASSES_ROOT的信息被映射用以查看和編輯。
HKEY_CLASSES_ROOT其實就是HKEY_LOCAL_MACHINESOFTWARE\Classes,但是在HKEY_CLASSES_ROOT窗編輯相對來說顯得更容易和有條理。
HKEY_USERS保存著缺省用戶信息和當前登陸用戶信息。當一個域成員計算機啟動并且一個用戶登陸,域控制器自動將信息發(fā)送到 HKEY_CURRENT_USER里,而且HKEY_CURRENT_USER信息被映射到系統(tǒng)內(nèi)存中。其他用戶的信息并不發(fā)送到系統(tǒng),而是記錄在域控制器里。
鍵和子鍵
數(shù)據(jù)被分割成多層次的鍵和子鍵,建立分層次(就象Exploer一樣)結(jié)構(gòu)更易于編輯。每個鍵有成組的信息而且根據(jù)在其中的數(shù)據(jù)類型被命名。每個鍵在它的文件夾圖標上都有一個加號(+)標志子鍵說明在它下面還有更多內(nèi)容的東西。當點開它的時候,文件夾的加號標志被替換成一個減號(-)標志,第二顯示出下一級的子鍵。
所有軟件,硬件,windows工作的設(shè)置都存放在HKEY_LOCAL_MACHINE。所有安全策略,用戶權(quán)限和共享信息也包括在這個鍵中。用戶權(quán)限,安全策略,共享信息可以通過Windows NT域用戶管理器,Explorer和Win95中控制面板來設(shè)置。
HKEY_CLASSES_ROOT
HKEY_CLASSES_ROOT包含了所有應(yīng)用程序運行時必需的信息:
在文件和應(yīng)用程序之間所有的擴展名和關(guān)聯(lián);
所有的驅(qū)動程序名稱;
類的ID數(shù)字(所要存取項的名字用數(shù)字來代替);
DDE和OLE的信息;
用于應(yīng)用程序和文件的圖標;
HKEY_CURRENT_CONFIG.
HKEY_CURRENT_CONFIG是在HKEY_LOCAL_MACHINE中當前硬件配置信息的映射。如果系統(tǒng)只有一個配置文件,也就是原始配置,數(shù)據(jù)將一直在同樣的地方。在控制面板|系統(tǒng)|硬件配置文件|創(chuàng)建一個額外的配置使額外配置信息放入HKEY_LOCAL_MACHINE。當 Win95中存在多個配置文件時,當每次計算機啟動時將給出一個提示讓你選擇一個配置文件。在Winnt中,在啟動時你可以按空格鍵來選擇上次正常啟動時硬件配置文件。根據(jù)硬件配置文件選擇的不同,特定的信息被映射到HKEY_CURRENT_CONFIG。
HKEY_DYN_DATA
HKEY_DYN_DATA和其他的注冊表控制鍵不同,因為實際上它并不被寫入硬盤驅(qū)動器中。Win95的一個優(yōu)點是,在系統(tǒng)啟動時 HKEY_DYN_DATA這個控制鍵儲存收集到的即插即用信息并配置它們。它保存在內(nèi)存中,Win95用它來控制硬件。因為是在內(nèi)存中,所以它不從硬盤中讀取,每次當你啟動計算機時,配置都有可能會不一樣。在啟動時Win95必須計算超過1600種可能的配置。所以,如果系統(tǒng)改變既定的設(shè)置而沒有報告給 Win95那么潛在的問題就可能發(fā)生。系統(tǒng)大多數(shù)時間工作良好,但是并非一直如此。
HKEY_USERS
HKEY_USERS僅包含了缺省用戶設(shè)置和登陸用戶的信息。雖然它包含了所有**用戶的設(shè)置,但在用戶未登陸網(wǎng)絡(luò)時用戶的設(shè)置是不可用的。這些設(shè)置告訴系統(tǒng)哪些圖標會被使用,什么組可用,哪個開始菜單可用,哪些顏色和字體可用,和控制面板上什么選項和設(shè)置可用。
HKEY_CURRENT_USER
用來保存當前用戶和缺省用戶的信息,HKEY_CURRENT_USER僅映射當前登陸用戶的信息。
各主鍵的簡單介紹
HKEY_LOCAL_MACHINE
HKEY_LOCAL_MACHINE是一個顯示控制系統(tǒng)和軟件的處理鍵。HKLM鍵保存著計算機的系統(tǒng)信息。它包括網(wǎng)絡(luò)和硬件上所有的軟件設(shè)置。(比如文件的位置,注冊和未注冊的狀態(tài),版本號等等)這些設(shè)置和用戶無關(guān),因為這些設(shè)置是針對使用這個系統(tǒng)的所有用戶的。
HKEY_LOCAL_MACHINE\AppEvents
為了以后在瘦客戶機上運行客戶機/服務(wù)器這樣的應(yīng)用程序,在Win95/98中AppEvents鍵是空的。應(yīng)用程序?qū)嶋H上都駐留網(wǎng)絡(luò)服務(wù)器上,這些鍵會保存部分指針。
HKEY_LOCAL_MACHINE\Config
這個鍵保存著你計算機上所有不同的硬件設(shè)置(這些從控制面板的系統(tǒng)屬性中硬件配置文件中可以創(chuàng)建)。這些配置在啟動時通常被**到HKCC。每個配置會被用一個鍵(比如0001或者0002等等)來保存,每個都是一個**的配置。如果你只有一個單一的配置,那就只會有0001這個鍵
HKEY_LOCAL_MACHINE\Config\0001\Display
這個鍵表示顯示的設(shè)置,如熒屏字體,窗體大小,窗**置和分辨率等
一個小技巧:當設(shè)置了計算機不支持的大分辨率導致Windows不能啟動時(黑屏),可以修改分辨率來解決。進入安全模式,運行 regedit.exe,在這個鍵的Resolution鍵值中把數(shù)據(jù)值修改為640,480或者800,600這樣的低分辨率,第二重新啟動計算機即可。
HKEY_LOCAL_MACHINE\Config\0001\System
這個鍵保存著系統(tǒng)里打印機的信息 HKEY_LOCAL_MACHINEConfig\0001\System\CurrentControlSet\Control\Print
\Printers
在這個鍵下面,有一個鍵是為系統(tǒng)上每一個打印機設(shè)置的,通過控制面板添加和刪除打印機會調(diào)整這個列表
HKEY_LOCAL_MACHINE\Enum
Enum鍵包含啟動時發(fā)現(xiàn)的硬件設(shè)備和那些既插即用卡的信息。Win95使用總線列舉在啟動時通過不同的.ini文件來檢測硬件信息。那些在啟動時被安裝的和被檢測到的硬件會顯示在這里。子鍵包括BIOS, ESDI, FLOP, HTREE, ISAPNP, Monitor, Network, Root, SCSI, 和 VIRTUAL。子鍵名表示它們各自的硬件設(shè)備信息。
HKEY_LOCAL_MACHINE\Enum\BIOS
BIOS鍵保存著系統(tǒng)中所有即插即用設(shè)備的信息。它們用一套代碼數(shù)列出,包括每一個鍵的詳細說明,舉例,*pnp0400是并行口LPT1的鍵。如果LPT1并不具備即插即用功能,它就會別列入到Enum下的Root鍵中
HKEY_LOCAL_MACHINE\Enum\Root
Root鍵包括所有非即插即用設(shè)備的信息。在這里,我們可以迅速斷定哪些設(shè)備是即插即用,那些不是。比如SCSI適配器,這個設(shè)備必須符合Win95中一個鍵名為ForcedConfig的硬件設(shè)置,這個不會改變。
HKEY_LOCAL_MACHINE\Enum\Network
win95的網(wǎng)絡(luò)功能在這個鍵有詳細說明,子鍵包括了每個已經(jīng)安裝的主要的服務(wù)和協(xié)議。
HKEY_LOCAL_MACHINE\HARDWARE
hardware子鍵包括了兩個多層的子鍵:DESCRIPTION鍵,它包含了**處理器和一個浮點處理器的信息。還有一個設(shè)備映射鍵,它下面的串行鍵列出你所有的com端口。這個hardware鍵僅保存超級終端程序的信息,及數(shù)學處理器和串行口。
HKEY_LOCAL_MACHINE\Network
這個鍵僅保存網(wǎng)絡(luò)登陸信息。所有網(wǎng)絡(luò)服務(wù)細節(jié)都保存在HKEY_LOCAL_MACHINE\Enum\Network這個鍵中。這個鍵有一個子鍵, logon,包括了lmlogon(本地機器登陸?0=false 1=true)的值,logonvalidated(必須登陸驗證),策略處理,主登陸方式(Windows登陸 ,微軟網(wǎng)絡(luò)客戶方式等),用戶名和用戶配置。
HKEY_LOCAL_MACHINE\SECURITY
security 有兩個子鍵,第一個是存?。ㄋ罱K致使一個遠程鍵列出網(wǎng)絡(luò)安全資源,存取權(quán)限等)和提供(包括列出網(wǎng)絡(luò)地址和地址服務(wù)器),這個鍵被保留用在以后使用高級安全功能和NT兼容性上
HKEY_LOCAL_MACHINE\SOFTWARE
這個鍵列出了所有已安裝的32位軟件和程序的.ini文件。它包括了變化,依靠軟件安裝。那些程序的控制功能在這里的子鍵中列出。多數(shù)子鍵簡單的列出了安裝軟件的版本號。
我們在\Microsoft\Windows\Current Version下發(fā)現(xiàn)了一些有意思的設(shè)置,它有如下子鍵:
1.App paths: 你曾經(jīng)安裝過的所有32位軟件的位置。
2.Applets, Compression, Controls Folder : 包括下控制面板象顯示屬性那樣屬性條的附件。
3.Detect, explorer :很多有意思的子鍵如Namespace keys of Desktop和My Computer—-它們指出了回收站和撥號網(wǎng)絡(luò)的CLSID行—-和提示子鍵可以讓你建立自己的提示。
4.Extensions : 一個擴展聯(lián)系的列表,當前相關(guān)聯(lián)的擴展名和比特定的執(zhí)行文件更適合的目標類型。
5.Fonts, fontsize, FS Templates :系統(tǒng)屬性條中所選擇文件系統(tǒng)模板, 服務(wù)器,桌面計算機或者筆記本電腦信息。
6.MS-DOS Emulation :包括一個應(yīng)用程序兼容子鍵 為大量過時的程序二進制鍵所設(shè)。
7.MS-DOS Options :在dos模式下的設(shè)置,如himem.sys,cd-roms等。
8.Network :網(wǎng)絡(luò)驅(qū)動的配置。
9.Nls, Policies :系統(tǒng)管理員認為你不應(yīng)該去做的事。
10.ProfileList :所有可以登陸你計算機的用戶名列表。
11.在Windows啟動時運行的程序的神秘之處是它們并不在開始菜單的啟動文件夾中。它們在HKEY_LOCAL_MACHINE\Microsoft
\Windows\CurrentVersion\下的子鍵中被執(zhí)行。
Run : 程序在啟動時運行
RunOnce : windows初始化時程序在啟動時只運行一次,這個經(jīng)常用在當安裝軟件之后需要重新啟動系統(tǒng)的時候,所以這個鍵一般都是空的。
RunServices : 它就象Run一樣,但是包含了“服務(wù)”,它不象一般的程序它們是比較重要的或者是“系統(tǒng)”程序。但是它們不是VXDs,就象McAfee或者RegServ工作一樣。
RunServicesOnce : 它只運行一次,但是是“系統(tǒng)自身”的安裝(大量的windows安裝參數(shù):通常鍵值包括了系統(tǒng)目錄位置,和win95更新,可選項安裝組件,和windows啟動目錄的子鍵。
注意:在很多黑客木馬軟件中,常常在這里添加鍵值(一般是在Run中),這樣使得木馬軟件可以隨著windows啟動而啟動并且很隱秘。在這里可以查看不正常的啟動項和去掉無用的運行程序(比如我就很不喜歡超級解霸的自動伺服器,在這里可以去掉它)。
12.SharedDLLs:共享DLL的列表,每一個都給出了在一個不可知系統(tǒng)的一個數(shù)字等級。
13.Shell Extensions:列出了“被認可的”O(jiān)LE注冊條,和相應(yīng)的CLSID連接。
14.ShellScrap :這個包含了一個PriorityCacheFormats的子鍵,它包括了一個空的有限值,它更象過去**artDrive命令行參數(shù)的派生。
15.Time Zones : 主鍵值是你現(xiàn)在的時區(qū);子鍵定義了所以可能的時區(qū)。
16.Uninstall:這個保存了程序在添加/刪除程序?qū)υ捒虻娘@示;子鍵包含了指向反安裝程序的路徑。和安裝向?qū)嗨?#8230;….)winlogon(包含了合法登陸布告的文本句)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
這個子鍵包括設(shè)備驅(qū)動和其他服務(wù)的描述和控制。不同于windows nt,win95只包括限制驅(qū)動的控制設(shè)置信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
這個子鍵包括了win95控制面板中的信息。不要編輯這些信息,因為一些小程序的改變在很多地方,一個丟失的項會使這個系統(tǒng)變的不穩(wěn)定
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
這個鍵包括了所有win95的標準服務(wù)。所有被添加的服務(wù)和設(shè)備,每個標準的服務(wù)鍵包括了它的設(shè)置和辨認設(shè)置。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
\Arbitrators
arbitrators鍵包括了當兩個設(shè)備共同占用同樣的設(shè)置需要解決的信息。四個子鍵包括了內(nèi)存地址,沖突,DMA,I/O端口沖突和IRQ沖突。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
\Class
class鍵包括了所有win95支持的設(shè)備classes控制,這些和你在添加新硬件出現(xiàn)的硬件組很類似,還包括了這些設(shè)備如何安裝的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servicesinetaccs
這個鍵包括了關(guān)于這個系統(tǒng)變化的ie附件的可用性,它僅在你安裝過ie2。0或者更高版本才出現(xiàn)。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service**SNP32
msnp32描述了客戶機如何在microsoft網(wǎng)絡(luò)中實現(xiàn)功能,它包括了認證過程和認證者的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesNWNP32
nenp32鍵描述了windows客戶如何在netware網(wǎng)絡(luò)中工作功能,它包括了關(guān)于認證過程和證明者的信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesRemoteAccess
在這個鍵里包括需要遠程工作在win95系統(tǒng)上的信息,有認證參數(shù),主機信息,和為了建立一個撥號連接工作的協(xié)議信息。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesSNMP
這個鍵包括了所以snmp(簡單網(wǎng)絡(luò)管理協(xié)議)的參數(shù)。它包括了允許的管理,配置陷阱,和有效的團體。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesVxD
vxd鍵包括了win95中所有32位虛擬設(shè)備驅(qū)動信息,win95自動管理它們,所以不必要用注冊表編輯器編輯它們,所以的靜態(tài)vxds用子鍵列出。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesWebPost
webpost鍵包括了所有裝載的internet郵局的設(shè)置,如果你連接一個isp,并且它列出載這里,你應(yīng)該給自己選則一個服務(wù)器。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesWinsock
這個鍵列出了當連接到internet上winnsock文件的信息,如果列出了不正確的文件,你將不會連接上internet。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesWinTrust
wintrust功能是檢查從Internet上下載來的文件是否有**,它可以確保你得到干凈安全的文件。
HKEY_CLASSES_ROOT
在注冊表中HKEY_CLASSES_ROOT是系統(tǒng)中控制所有數(shù)據(jù)文件的項。這個在Win95和Winnt中是相通的。 HKEY_CLASSES_ROOT控制鍵包括了所有文件擴展和所有和執(zhí)行文件相關(guān)的文件。它同樣也決定了當一個文件被雙擊時起反應(yīng)的相關(guān)應(yīng)用程序。
HKEY_CLASSES_ROOT被用作程序員在安裝軟件時方便的發(fā)送信息,在Win95和Winnt中,HKEY_CLASSES_ROOT和HKEY_LOCAL_
MACHINE\Software\Classes是相同的。程序員在運行他們的啟動程序時不需要擔憂實際的位置,相反的,他們只需要在HKEY-
CLASSES_ROOT中加入數(shù)據(jù)就可以了。
在Windows用戶圖形界面下,每件事—-每個文件,每個目錄,每個小程序,每個連接,每個驅(qū)動—都被看做一個對象;每個對象都有確定的屬性和它聯(lián)系。HKCR包含著對象類型和它們屬性的列表。HKCR主要的功能被設(shè)置為:
一個對象類型和一個文件擴展名關(guān)聯(lián)
一個對象類型和一種圖標關(guān)聯(lián)
一個對象類型和一個命令行動作的關(guān)聯(lián)
定義對象類型相關(guān)菜單選項和定義每一個對象類型屬性選項
在Win95中,相關(guān)菜單就是當你鼠標右擊一個對象時所彈出的菜單;屬性就是當你選擇屬性項后一個展開的對話框。用簡單術(shù)語來說就是在改變HKCR中的設(shè)置可以改變一個給定文件擴展名缺省的關(guān)聯(lián)。改變一個文件類型的缺省圖標,和添加或者刪除給定對象類型的彈出菜單內(nèi)容(或者所有的對象類型)
HKCR包括了三種基本類型的子鍵
\??? 或者文件擴展名子鍵
文件擴展名子鍵在彈出菜單上連接文件擴展名到對象類型和相關(guān)**作,屬性項,和相關(guān)**作。
\object 類型子鍵
對象類型子鍵定義了一個對象類型在它缺省圖標的項,它的彈出菜單和屬性項,它的相關(guān)**作和它的CLSID連接。
\CLSID 子鍵
在Windows下每件事都被用一個數(shù)字取代它的名字來對待。就象人往往是用名字來處理事情一樣。CLSID是標識所有列出的圖標,應(yīng)用程序,目錄,文件類型等等對象的數(shù)字。是微軟為制造商分配的,每一個都必須是唯一的。制造商將CLSID放入安裝程序文件這樣就可以在安裝時更新注冊表。
注冊表是應(yīng)用程序進行時它們需要關(guān)于做什么的指示的數(shù)據(jù)庫。比如說,假定你有一個微軟Excel 7電子數(shù)據(jù)表的Word 7文檔,當你在Word中雙擊這個電子數(shù)據(jù)表,應(yīng)用程序菜單就會變成Excel的菜單而且電子數(shù)據(jù)表進入編輯狀態(tài),就好象你在Excel中一樣。它是如何知道該做什么呢?每個 Excel 7創(chuàng)建的文件都有Excel的CLSID連接。Word讀這個CLSID后,到注冊表中尋找指示,依賴CLSID下的數(shù)據(jù)運行.DLL文件或者應(yīng)用程序。
CLSID子鍵為對象類型提供了OLE和DDE信息和圖標。相關(guān)菜單,或者包含在它子鍵中的屬性項信息。這個可能是多數(shù)讓人看到后覺得“恐怖”的鍵。每個CLSID數(shù)必須是唯一的,實際上,為了這個目的微軟已經(jīng)出產(chǎn)了CLSID-產(chǎn)生程序–這個結(jié)果導致你往往得到32位16進制的數(shù)字串,除非你是程序員,否則多數(shù)部分鍵看起來是很枯燥的。它們包括內(nèi)存管理模式,客戶機/服務(wù)器配置,和OLE處理的.dll連接。
關(guān)于子鍵的一點注解
1)shell:Shell鍵有個一”action“子鍵,如同”open“一樣,這里有一個command子鍵;command子鍵有一個缺省句值,它包含了運行程序的命令行。將一個”open“子鍵放在一個對象類型的shell子鍵中會在這個對象類型的彈出菜單上多出一個”open“選項,給這個open子鍵一個command(缺省命令行”C:\Windows \Notepad.exe %1″)子鍵會使得打開這個對象類型時使用筆記本做為缺省應(yīng)用程序。其他**作選項包括View,Print,Copy,Virus,Scan等等。
2)shellex:Shellex鍵有一個子鍵。它們包含的每一個子鍵指向一個為對象類型執(zhí)行OLE和DDE功能的CLSID項(比如說快速查看,一個菜單處理子鍵下指向一個有句值的CLSID鍵列出了包含了文件瀏覽功能的.dll文件)
3)shellnew:ShellNew包含了一個“command”句,它包含了一個打開對象類型“新”文件的命令行。
4)DefaultIcon:DefaultIcon子鍵包含了一個“default”句,它包括了一個指向圖標的命令行(比如說,”C:\ Windows \System \shell32.dll,2″ 2就是從0數(shù)的第三個圖標,記住,是在Shell32.dll中的)
除了和它們擴展名關(guān)聯(lián)擴展名和文件類型以外,它們在HKEY_CLASSES_ROOT還有很多項。所有它們的項也都適用于nt,如界面和應(yīng)用程序的執(zhí)行。通常你將編輯僅僅一小部分這樣的項。除了彈出菜單提示以外,所有包含在這里的項只會在安裝應(yīng)用程序,在程序中設(shè)置調(diào)整或者創(chuàng)造關(guān)聯(lián)時被改變。
沒有HKEY_CLASSES_ROOT你是不能啟動系統(tǒng)的;你手工編輯它真的是很困難。HKEY_CLASSES_ROOT是你需要注冊標一個很重要的原因:應(yīng)用程序的控制和**作這個系統(tǒng)??吹剿某叽绾瓦@個處理鍵的復(fù)雜程度,SYSTEM.INI 和 WIN.INI不再夠用也是不用驚奇的。
HKEY_CURRENT_CONFIG
win95一般只使用一個硬件配置文件。如果有多個硬件配置文件。HKEY_LOCAL_MACHINE\Config中就會添加一個鍵。HKEY_LOCAL_MACHINE\Config包含了HKEY_LOCAL_MACHINE中相同的數(shù)據(jù)
在啟動時,你可以選擇你愿意使用的配置文件。如果有多個安裝,每次系統(tǒng)重新啟動時,你就必須選擇.HKEY_CURRENT_CONFIG是在啟動時控制目前硬件配置的鍵
在系統(tǒng)啟動以后,任何地方的變化都會自動影響到它。程序員經(jīng)常使用HKEY_CURRENT_CONFIG方便的來存取配置信息。
HKEY_CURRENT_CONFIG包括了系統(tǒng)中現(xiàn)有的所有配置文件的細節(jié)。你的選擇影響了哪一個硬件配置文件成為現(xiàn)在的。舉例來說,如果配置0002被選擇了,所有0002的配置信息會被映射到這些鍵上
HKEY_CURRENT_CONFIG允許軟件和設(shè)備驅(qū)動程序員很方便的更新注冊表,而不涉及到多個配置文件信息。 HKEY_LOCAL_MACHINE中同樣的數(shù)據(jù)和任何注冊表的變化都會同時的變化。
HKEY_DYN_DATA
在HKEY_DYN_DATA鍵中所有信息都是在啟動時被寫入的。它再現(xiàn)了Win95在系統(tǒng)中控制硬件所使用的動態(tài)數(shù)據(jù)。它僅只有三個鍵。它們保留了系統(tǒng)目前狀態(tài)監(jiān)視所需要的很簡單的信息
在HKEY_DYN_DATA中除了暫時文件,沒有任何數(shù)據(jù)被寫入硬盤。在系統(tǒng)每次重新啟動時所有的數(shù)據(jù)被重新寫入。另外,在既插即用的情況下,當設(shè)備改變狀態(tài)時一些數(shù)據(jù)可能會寫入。(比如說系統(tǒng)運行時在一個PCMCIA槽中插入一塊網(wǎng)卡)
Config Manager
配置管理包括了在Win95中每個安裝設(shè)備啟動時的信息。在啟動時它從HKEY_CURRENT_CONFIG中獲得它的列表并且檢查每個項。如果找到一個沒有在列表中列出的設(shè)備,它向系統(tǒng)報告這些信息來安裝。如果列表中的一個設(shè)備不在系統(tǒng)中,它就會在這個鍵值中顯示這個情況。
Enum
系統(tǒng)中已安裝的每個設(shè)備的啟動狀態(tài)都在這個鍵中被列出。如果某個設(shè)備沒準備好,它就在這里顯示出來。如果它準備好了,它也會顯示出來。每個設(shè)備指針也被列出顯示哪個注冊這個設(shè)備用來做它的控制
PerfStats
系統(tǒng)中所有設(shè)備的性能特征保存在這個鍵。它是十分難讀的,但是通過系統(tǒng)監(jiān)視器就十分容易看懂
Security
這個鍵顯示了登陸在這臺機器和網(wǎng)絡(luò)上的登陸用戶從哪個證明者得到有效的證明
HKEY_USERS
HKEY_USERS將缺省用戶和目前登陸用戶的信息輸入到注冊表編輯器,在win95中,它僅被那些配置文件激活的登陸用戶使用,同樣在nt下,它也是這樣。
win95從user.dat中取得他們的信息,winnt從ntuser.dat中取得信息。.dat文件包含了所有基于用戶的注冊表設(shè)置并且允許你取配置這些用戶的環(huán)境。如果你改變了缺省用戶的設(shè)置,所有新用戶會繼承同樣的設(shè)置。而且,那些已經(jīng)被建立的用戶變的失效。
HKEY_USERS\.DEFAULT
這個鍵的設(shè)置被用于所有新用戶,用戶們的配置文件從這個配置文件中建立。它包括所有的環(huán)境,屏幕,聲音,和其他用戶相關(guān)的功能。
HKEY_USERS\.DEFAULT\AppEvents
這個鍵列出了**響應(yīng),描述,和各種系統(tǒng)功能的聲音
HKEY_USERS\.DEFAULT\AppEvents\Schemes
缺省和當前的聲音方案在這個鍵和它的子鍵中列出。在**的時間中系統(tǒng)播發(fā)這些聲音
HKEY_USERS\.DEFAULT\Console
這個鍵保存了MS-DOS窗口的選項、布局、熒屏顏色和字體設(shè)置。
HKEY_USERS\.DEFAULT\Control Panel
所有在控制面板里配置設(shè)置的信息全保存在這個鍵和它的子鍵中
HKEY_USERS\.DEFAULT\Control Panel\Accessibility
這個鍵保存了所有在控制面板中輔助功能的設(shè)置。
HKEY_USERS\.DEFAULT\Control Panel\Appearance
這個鍵保存了所有在控制面板里顯示外觀的設(shè)置
HKEY_USERS\.DEFAULT\Control Panel\Appearance\Schemes
這個鍵列出了缺省可用的方案,和每個方案包括的顏色和字體。
HKEY_USERS\.DEFAULT\Control Panel\Colors
這個鍵保存了Windows每個缺省顏色的設(shè)置。每個值(顏色名)像一個RGB(紅、綠、藍)值列出來。比如說,黑色是0 0 0,意思就是紅色值是 0,綠色值是0,藍色值也是0。相反的白色就是255 255 255。其他的顏色都是RGB值合成的。
HKEY_USERS\.DEFAULT\Control Panel\Sound
這個鍵決定了在錯誤時系統(tǒng)是否發(fā)出響聲
HKEY_USERS\.DEFAULT\Environment
這個鍵保存了環(huán)境設(shè)置,特定的臨時性文件的位置
HKEY_USERS\.DEFAULT\Keyboard Layout
鍵盤布局設(shè)置被設(shè)置成標準美國英國標準傳統(tǒng)鍵盤布局。如果你選擇了其他的布局,那么數(shù)字列表會不同
HKEY_USERS\.DEFAULT\Software
軟件的安裝設(shè)置被保存在這個鍵中,缺省用戶只有微軟程序的設(shè)置
HKEY_USERS\.DEFAULT\Software\Microsoft
微軟的應(yīng)用程序的相關(guān)設(shè)置被放在這個鍵里。如果其他微軟程序被安裝,它們就更新這個用戶的微軟鍵。在下面的項目顯示了缺省的控制
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows
這個鍵保存了只和windows有聯(lián)系,和windows nt沒關(guān)系的設(shè)置,這些設(shè)置在win95中是相同的,使用同樣的驅(qū)動和功能
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NT
基于nt 功能的設(shè)置在這個鍵中。windows nt沒有這些設(shè)置就不能夠運行,它建立環(huán)境和網(wǎng)絡(luò)上的進程,用戶權(quán)限,打印機,字體等等
HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NTCurrentVersion\Winlogon
這個設(shè)置控制了windows nt的登陸功能
HKEY_USERS\.DEFAULT\UNICODE Program Groups
缺省unicode程序組只是在使用程序管理器時被使用,explorer并不使用它們
S-1-5-21-1658001358-1336221227-1912232085-500 (SID)
HKEY_USERS\S-1-5-21-1658001358-1336221227-1912232085-500
這個是目前登陸用戶的sid,每一個網(wǎng)絡(luò)上的用戶都被域用戶管理器分配了一個sid,每一個sid都是唯一的,所以它依賴與登陸用戶,這個信息改變。它是從用戶配置文件的ntuser.dat文件調(diào)出的。一般來說,它的子鍵很多,是基與安裝的軟件的,選擇的和最終設(shè)置
HKEY_USERS\SID\Network
這個鍵顯示了所有連接到其他系統(tǒng)的映射。舉例來說,如果你映射驅(qū)動器H: 到\\server1\docs,它會作為一個子鍵顯示出來
HKEY_USERS\SID\Printers
這個鍵顯示了所有安裝的,共享的和連接的打印機
HKEY_USERS\SID\Software
這個鍵為單獨的用戶擴展,基于為用戶或者被用戶安裝的其他軟件。
HKEY_USERS保存了所有目前登陸用戶和缺省用戶的設(shè)置。登陸用戶的改變就如同不同用戶使用這個系統(tǒng),sid是用戶信息的表現(xiàn)。使用程序重新找到任何用戶的ntuser.dat文件并且把他放如到注冊表中觀看和編輯。
HKEY_CURRENT_USER
HKEY_CURRENT_USER包含著在HKEY_USERS安全辨別里列出的同樣信息。任何在HKEY_CURRENT_USER里的改動也都會立即HKEY_USERS改動。相反也是這樣。
HKEY_CURRENT_USER允許程序員和開發(fā)者易于存取目前登陸用戶的設(shè)置。通過建立這個鍵,微軟很容易在不涉及到用戶的SID下改變,添加和設(shè)置。
也就是說,所有當前的**作改變只是針對當前用戶而改變,并不影響其他用戶。
注冊表后面的秘密(三)注冊表的損壞和解決方法
三、注冊表的損壞和解決方法
注冊表可能出現(xiàn)的問題。
如果注冊表受到嚴重的損害,存取硬件和軟件可能會受到很大的限制,甚至系統(tǒng)不能啟動。可能因為一個很小的問題,一個應(yīng)用程序?qū)⒉荒苷5倪\行,或者運行的不穩(wěn)定。
當注冊表在運行時是受保護的,所以它不可能被**,刪除,或者改變內(nèi)容,除非經(jīng)過一個“驗證過的”程序(比如安裝程序,注冊表編輯工具,和域用戶管理器改變安全策略和瀏覽器等)。由于這些保護,注冊表是十分安全的,但是并不是完全能防止的。問題仍會發(fā)生,你需要作好認識它們的準備來應(yīng)付這些問題。
當你注冊表出現(xiàn)問題時,我們大多數(shù)會聽到或者感覺到下面一些癥狀來認識問題,注冊表問題的特征有:
昨天計算機(或者軟件程序)還工作,但是今天它就不工作了;
在我安裝軟件/硬件前它還工作,但是現(xiàn)在我無法使用它了;
我的系統(tǒng)不象以前那樣工作了;
當我試圖關(guān)閉計算機時,硬盤響個不停卻沒有什么反應(yīng);
我的計算機啟動不了了;
天!又是藍屏,**機了;
注冊表變的不正常一般來說有三種原因:
1、應(yīng)用程序和驅(qū)動被添加到系統(tǒng)中
1)在注冊表中找出大半的錯誤與添加和刪除程序有關(guān)。多數(shù)用戶自己添加或者更新驅(qū)動,應(yīng)用程序等等。而且添加和刪除都是多次的。
2)程序本身也有問題。沒有任何應(yīng)用程序沒有bug或者錯誤。最好的情況,就是錯誤微乎其微,復(fù)雜深奧的問題你可能從來沒見過。在設(shè)計程序時因為受時間和經(jīng)費的限制,這些錯誤被放置不管。作為一個程序員來講,在程序里有錯誤可能是次要的,但是它使系統(tǒng)崩潰那就變成一個大問題了。
3)驅(qū)動程序不兼容。個人計算機世界的開放結(jié)構(gòu)體系造成了一定的風險,因為任何類型的部件組合在一起都是可能的。但測試所有的組合并保證所有設(shè)備的兼容性卻不太可能。所以當用在Win95下的驅(qū)動被用在Winnt時,某些問題就會產(chǎn)生。
4)在應(yīng)用程序安裝過程中在注冊表中添加了不正確的項。在安裝時,多數(shù)應(yīng)用程序使用叫一個叫SETUP.INF的文件詳細說明例如需要什么磁盤,哪個目錄將被建立,從哪里**文件,使應(yīng)用程序工作正常所需要建立的注冊表項等等詳細信息。如果在SETUP.INF中有一個錯誤,這個改變也仍然會出現(xiàn),就會出現(xiàn)嚴重的問題。
5)一個應(yīng)用程序?qū)е铝硪粋€應(yīng)用程序和它缺省的文件關(guān)聯(lián)出現(xiàn)錯誤。當一個應(yīng)用程序被安裝后,缺省文件類型被記錄在注冊表中。第二用戶可以通過雙擊來啟動應(yīng)用程序和裝載文件。很多時候,其他應(yīng)用程序也會使用同樣的擴展名。舉例說,當一個TIF圖形在基于注冊表里的設(shè)置被激活時,最后一次裝載的程序?qū)兂梢粋€執(zhí)行體。有時候,徹底不相同和根本不兼容的程序會在它們自己的文檔文件中使用相同的文件擴展名,啟動文檔的快捷方式將不會工作。在用戶**作過程中,如果在文件打開方式選擇了不正確的程序,就會造成一定的問題。
6)在反安裝時出現(xiàn)的錯誤。當你在控制面板里的添加/刪除程序種刪除程序時,通過應(yīng)用程序自身的反安裝特征,或者通過第三方軟件,這可能會對注冊表造成損壞。除此之外,刪除程序,輔助文件,數(shù)據(jù)文件和反安裝程序可能會試圖移去注冊表的參數(shù)項。因為系統(tǒng)不可能知道一個應(yīng)用程序在注冊表中所要存取的相關(guān)參數(shù)項,這將會不經(jīng)意的移除掉其他應(yīng)用程序的參數(shù)項。
7)字體的錯誤。當注冊表中字體ID出錯,你將在應(yīng)用程序中看到一種不同的字體。這就讓人感覺很討厭并可能需要你移去部分或全部字體并取代它們。這經(jīng)常發(fā)生在用戶頻繁安裝和刪除字體的時候。
2、硬件設(shè)置改變或者硬件失敗
1)如果計算機系統(tǒng)自身有問題,注冊表會有損害。通常的,這些錯誤可以在正確的系統(tǒng)維護和管理下避免。
2)**問題。**很隱秘的改變正常的文件和注冊表中的部分內(nèi)容來影響我們的系統(tǒng)。
3)計算機用電如果不正常也會影響計算機系統(tǒng),用UPS可以避免。
4)磁盤問題。很多時候你會因為容量不夠使硬件失敗而換掉你的硬盤。如果整塊硬盤失敗,當然,你將不得不從備份中恢復(fù)你的注冊表。其他的則是磁盤**扇區(qū)或者簇的故障。雖然這些情況在今天的系統(tǒng)不可能發(fā)生,但是磁盤表面介質(zhì)的故障會使得磁盤部分不可讀,包括那些注冊表文件位置。
3、用戶改動了注冊表
1)手工改變注冊表。當人們手工編輯注冊表,由于數(shù)據(jù)的復(fù)雜性和難懂性使得他們難免容易犯錯誤,而且這個錯誤可能很嚴重導致系統(tǒng)工作發(fā)生中斷。
2)拷貝其他注冊表是很多用戶犯的一個嚴重錯誤。因為從其他機器上拷貝來的注冊表文件并不意味著也會在這一個機器上工作正常。對單獨的系統(tǒng)來說注冊表都是特殊的。甚至計算機硬件設(shè)備相同,拷貝來的注冊表在另一個系統(tǒng)上不見得就會工作。如果使用另一個系統(tǒng)的注冊表,多數(shù)硬件設(shè)備將不會工作,用戶和安全問題可能造成數(shù)據(jù)和應(yīng)用程序信息無法使用。
保護Windows注冊表
保護注冊表是很重要的,有很多不同的工具可以實現(xiàn)這一目的。當沒有安全設(shè)置時,用戶可能的錯誤會更多。幸運的是,他們可以有幾中方法來保護Windows注冊表,在注冊表失敗時他們可以用額外的拷貝來恢復(fù)注冊表。下面就是其中的一些方法:
1、使用windows備份軟件
注:Win95和Win98備份程序有部分區(qū)別,在這里只講Win98的備份程序。
Win98中包括一個備份程序。當安裝Win98時如果你選擇“自定義安裝”,或者你可以在控制面板中的添加/刪除程序里安裝它。當你安裝了這個備份程序,從 開始菜單| 程序| 附件 |系統(tǒng)工具 |備份 可以運行它。啟動時,這個程序提示你是否新建一個新備份,打開現(xiàn)有的備份作業(yè),或者是還原備份文件。
如果選擇新建備份,則會有一個備份向?qū)崾灸闳绾稳プ鰝浞荨?
如果選擇取消向?qū)?,那么可以自己手工設(shè)置要備份的內(nèi)容。在備份內(nèi)容里可以備份網(wǎng)絡(luò)和本地驅(qū)動器的文件??梢栽谀阆雮浞荽疟P或者文件的選擇框打上對號來做備份工作。第二在備份在何處里填**做備份的目的位置既可。如果要連同windows注冊表一起備份,那么在 作業(yè)|選項|高級 里,在“備份 windows注冊表”選擇框打?qū)μ柧涂梢粤?。恢?fù)則是備份的逆過程,這里就不詳述了。
2、在安全模式下**注冊表文件
當Win95運行時,注冊表文件被鎖定,只能用注冊表編輯器或者系統(tǒng)自己來進行存取,這些文件不能夠被**到其他地方。如果你在安全模式下啟動 Win95,注冊表就不會使用同樣的方法載入,這樣SYSTEM.DAT 和 USER.DAT就可以被**。實際上安全模式下系統(tǒng)文件是受保護的。
在啟動時,當計算機顯示Starting Windows 95…時按F8鍵進入安全模式。改變SYSTEM.DAT 和 USER.DAT的隱藏和只讀屬性這樣就可以看到和**它們。當拷貝完注冊表文件,不要忘記了改回它們只讀和隱藏屬性。
3、使用微軟配置備份來備份你的注冊表文件
CFGBACK.EXE是Win95(Win98中沒有這個軟件)所附帶的備份軟件。它在Win95CD-ROM上的\Other\Misc\ CFGBACK這個目錄。在系統(tǒng)上拷貝所有的文件到任何一個目錄,第二在桌面上建立一個CFGBACK.EXE的快捷方式。
要做一個注冊表的備份,啟動CFGBACK第二在選擇的備份名位置輸入一個名字第二點備份繼續(xù)。
注意:在使用CFGBACK前確定你已經(jīng)關(guān)掉了所有運行的程序。如果有程序在運行,CFGBACK可能將使得系統(tǒng)崩潰,數(shù)據(jù)丟失,而且保存的是一個不完整的備份。
4、導出注冊表
在我看來,如果你沒有磁帶機或者其他東西。在REGEDIT.EXE中導出選項有一個導出為文本文件。通常使用一個壓縮工具,導出工具選項也可以被用做保存和保護注冊表的方法。
要導出在注冊表中的任意鍵,選中這個鍵第二選擇 注冊|導出注冊表文件。這將會**這個鍵,并提示你在那里存放這個鍵及它的名字,第二用一個擴展名為.REG的文件保存這些數(shù)據(jù)。
當我們用文本格式導出注冊表。我們可以使用象pkzip或者其他壓縮工具壓縮它(可以在正常Dos模式運行的)來節(jié)省空間。
為了備份我們可以在windows目錄下建立一個用來做備份的文件夾。最少在一個月我們應(yīng)該進行定期的備份。因為許多計算機用戶訂閱或購買帶有贈送 CD的計算機雜志。這些CD上有大量的時間限制的共享軟件。許多用戶從其中安裝一個或者多個程序。當軟件過期時它們反安裝這些程序,但是這些程序在注冊表中留下了一些痕跡。頻繁的添加/刪除程序會影響注冊表,但是有了備份相對來說我們就比較安全了。
我們必須重新啟動計算機到DOS模式下來導入,假定你導出你的注冊表為mar99.reg.現(xiàn)在在命令提示下打
REGEDIT /C MAR99.REG
注冊表編輯器將mar99.reg中的數(shù)據(jù)導入你的注冊表并保存。不過只在命令提示下這個全部導入的工作才比較可靠。
技巧:如果你的注冊表不斷的變的龐大,那么先導出它第二象上面那樣再逐個導入它。在這個導入導出過程中注冊表中不必要的項將被清除出去。如果你使用 Win98那么你可以使用Scanreg.exe程序。在windows目錄命令提示下打 Scanreg /fix來執(zhí)行命令。
警告:當你想看一個導出的注冊表內(nèi)容時(擴展名為.reg的文件),不要直接雙擊它,擴展名.reg文件和REGEDIT.EXE是相關(guān)聯(lián)的,這將會在沒得任何提示時自動把這個文件導入到注冊表中。如果這個文件里有不正確的數(shù)據(jù),它將會破壞注冊表。要編輯這個文件,選中它,第二用鼠標右鍵點它第二選擇編輯。
請記住,預(yù)防要比修復(fù)好的多。無論你選擇什么樣的方法備份注冊表,做吧。注冊表太容易被改變了,在發(fā)生突然**時你手頭上有幾個注冊表的備份是解決問題最好的方法。
從注冊表故障中恢復(fù)
這里有四種不同級別的方法可以從Windows注冊表故障中恢復(fù)
Restart
Redetect
Restore
Reinstall
讓我們來看每一個方法來斷定來使用它最適合的時間,并且解決何種類型的問題。
Restart(重新啟動)
Win95注冊表大部分內(nèi)容保存在RAM中。如果哪個信息受損,它就必須重新讀取正確的信息。當你重新啟動系統(tǒng),注冊表將數(shù)據(jù)從硬盤讀到RAM中就可以使用了。
拿字體ID問題來說。每種字體在系統(tǒng)中用一個ID號來使用。當一個字體被用在一個文檔時,這個字體被這個數(shù)字保存并且用一個名字來標識。當字體ID損壞那么字體顯示和打印將被其他字體取代。重新啟動系統(tǒng)從硬盤上刷新數(shù)據(jù),將產(chǎn)生修復(fù)過的字體ID,這樣字體顯示和打印就變的正常了。
這也就是為什么Windows系統(tǒng)故障經(jīng)常在重新啟動后就又恢復(fù)正常的一個原因。
Redetect the Devices(重新檢測硬件)
如果一個設(shè)備工作不正常,那么在注冊表中控制設(shè)備的設(shè)置可能受損了。為了重新設(shè)置注冊表,你應(yīng)該刪除并且重裝設(shè)備的驅(qū)動,或者你應(yīng)該讓Win95重新檢測它們。很多時候,當一個設(shè)備工作不正常,它們會在設(shè)備管理器上此設(shè)備前使用一個驚嘆號標志顯示出來。很明顯,如果設(shè)備從不來工作,可能就是其他問題了。但是如果設(shè)備以前工作,現(xiàn)在出問題,注冊表就需要被恢復(fù)。
要檢測一個設(shè)備,在控制面板上選擇添加新硬件。第一個問題是文你“需要Windows搜索新硬件嗎?”如果你選擇是,Win95將做一個徹底的搜索去找“新”設(shè)備。任何設(shè)置不正確的或者沒找到驅(qū)動的設(shè)備將被檢測到并顯示出來。
Restore(恢復(fù))
從CFGBACK中恢復(fù)注冊表
從CFGBACK中恢復(fù)注冊表有很多好處。如果你建立了幾個備份,你可以選擇正確的一個來恢復(fù)。你可以如同做手術(shù)般放置排列注冊表參數(shù)項。
導入注冊表文件
象前面章節(jié)講述的那樣,一個代替使用備份的方法就是導入一個.REG文件。.REG文件包括了目的數(shù)據(jù)位置,所以對這個文件簡單的雙擊就可以將數(shù)據(jù)放入注冊表。它是所有恢復(fù)程序中最簡單的,但是也可能造成錯誤。錯誤不會是用REGEDIT.EXE把數(shù)據(jù)寫入錯誤的位置,它很可能出現(xiàn)在用戶直接雙擊注冊表文件的時候。
Reinstall(重新安裝)
重新安裝
最后的方法就是重新安裝驅(qū)動、應(yīng)用程序或者Win95。一般來說,它只花費你一個小時左右時間去做這些事。如果你在現(xiàn)有的文件上重新安裝,很多配置信息還被安裝在同樣的地方。同樣在安裝驅(qū)動程序時,你應(yīng)該重新加入配置數(shù)據(jù)。
實際上找出原因并修復(fù)它所花費的時間比重新安裝還要多,這就是為什么重新安裝在技術(shù)支持上是一個相當普通的“解決方法”。關(guān)鍵的問題在于,“你是否想找出是什么錯誤,或者你是否只想讓它工作正常?”**取決于問這個問題的用戶情況,發(fā)生問題的頻繁次數(shù)和重新安裝的軟件的實用性。
當Windows第一次被安裝時它將在啟動目錄的根目錄上創(chuàng)建一個名為SYSTEM.1ST的文件。這是Windows第一次啟動時創(chuàng)建的個簡單的 system.dat文件。你所應(yīng)該做的就是將這個文件放到windows目錄(在dos模式下)并將它的名字改為SYSTEM.DAT。第二重新啟動。第二你就可以得到安裝時第一次啟動的windows。
因為很多.INI,.DLL和其他文件的改變,這種方法的成功機率大概只超過50%。比如當裝IE4.0后系統(tǒng)和注冊表將有一個徹底的改變。我們的system.1st文件雖然包含了一個Dll文件的參考,但它可能更新或者改變版本號。
這里就是幾個在注冊表出故障的時候恢復(fù)它的工具和方法。你的數(shù)據(jù)可能會安全恢復(fù),但是不管你用什么方法,除了重新格式化硬盤,最好的方法就是做好系統(tǒng)注冊表的備份工作。
弈安傳媒科技微課堂,每天分享財經(jīng)資訊,計算機技術(shù)知識,人生感悟,創(chuàng)業(yè)指導以及各種專業(yè)技術(shù)知識資料學習交流.移動學習平臺、知識分享平臺。隨時隨地的學習,如果你喜歡成長,這里你不容錯過的地方.弈安傳媒科技培訓關(guān)注:關(guān)注自己成長,分享內(nèi)容,分享自己的技術(shù),成就未來.
[弈安傳媒科技提升自己的平臺]請關(guān)注:號及** 弈安傳媒科技
拓展知識:
WIn10文件關(guān)聯(lián)DDE
步驟一:我們需要打開電腦,在桌面的任意位置單擊右鍵,在彈出的窗口中選擇“新建”,之后新建“文本文檔”;
步驟二:新建完成文本文檔后,我們雙擊打開新建的文本文檔,將下面代碼**進去:Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.exe] @=”exefile” “Content Type”=”application/x-msdownload” ;[HKEY_CLASSES_ROOT\.exe\PersistentHandler] @=”{098f2470-bae0-11cd-b579-08002b30bfeb}” [HKEY_CLASSES_ROOT\exefile\shell\open\command] @=”\”%1\”” %*””
步驟三:**文成后,我們需要點擊“文件”后在“另存為”,在保存界面上,將保存類型修改為“所有文件”,將文件名修改為“修復(fù)exe關(guān)聯(lián).reg”,點擊保存;
步驟四:按照上述步驟**作之后,在“修復(fù)exe關(guān)聯(lián).reg”文件上單擊右鍵,選擇“合并”;
步驟五:點擊“合并”后,在彈出的提示框中點擊“是”,重啟計算機就可以解決;
步驟六:當我們電腦重啟之后,殺毒軟件就可以運行了,打開殺軟對系統(tǒng)進行**掃描。”
本回答被提問者采納
原創(chuàng)文章,作者:九賢生活小編,如若轉(zhuǎn)載,請注明出處:http:///102687.html