註冊表

註冊表

註冊表(Registry,中國大陸譯作註冊表,台灣、港澳譯作登錄檔)是Microsoft Windows中的一個重要的資料庫,用於存儲系統和應用程式的設定信息。早在Windows 3.0推出OLE技術的時候,註冊表就已經出現。隨後推出的Windows NT是第一個從系統級別廣泛使用註冊表的作業系統。但是,從Windows 95開始,註冊表才真正成為Windows用戶經常接觸的內容,並在其後的作業系統中繼續沿用至今。

基本信息

使用

如何打開註冊表

打開註冊表的命令是:

regedit

註冊表編輯器界面註冊表編輯器界面

正常情況下,你可以點擊 開始-運行,然後輸入 regedit 點擊確定就可以註冊表了,有圖慎重提醒,操作註冊表有可能造成系統故障,建議儘量不要隨意操作註冊表。

如果上述打開註冊表的方法不能使用,說明你沒有管理員許可權,或者註冊表被鎖定,如果是沒有許可權,請尋找電腦管理員幫助解決,如果註冊表被鎖定,請參照下面的方式進行解鎖。

註冊表解鎖常見的方法:

1.創建一個文本檔案,複製以下文字(注意開頭的空行不可少),選擇 另外儲存為 ,檔案類型選擇 所有檔案,檔案名稱成為 註冊表解鎖.reg

REGEDIT4

[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\

Policies\system"DisableRegistryTools"=dword:00000000]

註冊表註冊表

保存檔案到桌面,雙擊打開桌面上的 註冊表解鎖.reg 如下圖,點擊確定即可。

2.使用第三方工具恢復,如用 超級兔子 或者 最佳化大師

以下以最佳化大師為例說明:

打開最佳化大師,點擊左側的系統最佳化,然後選擇 系統安全最佳化 ,如右圖

註冊表註冊表

點擊右側的 更多設定 ,如下圖,取消 禁用註冊表編輯器 項目前面的對勾(本圖已經取消)

3、利用系統策略編輯器

在Windows 2000/XP/2003作業系統下

在Windows 2000/XP/2003中,我們可以通過單擊 開始-運行 ,輸入 gpedit.msc 後回車,打開 組策略 。然後,依次展開 用戶配置-管理模板-系統 ,雙擊右側視窗中的 阻止訪問註冊表編輯工具 ,在彈出的視窗中選擇 已禁用 , 確定 後再退出 組策略 ,即可為註冊表解鎖。

win7下

win7常見的家庭版和高級家庭版無法使用組策略,只能使用註冊表命令 regedit ,只有win7旗艦版才有組策略。

註冊表的由來

註冊表所設定的默認打開方式註冊表所設定的默認打開方式

在Windows 3.x作業系統中,註冊表是一個極小檔案,其檔案名稱為Reg.dat,裡面只存放了某些檔案類型的

應用程式關聯,大部分的設定放在Win.ini、System.ini等多個初始化INI檔案中。由於這些初始化檔案不便於管理和維護,時常出現一些因INI檔案遭到破壞而導致系統無法啟動的問題。為了使系統運行得更為穩定、健壯,Windows 95/98設計師們借用了Windows NT中的註冊表的思想,將註冊表引入到Windows 95/98作業系統中,而且將INI檔案中的大部分設定也移植到註冊表中,因此,註冊表在Windows 95/98作業系統的啟動、運行過程中起著重要的作用。

作用

註冊表是windows作業系統中的一個核心資料庫,其中存放著各種參數,直接控制著windows的啟動、硬體驅動程式的裝載以及一些windows應用程式的運行,從而在整個系統中起著核心作用。這些作用包括了軟、硬體的相關配置和狀態信息,比如註冊表中保存有應用程式和資源管理器外殼的初始條件、首選項和卸載數據等,聯網計算機的整個系統的設定和各種許可,檔案擴展名與應用程式的關聯,硬體部件的描述、狀態和屬性,性能記錄和其他底層的系統狀態信息,以及其他數據等。

註冊表組成註冊表組成

具體來說,在啟動Windows時,Registry會對照已有硬體配置數據,檢測新的硬體信息;系統核心從

