Windows注冊表的基本知識及應用
一、注冊表的重要性
一、注冊表的重要性
在DOS年代,對計算機的內存管理及系統配置主要通過AUTOEXEC.BAT和CONFIG.SYS來完成。從WINDOWS3.x開 始,對系統的管理增加了大量的*.ini文件來登錄軟件及硬件的各種初始化信息。這為系統管理帶來了靈活性,也帶來了不便之處。因為每個應用程序都有自己 的ini文件,並在Win.ini中增加了自己的配置項,這使ini文件眾多,且Win.ini日益龐大。
從Windows95開始,原來保存在初始化文件中的有關信息,都被移到了系統的注冊表中,注冊表(Registry)實質上是一個龐大的分層數據庫,它存儲着下面這些內容:
軟、硬件的有關配置和狀態信息,應用程序和資源管理器外殼的初始條件、首選項和卸載數據;電腦整個系統的設置和各種許可,文件擴展名與應用程序的關聯,硬件的描述、狀態和屬性;電腦性能記錄和底層的系統狀態信息,以及各類其他數據。
由上可見,注冊表是WINDOWS的命根子,注冊表文件的損壞、設置錯誤,將會導致應用程序無法運行、系統出錯,直至系統崩潰或無法啟動。
二、注冊表的結構
Windows98的注冊表是由二進制數據組成,以一個樹形結構分布。注冊表主要由以下兩個文件組成:
System.dat(存儲與用戶無關的系統配置信息,包括硬件配置、軟件的安裝等)
User.dat(存儲與用戶有關的信息以及特定於某個用戶的應用程序安裝信息 ),
這兩個文件一般保存在Windows所在的文件夾中,另外還有這些文件的備份*.da0( Windows系統在每次系統的配置改變時都會自動進行備份,生成System.da0和User.da0
文件)。
Windows為我們提供了一個注冊表編輯器(Regedit.exe)的工具,它可以用來查看和維護注冊表。單擊“開始”菜單,選擇“運行”項,在“打開”欄中輸入“regedit”,確定,即可打開注冊表。
注冊表編輯器與資源管理器的界面相似。左邊窗格中,從“我的電腦”開始,以下是六個分支,其含義簡述如下:
HKEY_CLASSES_ROOT:此處存儲的信息可以確保當使用Windows資源管理器打開文件時,將使用正確的應用程序打開對應的文件類型。
HKEY_CURRENT_USER:存放當前登錄用戶的有關信息。用戶文件夾、屏幕顏色和“控制面板”設置存儲在此處。該信息被稱為用戶配置文件。
HKEY_LOCAL_MACHINE:包含針對該計算機(對於任何用戶)的配置信息。
HKEY_USERS:存放計算機上所有用戶的配置文件。
HKEY_CURRENT_CONFIG:包含本地計算機在系統啟動時所用的硬件配置文件信息。
HKEY_DYN_DATA:記錄系統運行時刻的狀態。
注冊表按層次結構來組織,六個分支名都以HKEY開頭,稱為主鍵(KEY),這和資源管理器中的文件夾相似,表示主鍵的圖標與文件夾的圖標一樣。每個主鍵 圖標的左邊有一個“+”號圖標,單擊可將這一分支展開,展開后可以看到主鍵還包含次級主鍵(SubKEY)。當單擊某一主鍵或次主鍵時,右邊窗格中顯示的 是所選主鍵內包含的一個或多個鍵值(Value)。
鍵值由鍵值名稱(ValueName)和數據(ValueData)組成,這就是右窗口中的兩個列表(名稱、數據)所表示的。主鍵中可以包含多級的次級主鍵,注冊表中的信息就是按照多級的層次結構組織的。每個分支中保存電腦軟件或硬件之中某一方面的信息與數據。
三、注冊表中的鍵值項數據
注冊表通過鍵和子鍵來管理各種信息。但是注冊表中的所有信息都是以各種形式的鍵值項數據保存的。在注冊表編輯器右窗格中顯示的都是鍵值項數據。這些鍵值項數據可以分為三種類型:
1.字符串值
在注冊表中,字符串值一般用來表示文件的描述和硬件的標識。通常由字母和數字組成,也可以是漢字,最大長度不能超過255個字符。
2.二進制值
在注冊表中二進制值是沒有長度限制的,可以是任意字節長。在注冊表編輯器中,二進制以十六進制的方式表示。
3.DWORD值
DWORD值是一個32位(4個字節)的數值。在注冊表編輯器中也是以十六進制的方式表示。
四、注冊表應用
(一)注冊表的備份和恢復
由於注冊表文件對計算機有着至關重要的作用,因此應當定期進行備份。備份注冊表的方法為:打開注冊表,在注冊表菜單中選擇“導出注冊表文件”命令,在“導 出注冊表文件”對話框中,選擇保存位置並取一文件名,在導出范圍中選擇全部(即對整個注冊表進行備份)或者再選擇的分支中輸入要備份的分支,最后點擊“保 存”按鈕即可。
恢復注冊表的方法很簡單:打開注冊表,注冊表菜單中選擇“引入注冊表文件”命令,選擇所要引人的以前備份的注冊表文件,單擊“打開” 按鈕即可。
(二)注冊表的DOS恢復法
有時由於注冊表的損壞原因,Windows無法啟動或工作出錯,這時你可在DOS方式下恢復Windows系統自動備份的某一個注冊表,就可恢復Windows系統正常,方法如下:
1. 用系統軟盤啟動進入(如Windows還能啟動,則並切換到)MS-DOS方式。
2. 進入Windows\Command目錄,輸入SCANREG/RESTORE后回車。
3. 進入界面后,可在5個注冊表備份中選取所要恢復的,重新啟動后即可。
(三)清除多余的DLL文件
在Windows系統的System子目錄下存有大量的DLL文件,這些文件可能被系統或應用程序共享。但是由於經常安裝和卸載軟件,就會在System 目錄下留下一些DLL垃圾文件。它們不但占用了硬盤空間,而且還降低系統的運行速度。你要識別、刪除那些沒有被系統或應用程序所共享的DLL文件,可運行 “regedit”,打開注冊表編輯器,找到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion \SharedDLLs分支,在SharedDLLs子鍵中,記錄的就是有關程序共享的DLL信息,每個DLL文件的鍵值說明它已被幾個應用程序共享。如 果是二進制鍵值為“00 00 00 00”,則表明不被任何程序共享,可以將其刪除,退出注冊表編輯器,並在System目錄中刪除對應的文件。(你要較全面自動清除注冊表中垃圾文件,可用 “超級兔子”軟件進行注冊表優化,有關“超級兔子”軟件情況,你可進入 www.superrsoft.com 網站)。
(四)啟動計算機時必須登錄
Windows98在啟動時有一個登錄對話框,要求用戶選擇用戶名及輸入密碼,但這並沒有多大的作用,任何用戶都可以單擊“取消”鍵而啟動計算機。通過修 改注冊表,就可以使Windows在啟動時,用戶必需輸入密碼才能登錄,從而防止非法用戶使用計算機,具體修改方法如下:
在注冊表中找到HKEY_LOCAL_MACHINE\Network\Logon 鍵,在右邊窗口中單擊鼠標右鍵,新建一DWORD值,並命名為MustBevalidated,將其值改為ll1lllll,這樣,在啟動計算機時必需輸入密碼,否
由於注冊表文件對計算機有着至關重要的作用,因此應當定期進行備份。備份注冊表的方法為:打開注冊表,在注冊表菜單中選擇“導出注冊表文件”命令,在“導 出注冊表文件”對話框中,選擇保存位置並取一文件名,在導出范圍中選擇全部(即對整個注冊表進行備份)或者再選擇的分支中輸入要備份的分支,最后點擊“保 存”按鈕即可。
恢復注冊表的方法很簡單:打開注冊表,注冊表菜單中選擇“引入注冊表文件”命令,選擇所要引人的以前備份的注冊表文件,單擊“打開” 按鈕即可。
(二)注冊表的DOS恢復法
有時由於注冊表的損壞原因,Windows無法啟動或工作出錯,這時你可在DOS方式下恢復Windows系統自動備份的某一個注冊表,就可恢復Windows系統正常,方法如下:
1. 用系統軟盤啟動進入(如Windows還能啟動,則並切換到)MS-DOS方式。
2. 進入Windows\Command目錄,輸入SCANREG/RESTORE后回車。
3. 進入界面后,可在5個注冊表備份中選取所要恢復的,重新啟動后即可。
(三)清除多余的DLL文件
在Windows系統的System子目錄下存有大量的DLL文件,這些文件可能被系統或應用程序共享。但是由於經常安裝和卸載軟件,就會在System 目錄下留下一些DLL垃圾文件。它們不但占用了硬盤空間,而且還降低系統的運行速度。你要識別、刪除那些沒有被系統或應用程序所共享的DLL文件,可運行 “regedit”,打開注冊表編輯器,找到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows
\CurrentVersion \SharedDLLs分支,在SharedDLLs子鍵中,記錄的就是有關程序共享的DLL信息,每個DLL文件的鍵值說明它已被幾個應用程序共享。如 果是二進制鍵值為“00 00 00 00”,則表明不被任何程序共享,可以將其刪除,退出注冊表編輯器,並在System目錄中刪除對應的文件。(你要較全面自動清除注冊表中垃圾文件,可用 “超級兔子”軟件進行注冊表優化,有關“超級兔子”軟件情況,你可進入 www.superrsoft.com 網站)。
(四)啟動計算機時必須登錄
Windows98在啟動時有一個登錄對話框,要求用戶選擇用戶名及輸入密碼,但這並沒有多大的作用,任何用戶都可以單擊“取消”鍵而啟動計算機。通過修 改注冊表,就可以使Windows在啟動時,用戶必需輸入密碼才能登錄,從而防止非法用戶使用計算機,具體修改方法如下:
在注冊表中找到HKEY_LOCAL_MACHINE\Network\Logon 鍵,在右邊窗口中單擊鼠標右鍵,新建一DWORD值,並命名為MustBevalidated,將其值改為ll1lllll,這樣,在啟動計算機時必需輸入密碼,否
則就不能登錄。
(五)啟動時自動運行某一程序
通過將某一程序其添加到開始菜單里的“啟動”菜單項上,計算機在啟動時會自動運行這個程序,這種做法很容易被其它用戶改變,因為只需將其移出即可達到刪除這一啟動命令的目的。
通過將很有必要在啟動時運行的程序放入注冊表,就可以做到使別人難以進行修改。
具體方法為,在注冊表中找到 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run鍵,在右邊妁窗口 中就可以看到Windows啟動時所要執行的命令,我們可以將希望Windows在啟動時執行的命令加入到其中即可。同樣也可刪除不希望Windows在 啟動時運行的命令。
(六)擴充鼠標右鍵的功能
啟動計算機后,當我們在資源管理器中用右鍵單擊某一驅動器、文件夾或文件時一般都會彈出一份快捷菜單,其中包含幾個常用的命令選項。我們可以通過修改注冊 表,來增加或刪除這些命令。例如,要為驅動器增加一殺毒命令,其具體操作方法為,在注冊表中找到HKEY_LOCAL_MACHINE\Software \CLASSES\Drive鍵,用鼠標右鍵單擊其下的shell子鍵,新建一主鍵,將其命名為“殺毒”,然后用鼠標右鍵單擊剛剛建立的“殺毒”鍵,為其 新建一主鍵,命名為command,再在右邊窗口中修改其鍵值,即輸入要執行的命令,例如:“D∶\RXSD\RAV\rav.exe"%1"”,這樣, 當在資源管理器中用右鍵單擊驅動器時,彈出的快捷菜單中就包含了“殺毒”這一選項。同樣,對文件夾進行操作時,只需找到 HKEY_LOCAL_MACHINE\Software\CLASSES\Folder鍵,而對於文件,則要找到HKEY_LOCAL_
(五)啟動時自動運行某一程序
通過將某一程序其添加到開始菜單里的“啟動”菜單項上,計算機在啟動時會自動運行這個程序,這種做法很容易被其它用戶改變,因為只需將其移出即可達到刪除這一啟動命令的目的。
通過將很有必要在啟動時運行的程序放入注冊表,就可以做到使別人難以進行修改。
具體方法為,在注冊表中找到 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run鍵,在右邊妁窗口 中就可以看到Windows啟動時所要執行的命令,我們可以將希望Windows在啟動時執行的命令加入到其中即可。同樣也可刪除不希望Windows在 啟動時運行的命令。
(六)擴充鼠標右鍵的功能
啟動計算機后,當我們在資源管理器中用右鍵單擊某一驅動器、文件夾或文件時一般都會彈出一份快捷菜單,其中包含幾個常用的命令選項。我們可以通過修改注冊 表,來增加或刪除這些命令。例如,要為驅動器增加一殺毒命令,其具體操作方法為,在注冊表中找到HKEY_LOCAL_MACHINE\Software \CLASSES\Drive鍵,用鼠標右鍵單擊其下的shell子鍵,新建一主鍵,將其命名為“殺毒”,然后用鼠標右鍵單擊剛剛建立的“殺毒”鍵,為其 新建一主鍵,命名為command,再在右邊窗口中修改其鍵值,即輸入要執行的命令,例如:“D∶\RXSD\RAV\rav.exe"%1"”,這樣, 當在資源管理器中用右鍵單擊驅動器時,彈出的快捷菜單中就包含了“殺毒”這一選項。同樣,對文件夾進行操作時,只需找到 HKEY_LOCAL_MACHINE\Software\CLASSES\Folder鍵,而對於文件,則要找到HKEY_LOCAL_
MACHINE\Software\CLASSES\file鍵,后面的操作方法同上。
最后,我向大家提供一個小工具—— 一個VBScript腳本文件,當你有一天要修改注冊表,運行“regedit”命令,試圖打開注冊表時,突然跳出一個警告:“注冊表被管理員禁止!”, 不讓你打開注冊表!(這下你可慘了,命根子竟然給人家封住了!這多數是你上網時有幸“中毒”了。),這時你只要運行一下這個VBScript腳本文件就可 解開注冊表。你可在Windows的記事本中輸入以下文本:
DIM WSH
SET WSH=WSCRIPT.CREATEOBJECT("WSCRIPT.SHELL")
WSH.POPUP ("將為您解開注冊表!")
WSH.REGWRITE "HKCU\SOfTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\POLICIES\SYSTEM\DISABLEREGISTRYTOOLS",0,"REG_DWORD"
WSH.POPUP ("SUCCESSFULLY!")
輸入完后,保存時取一文件名,文件擴展名為VBS即可。
最后,我向大家提供一個小工具—— 一個VBScript腳本文件,當你有一天要修改注冊表,運行“regedit”命令,試圖打開注冊表時,突然跳出一個警告:“注冊表被管理員禁止!”, 不讓你打開注冊表!(這下你可慘了,命根子竟然給人家封住了!這多數是你上網時有幸“中毒”了。),這時你只要運行一下這個VBScript腳本文件就可 解開注冊表。你可在Windows的記事本中輸入以下文本:
DIM WSH
SET WSH=WSCRIPT.CREATEOBJECT("WSCRIPT.SHELL")
WSH.POPUP ("將為您解開注冊表!")
WSH.REGWRITE "HKCU\SOfTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\POLICIES\SYSTEM\DISABLEREGISTRYTOOLS",0,"REG_DWORD"
WSH.POPUP ("SUCCESSFULLY!")
輸入完后,保存時取一文件名,文件擴展名為VBS即可。
本文來自CSDN博客,轉載請標明出處:
http://blog.csdn.net/tangjianhao/archive/2005/03/05/312210.aspx