Resistry中選取信息,包括要裝入什麼設備驅動程式,以及依什麼次序裝入,核心傳送回它自身的信息,例如著作權號等;同時設備驅動程式也向Registry傳送數據,並從Registry接收裝入和配置參數,一個好的設備驅動程式會告訴Resistry它在使用什麼系統資源,例如硬體中斷或DMA通道等,另外,設備驅動程式還要報告所發現的配置數據;為應用程式或硬體的運行提供增加新的配置數據的服務。配合INI檔案兼容16位Windows應用程式,當安裝—個基於Windows 3.x的應用程式時,應用程式的安裝程式Setup像在windows中—樣創建它自己的INI檔案或在Win.ini和System.ini檔案中創建入口;同時windows還提供了大量其他接口,允許用戶修改系統配置數據,例如控制臺、設定程式等。

如果註冊表受到了破壞,輕則使windows的啟動過程出現異常,重則可能會導致整個windows系統的完全癱瘓。因此正確地認識、使用,特別是及時備份以及有問題恢復註冊表對windows用戶來說就顯得非常重要。

註冊表的數據結構

註冊表註冊表

註冊表由鍵(或稱“項”)、子鍵(子項)和值項構成。一個鍵就是分支中的一個資料夾,而子鍵就是這個資料夾中的子資料夾,子鍵同樣是一個鍵。一個值項則是一個鍵的當前定義,由名稱、數據類型以及分配的值組成。一個鍵可以有一個或多個值,每個值的名稱各不相同,如果一個值的名稱為空,則該值為該鍵的默認值。

在註冊表編輯器(Regedit.exe)中,數據結構顯示如下,其中,command鍵是open鍵的子鍵,(默認)表示該值是默認值,值名稱為空,其數據類型為REG_SZ,數據值為%systemroot%/system32/NOTEPAD.EXE "%1

數據類型

註冊表的數據類型主要有以下四種:

顯示類型(在編輯器中) 數據類型 說明

REG_SZ 字元串 文本字元串

REG_MULTI_SZ 多字元串 含有多個文本值的字元串

REG_BINARY 二進制數 二進制值,以十六進制顯示。

REG_DWORD 雙字 一個32位的二進制值,顯示為8位的十六進制值。

註冊表的損壞和解決方法

註冊表註冊表

註冊表可能出現的問題。

如果註冊表受到嚴重的損害,存取硬體和軟體可能會受到很大的限制,甚至系統不能啟動。可能因為一個很小的問題,一個應用程式將不能正常的運行,或者運行的不穩定。

當註冊表在運行時是受保護的,所以它不可能被複製,刪除,或者改變內容,除非經過一個“驗證過的”程式(比如安裝程式,註冊表編輯工具,和域用戶管理器改變安全策略和瀏覽器等)。由於這些保護,註冊表是十分安全的,但是並不是完全能防止的。問題仍會發生,你需要作好認識它們的準備來應付這些問題。

1、應用程式和驅動被添加到系統中

1)在註冊表中找出大半的錯誤與添加和刪除程式有關。多數用戶自己添加或者更新驅動,應用程式等等。而且添加和刪除都是多次的。

2)程式本身也有問題。沒有任何應用程式沒有bug或者錯誤。最好的情況,就是錯誤微乎其微,複雜深奧的問題你可能從來沒見過。在設計程式時因為受時間和經費的限制,這些錯誤被放置不管。作為一個程式設計師來講,在程式里有錯誤可能是次要的,但是它使系統崩潰那就變成一個大問題了。

3)驅動程式不兼容。個人計算機世界的開放結構體系造成了一定的風險,因為任何類型的部件組合在一起都是可能的。但測試所有的組合併保證所有設備的兼容性卻不太可能。所以當用在Win95下的驅動被用在Win NT時,某些問題就會產生。

4)在應用程式安裝過程中在註冊表中添加了不正確的項。在安裝時,多數應用程式使用叫一個叫SETUP.INF的檔案詳細說明例如需要什麼磁碟,哪個目錄將被建立,從哪裡複製檔案,使應用程式工作正常所需要建立的註冊表項等等詳細信息。如果在SETUP.INF中有一個錯誤,這個改變也仍然會出現,就會出現嚴重的問題。

5)一個應用程式導致另一個應用程式和它預設的檔案關聯出現錯誤。當一個應用程式被安裝後,預設檔案類型被記錄在註冊表中。然後用戶可以通過雙擊來啟動應用程式和裝載檔案。很多時候,其他應用程式也會使用同樣的擴展名。舉例說,當一個TIF圖形在基於註冊表里的設定被激活時,最後一次裝載的程式將會變成一個執行體。有時候,徹底不相同和根本不兼容的程式會在它們自己的文檔檔案中使用相同的檔案擴展名,啟動文檔的捷徑將不會工作。在用戶操作過程中,如果在檔案打開方式選擇了不正確的程式,就會造成一定的問題。

6)在反安裝時出現的錯誤。當你在控制臺里的添加/刪除程式中刪除程式時,通過應用程式自身的反安裝特徵,或者通過第三方軟體,這可能會對註冊表造成損壞。除此之外,刪除程式,輔助檔案,數據檔案和反安裝程式可能會試圖移去註冊表的參數項。因為系統不可能知道一個應用程式在註冊表中所要存取的相關參數項,這將會不經意的移除掉其他應用程式的參數項。

7)字型的錯誤。當註冊表中字型ID出錯,你將在應用程式中看到一種不同的字型。這就讓人感覺很討厭並可能需要你移去部分或全部字型並取代它們。這經常發生在用戶頻繁安裝和刪除字型的時候。

2、硬體設定改變或者硬體失敗

1)如果計算機系統自身有問題,註冊表會有損害。通常的,這些錯誤可以在正確的系統維護和管理下避免。

2)病毒問題。病毒很隱秘的改變正常的檔案和註冊表中的部分內容來影響我們的系統。

3)計算機用電如果不正常也會影響計算機系統,用UPS可以避免。

4)磁碟問題。很多時候你會因為容量不夠使硬體失敗而換掉你的硬碟。如果整塊硬碟失敗,當然,你將不得不從備份中恢復你的註冊表。其他的則是磁碟獨立扇區或者簇的故障。雖然這些情況在今天的系統不可能發生,但是磁碟表面介質的故障會使得磁碟部分不可讀,包括那些註冊表檔案位置。

3、用戶改動了註冊表

1)手工改變註冊表。當人們手工編輯註冊表,由於數據的複雜性和難懂性使得他們難免容易犯錯誤,而且這個錯誤可能很嚴重導致系統工作發生中斷。

2)拷貝其他註冊表是很多用戶犯的一個嚴重錯誤。因為從其他機器上拷貝來的註冊表檔案並不意味著也會在這一個機器上工作正常。對單獨的系統來說註冊表都是特殊的。甚至計算機硬體設備相同,拷貝來的註冊表在另一個系統上不見得就會工作。如果使用另一個系統的註冊表,多數硬體設備將不會工作,用戶和安全問題可能造成數據和應用程式信息無法使用。

技巧:如果你的註冊表不斷的變的龐大,那么先導出它然後象上面那樣再逐個導入它。在這個導入導出過程中註冊表中不必要的項將被清除出去。如果你使用Win98那么你可以使用Scanreg.exe程式。在windows目錄命令提示下打 Scanreg /fix來執行命令。

請記住,預防要比修復好的多。註冊表太容易被改變了,在發生突然事件時有幾個註冊表的備份是解決問題最好的方法。

從註冊表故障中恢復

這裡有四種不同級別的方法可以從Windows註冊表故障中恢復

Restart

Redetect

Restore

Reinstall

讓我們來看每一個方法來斷定來使用它最適合的時間,並且解決何種類型的問題。

Restart(重新啟動)

Win95註冊表大部分內容保存在RAM中。如果哪個信息受損,它就必須重新讀取正確的信息。當你重新啟動系統,註冊表將數據從硬碟讀到RAM中就可以使用了。

拿字型ID問題來說。每種字型在系統中用一個ID號來使用。當一個字型被用在一個文檔時,這個字型被這個數字保存並且用一個名字來標識。當字型ID損壞那么字型顯示和列印將被其他字型取代。重新啟動系統從硬碟上刷新數據,將產生修復過的字型ID,這樣字型顯示和列印就變的正常了。

這也就是為什麼Windows系統故障經常在重新啟動後就又恢復正常的一個原因。

Redetect the Devices(重新檢測硬體)

如果一個設備工作不正常,那么在註冊表中控制設備的設定可能受損了。為了重新設定註冊表,你應該刪除並且重裝設備的驅動,或者你應該讓Win95重新檢測它們。很多時候,當一個設備工作不正常,它們會在設備管理器上此設備前使用一個驚嘆號標誌顯示出來。很明顯,如果設備從來不工作,可能就是其他問題了。但是如果設備以前工作,現在出問題,註冊表就需要被恢復。

要檢測一個設備,在控制臺上選擇添加新硬體。第一個問題是文你“需要Windows搜尋新硬體嗎?”如果你選擇是,Win95將做一個徹底的搜尋去找“新”設備。任何設定不正確的或者沒找到驅動的設備將被檢測到並顯示出來。

Restore(恢復)

從CFGBACK中恢復註冊表

從CFGBACK中恢復註冊表有很多好處。如果你建立了幾個備份,你可以選擇正確的一個來恢復。你可以如同做手術般放置排列註冊表參數項。

導入註冊表檔案

象前面章節講述的那樣,一個代替使用備份的方法就是導入一個.REG檔案。.REG檔案包括了目的數據位置,所以對這個檔案簡單的雙擊就可以將數據放入註冊表。它是所有恢復程式中最簡單的,但是也可能造成錯誤。錯誤不會是用REGEDIT.EXE把數據寫入錯誤的位置,它很可能出現在用戶直接雙擊註冊表檔案的時候。

Reinstall(重新安裝)

重新安裝

最後的方法就是重新安裝驅動、應用程式或者Win95。一般來說,它只花費你一個小時左右時間去做這些事。如果你在現有的檔案上重新安裝,很多配置信息還被安裝在同樣的地方。同樣在安裝驅動程式時,你應該重新加入配置數據。

實際上找出原因並修復它所花費的時間比重新安裝還要多,這就是為什麼重新安裝在技術支持上是一個相當普通的“解決方法”。關鍵的問題在於,“你是否想找出是什麼錯誤,或者你是否只想讓它工作正常?”答

案取決於問這個問題的用戶情況,發生問題的頻繁次數和重新安裝的軟體的實用性。

當Windows第一次被安裝時它將在啟動目錄的根目錄上創建一個名為SYSTEM.1ST的檔案。這是Windows第一次啟動時創建的個簡單的system.dat檔案。你所應該做的就是將這個檔案放到windows目錄(在dos模式下)並將它的名字改為SYSTEM.DAT。然後重新啟動。然後你就可以得到安裝時第一次啟動的windows。

因為很多.INI,.DLL和其他檔案的改變,這種方法的成功機率大概只超過50%。比如當裝IE4.0後系統和註冊表將有一個徹底的改變。我們的system.1st檔案雖然包含了一個Dll檔案的參考,但它可能更新或者改變版本號。

這裡就是幾個在註冊表出故障的時候恢復它的工具和方法。你的數據可能會安全恢復,但是不管你用什麼方法,除了重新格式化硬碟,最好的方法就是做好系統註冊表的備份工作。

備份註冊表

兩個重要的分支 :

1.用戶個人數據[HKEY_CURRENT_USER]

該分支中存放的是當前登錄用戶的個人喜好設定、所用的軟體的設定等個人數據。無論來賓、受限用戶、高級用戶還是管理員,都可以修改屬於自己個人的註冊表數據。用戶個人的註冊表數據就是“註冊表編輯器”左側窗格[HKEY_CURRENT_USER]所包含的項、子項和值項。

2.系統的核心數據[HKEY_LOCAL_MACHINE]

只有管理員許可權的用戶可以訪問系統註冊表數據,其中存放了系統中各項重要的核心設定數據。系統的註冊表數據就是“註冊表編輯器”左側窗格顯示的[HKEY_LOCAL_MACHINE]所包含的項、子項和值項。

與備份註冊表過招

任務1:備份註冊表分支並編輯部分設定

第一步:點擊“開始→運行”(或命令行提示符),輸入以下命令導出兩個註冊表分支(驅動器、路徑及檔案可自定義),導出後的myreg.reg大小約為8MB~9MB,而sysreg.reg大小約為30MB~60MB,視個人情況略有不同。

reg export hkcu c:\myreg.reg

reg export hklm c:\sysreg.reg

第二步:分別右擊myreg.reg和sysreg.reg,選擇“編輯”或“傳送到→記事本”(創建右鍵選單“傳送到→記事本”,可將“開始”選單中的“記事本”捷徑複製到“C:\Documents andSettings\username\SendTo”資料夾),用“記事本”程式打開myreg.reg檔案。

第三步:點擊選單命令“編輯→查找”,輸入要查找內容的關鍵字,單擊“查找下一個”。查找到一個數據,可執行刪除、修改操作,然後按F3鍵可繼續查找下一個數據。查找、修改所有數據,選擇選單“檔案→保存”保存註冊表檔案即可。

如何利用註冊表防止病毒運行?

註冊表註冊表

經常在網路上衝浪,十有八九避免不了網路病毒的

攻擊,用專業防毒程式清除了這些病毒程式並重新啟動計算機系統後,我們有時會發現先前已經被清除乾淨的病毒又捲土重來了,這是怎么回事呢?

原來目前不少流行的網路病毒一旦啟動後,會自動在計算機系統的註冊表啟動項中遺留有修複選項,待系統重新啟動後這些病毒就能恢復到修改前的狀態了。為了“拒絕”網路病毒重啟,我們可以從一些細節出發,來手工將註冊表中的病毒遺留選項及時刪除掉,以確保計算機系統不再遭受病毒的攻擊。

阻止通過網頁形式啟動

不少計算機系統感染了網路病毒後,可能會在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce、HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run、HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices等註冊表分支下面的鍵值中,出現有類似有.html或.htm這樣的內容,事實上這類啟動鍵值主要作用就是等計算機系統啟動成功後,自動訪問包含網路病毒的特定網站,如果我們不把這些啟動鍵值及時刪除掉的話,很容易會導致網路病毒重新發作。

為此,我們在使用防毒程式清除了計算機系統中的病毒後,還需要及時打開系統註冊表編輯視窗,並在該

視窗中逐一查看上面的幾個註冊表分支選項,看看這些分支下面的啟動鍵值中是否包含有.html或.htm這樣的後綴,一旦發現的話我們必須選中該鍵值,然後依次單擊“編輯”/“刪除”命令,將選中的目標鍵值刪除掉,最後按F5功能鍵刷新一下系統註冊表就可以了。

當然,也有一些病毒會在上述幾個註冊表分支下面的啟動鍵值中,遺留有.vbs格式的啟動鍵值,發現這樣的啟動鍵值時我們也要一併將它們刪除掉。

阻止通過後門進行啟動

為了躲避用戶的手工“圍剿”,不少網路病毒會在系統註冊表的啟動項中進行一些偽裝隱蔽操作,不熟悉系統的用戶往往不敢隨意清除這些啟動鍵值,這樣一來病毒程式就能達到重新啟動目的了。

例如,一些病毒會在上面幾個註冊表分支下面創建一個名為“system32”的啟動鍵值,並將該鍵值的數值設定成“regedit -s D:\Windows”(如圖1所示);咋看上去,許多用戶會認為這個啟動鍵值是計算機系統自動產生的,而不敢隨意將它刪除掉,殊不知“-s”參數其實是系統註冊表的後門參數,該參數作用是用來導入註冊表的,同時能夠在Windows系統的安裝目錄中自動產生vbs格式的檔案,通過這些檔案病毒就能實現自動啟動的目的了。所以,當我們在上面幾個註冊表分支的啟動項中看到“regedit -s D:\Windows”這樣的帶後門參數鍵值時,必須毫不留情地將它刪除掉。

阻止通過檔案進行啟動

除了要檢查註冊表啟動鍵值外,我們還要對系統的“Win.ini”檔案進行一下檢查,因為網路病毒也會在這個檔案中自動產生一些遺留項目,如果不將該檔案中的非法啟動項目刪除掉的話,網路病毒也會捲土重來的。

一般來說,“Win.ini”檔案常位於系統的Windows安裝目錄中,我們可以進入到系統的資源管理器視窗,並在該視窗中找到並打開該檔案,然後在檔案編輯區域中檢查“run=”、“load=”等選項後面是否包含一些來歷不明的內容,要是發現的話,必須及時將“=”後面的內容清除乾淨;當然,在刪除之前最好看一下具體的檔案名稱和路徑,完成刪除操作後,再進入到系統的“system”資料夾視窗中將對應的病毒檔案刪除掉。

病毒經常修改的註冊表鍵值

1)IE起始頁的修改

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main 右半部分視窗中的Start Page 就是IE主頁地址了

(2)Internet選項按鈕灰化&失效

HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel 下的DWORD值 “Setting”=dword:1 “Links”=dword:1 “SecAddSites”dword:1 全部改為0之後 再將HKEY_USERS\DEFAULT\Software\Policies\Microsoft\Internet Explorer\Control Panel 下的DWORD值“homepage”鍵值改為0 則無法使用“Internet選項”修改IE設定

(3)“源檔案”項不可用

HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Restrictions 的“NoViewSource”被設定為1了,改為0就可恢復正常

(4)“運行”按鈕被取消&失效

HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Policies\Explorer 的“NoRun”鍵值被改為1了,改為0就可恢復

(5)“關機”按鈕被取消&失效

HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Policies\Explorer 的“NoClose”鍵值被改為1了,改為0就可恢復

(6)“註銷”按鈕被取消&失效

HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Policies\Explorer 的“NoLogOff”鍵值被改為1了,改為0就可恢復

(7)磁碟驅動器被隱藏

HKEY_CURRENT_USER\Software\Microsoft\Windows\Current Version\Policies\Explorer 的“NoDrives”鍵值被改為1了,改為0就可恢復

注意了上面幾個細節後,許多網路病毒日後要想重新啟動就不是那么容易了!

存取信息

可以通過VB5.0提供的兩個語句和兩個函式在程式中讀寫註冊表。

註冊表註冊表

1、SaveSetting語句

語法.SaveSetting(appname,section,key,setting)

2、GetAllSettings函式

語法.GetAllSettings(appname,section)

3、GetSetting函式

語法.GetSetting(appname,scetion,key[,default])

4、DeleteSetting語句

語法. DeleteSettingappname,section,[key]

參數含義.

appname. 字元串表達式,應用程式名

section. 字元串表達式,小節名

key. 字元串表達式,關鍵字名

setting. 表達式,關鍵字設定值

下面通過實例來說明它們的用法.應用程式名為jld_app,小節名為startup,關鍵字為left。

在註冊表中建立應用程式的註冊項.

SaveSetting“jld_app”,“startup”,“left”,100

從應用程式註冊表項中讀取所有關鍵字及其對應的值.

Dimmysettings(10,10)AsVariant

DimsettingindexAsInteger

GetAllSettings“jld_app”,“startup”

Forsettingindex=LBound(mysettings,1)ToUBound(mysettins,1)

Debug.Printmysettings(settingindex,0);“=”;mysettings(settingindex,1)

Nextsettingindex

EndSub

從應用程式註冊表項中讀取關鍵字“left“的設定.

Debug.PrintGetSetting(“jld_app”,“startup”,“left”,“notok”)

從WIN98註冊表中刪除小節“startup”

DeleteSetting“jld_app”,“startup”

相關術語

1、HKEY :“根鍵”或“主鍵”,它的圖示與資源管理器中資料夾的圖示有點兒相像。Windows98將註冊表分為六個部分,並稱之為 HKEY_name,它意味著某一鍵的句柄。

2、key(鍵):它包含了附加的資料夾和一個或多個值。

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

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

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

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

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

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

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

保護

前言

保護註冊表是很重要的,有很多不同的工具可以實現這一目的。當沒有安全設定時,用戶可能的錯誤會更多。幸運的是,他們可以有幾種方法來保護Windows註冊表,在註冊表失敗時他們可以用額外的拷貝來恢復註冊表。下面就是其中的一些方法。

使用windows備份軟體

註:Win95和Win98備份程式有部分區別,在這裡只講Win98的備份程式。

Win98中包括一個備份程式。當安裝Win98時如果你選擇“自定義安裝”,或者你可以在控制臺中的添加/刪除程式里安裝它。當你安裝了這個備份程式,從 開始選單| 程式| 附屬檔案 |系統工具|備份 可以運行它。啟動時,這個程式提示你是否新建一個新備份,打開現有的備份作業,或者是還原備份檔案。

如果選擇新建備份,則會有一個備份嚮導提示你如何去做備份。

如果選擇取消嚮導,那么可以自己手工設定要備份的內容。在備份內容里可以備份網路和本地驅動器的檔案。可以在你想備份磁碟或者檔案的選擇框打上對號來做備份工作。然後在備份在何處里填上你做備份的目的位置既可。如果要連同windows註冊表一起備份,那么在 作業|選項|高級 里,在“備份windows註冊表”選擇框打對號就可以了。恢復則是備份的逆過程,這裡就不詳述了。

在安全模式下複製註冊表檔案

當Win95運行時,註冊表檔案被鎖定,只能用註冊表編輯器或者系統自己來進行存取,這些檔案不能夠被複製到其他地方。如果你在安全模式下啟動Win95,註冊表就不會使用同樣的方法載入,這樣SYSTEM.DAT 和 USER.DAT就可以被複製。實際上安全模式下系統檔案是受保護的。

在啟動時,當計算機顯示Starting Windows 95...時按F8鍵進入安全模式。改變SYSTEM.DAT 和 USER.DAT的隱藏和唯讀屬性這樣就可以看到和複製它們。當拷貝完註冊表檔案,不要忘記了改回它們唯讀和隱藏屬性。

使用微軟配置備份來備份你的註冊表檔案

CFGBACK.EXE是Win95(Win98中沒有這個軟體)所附帶的備份軟體。它在Win95CD-ROM上的\Other\Misc\CFGBACK這個目錄。在系統上拷貝所有的檔案到任何一個目錄,然後在桌面上建立一個CFGBACK.EXE的捷徑。

要做一個註冊表的備份,啟動CFGBACK然後在選擇的備份名位置輸入一個名字然後點備份繼續。

注意:在使用CFGBACK前確定你已經關掉了所有運行的程式。如果有程式在運行,CFGBACK可能將使得系統崩潰,數據丟失,而且保存的是一個不完整的備份。

導出註冊表

在我看來,如果你沒有磁帶機或者其他東西。在REGEDIT.EXE中導出選項有一個導出為文本檔案。通常使用一個壓縮工具,導出工具選項也可以被用做保存和保護註冊表的方法。

要導出在註冊表中的任意鍵,選中這個鍵然後選擇 註冊/導出註冊表檔案。這將會複製這個鍵,並提示你在那裡存放這個鍵及它的名字,然後用一個擴展名為.REG的檔案保存這些數據。

當我們用文本格式導出註冊表。我們可以使用象pkzip或者其他壓縮工具壓縮它(可以在正常Dos模式運行的)來節省空間。

為了備份我們可以在windows目錄下建立一個用來做備份的資料夾。最少在一個月我們應該進行定期的備份。因為許多計算機用戶訂閱或購買帶有贈送CD的計算機雜誌。這些CD上有大量的時間限制的共享軟體。許多用戶從其中安裝一個或者多個程式。當軟體過期時它們反安裝這些程式,但是這些程式在註冊表中留下了一些痕跡。頻繁的添加/刪除程式會影響註冊表,但是有了備份相對來說我們就比較安全了。

我們必須重新啟動計算機到DOS模式下來導入,假定你導出你的註冊表為mar99.reg.現在在命令提示下打

REGEDIT /C MAR99.REG

註冊表編輯器將mar99.reg中的數據導入你的註冊表並保存。不過只在命令提示下這個全部導入的工作才比較可靠。

修改方法

對於個人用戶在家裡使用計算機,這樣的安全控制有時是沒有必要的,但對於網咖,公共機房的管理者和使用者了解這些安全控制還是很有用的,使你可以輕鬆簡單的控制你的計算機,也大大的減少了你的維護工作。

Regedit

註冊表對於很多用戶來說是很危險的,尤其是初學者,為了安全,最好還是禁止註冊表編輯器regedit.exe運行,在公共機房更加重要,不然你的機器一不小心就被改得一塌糊塗了。

打開註冊表到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System,如果你發現Policies下面沒有System主鍵,則請在它下面新建一個主鍵,取名System,然後在右邊空白處新建一個DWORD串值,名字取為DisableRegistryTools,把它的值修改為1,這樣修改以後,使用這個計算機的人都無法再運行regedit.exe來修改註冊表了,當然也包括你自己了,如果要恢復的話,請把下面的這段代碼存為一個REG.REG檔案,然後重新啟動:

REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]

"DisableRegistryTools"=dword:00000000

控制臺

控制臺是Windows系統的控制中心,可以對設備屬性,檔案系統,安全口令等很多系統很關鍵的東西進行修改,你當然需要防範這些了。

打開\HKEY_CURRENT_USER\Software\Microsoft\ Windows\CurrentVersion\Policies\System\中新建DWORD值NoDispCPL,把值修改為1(十六進制)即可。

禁用程式

打開HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer,在右邊的視窗中新建一個DWORD串值:“RestrictRun”,把它的值設為“1”。這樣我們就能做到禁止在Windows98中運行任何程式。

指定程式

打開HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer,在右邊的視窗中新建一個DWORD串值:“RestrictRun”,把它的值設為“1”。然後在RestrictRun的主鍵下分別添加名為“1”、“2”、“3”等字元串值,然後將“1”,“2”、“3”等字元串的值設定為你允許用戶使用的程式名。例如將“1”、“2”、“3”分別設定為word.EXE、notepa XE、empires.EXE,則用戶只能使用word、寫字板、帝國時代了,這樣你的系統將會做到最大的保障,也可以限制用戶運行不必要的軟體了。

系統列

系統列屬性功能,可以方便用戶對開始選單進行修改,可以修改Windows系統的很多屬性和運行的程式,這在我們看來是件很危險的事情,所以有必要禁止對它的修改。

打開HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer,在右窗格內新建一個DWORD串值"NoSetTaskBar",然後雙擊"NoSetTaskBar"鍵值,在彈出的對話框的"鍵值"框內輸入1。

顯示屬性

打開HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System在右邊的視窗中新建一個DOWRD串值:然後將“新值#1”更名為“NoDispCPL”,並將其值設為“1”就可以的了。

圖示設定

打開HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer,在右側視窗中新建Dword串值,然後將“新值#1”更名為“NoSecCPL”,然後把它的值設定為1就行的了。

密碼標籤

打開HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer,在右側視窗新建Dword串值,然後將“新值#1”更名為“NoPwdPage”,然後把它的值設定為 1 即可。

遠程管理

打開HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer,在右側視窗中新建Dword串值,然後將“新值#1”更名為“NoAdminPage”,然後把它的值設定為 1 即可。

管理程式

打開HKEY_CURRENT_USER\Software\Microsoft\Windows\Currentversion\Policies\system\,在右邊視窗新建DWORD串值“NoDevMgrP-age”並把它的值改為“1”就行。

開始選單

打開HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explore,在右邊的視窗中新建一個DWORD串值:“NoChangeStartMenu”,並把它的值改為“1”。

網上鄰居

打開HKEY_CURRENT_USER\Software\Microsoft\ Windows\CurrentVersion\Policies\Explorer,在右邊的視窗中新建DWORD值NoNetHood,值為1(十六進制)。

使用密碼

打開HKEY_CURRENT_USER\ControlPanel\desktop\ScreenSaveUsePassword修改它的值,值為0或1,0為不設密碼,1則使用預設的密碼,你根據自己的需要設定就行的了。

啟動選單

打開HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer,在右邊的視窗中新建一個DWORD串值“NoChangeStartMenu”,並設值為“1”即可。

檔案系統

打開HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System,在右邊的視窗中新建一個DWORD串值:“NoFileSysPage”,然後把它的值改為“1”即可。

設備管理

打開HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System,在右邊的視窗中新建一個DWORD串值:“NoDevMgrPage”,然後把它的值改為“1”。

硬體配置

打開HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System,在右邊的視窗中新建一個DWORD串值:“NoConfigPage”,然後把它的值為“1”。

安全口令

你可以在IE的"Internet選項"對話框的"內容"選項頁的"分級審查"框中設定口令,這樣,在顯示有關的頁面時,總會出現"分級審查不允許查看"的提示信息,然後彈出口令對話框,要求您輸入監護人口令。如果口令不對,則將停止瀏覽。但是,如果你把這個口令給遺忘了,你將無法瀏覽這些頁面。在口令遺忘後,即使你重新安裝IE4.0也是無法去掉安全口令,這時你只有求助於註冊表:

打開HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies,在Policies子鍵下選擇"Ratings"子鍵,按Del鍵將其刪除,由於Ratings子鍵下的Key鍵值數據就是經過加密後的口令,刪除了這一項,IE中的口令也就去掉了。

歷史紀錄

在Windows98系統中保留著使用者的各種歷史紀錄,其中包括最近打開的文檔、程式、查找過的檔案及在網路上的使用情況。在公共機房上機時,為了我們個人安全需要,我們很需要刪除這些歷史紀錄,但一般的刪除方法很不乾淨,這就得求助於註冊表了。

打開HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer,刪除表中所示的鍵, 清除Windows\Recent中的內容,刷新文檔選單,這樣就能去掉你的記錄。下面是這個目錄下的表項:

位置 註冊表中位置

Documents menu RecentDocs

Run dialog RunMRU

Find Files dialog Doc Find Spec MRU

Find Computer dialog FindComputerMRU

公共機房的安全和系統穩定是很重要的,這裡講的只是最基本的保護功能,如果你要實現很好的保護,你必須求助於另外的管理軟體了,這裡只是為你提供一點小小的幫助。

概述

註冊表是為Windows NT和Windows95中所有32位硬體/驅動和32位應用程式設計的數據檔案。16位驅動在Winnt下無法工作,所以所有設備都通過註冊表來控制,一般這些是通過BIOS來控制的。在Win95下,16位驅動會繼續以實模式方式設備工作,它們使用system.ini來控制。16位應用程式會工作在NT或者Win95 下,它們的程式仍然會參考win.ini和system.ini檔案獲得信息和控制。 在沒有註冊表的情況下,作業系統不會獲得必須的信息來運行和控制附屬的設備和應用程式及正確回響用戶的輸入。

註冊表被損壞的修複方法

1、首先用win7系統隨身碟或光碟啟動,然後打開cmd視窗,在打開的命令提示符視窗中輸入下面命令然後回車;

C:windowssystem32configRegBack

2、然後使用copy命令將該目錄下的所有檔案都拷貝到C:windowssystem32config目錄下,命令如下:

copy C:windowssystem32configRegBack* C:windowssystem32config

3、之後出重啟計算機即可修復註冊表損壞故障。

相關詞條

相關搜尋

熱門詞條