注冊表
注冊表是Windows操作系統(tǒng)的重要組成部分,主要用于存儲Windows中各種組件、應用程序和驅(qū)動程序的配置信息和設置參數(shù)。Windows操作系統(tǒng)的許多功能和特性都依賴于注冊表來存儲和管理相關的配置信息,包括用戶界面、網(wǎng)絡連接、硬件驅(qū)動程序、系統(tǒng)安全等。
注冊表的結(jié)構(gòu)類似于樹結(jié)構(gòu),由多個分支和葉節(jié)點組成。在頂層,有HKEY _類_根和HKEY _當前_用戶等分支節(jié)點,每個節(jié)點包含幾個子項,子項包含幾個鍵值對,即存儲實際配置信息的數(shù)據(jù)單元。
Windows 3.1首次引入了注冊表,并且它仍然被廣泛使用。注冊表已經(jīng)取代了幾乎所有早期版本的Windows中的autoexec.bat、config.sys和INI文件,并已成為配置和管理系統(tǒng)的主要方式。系統(tǒng)配置和管理的過程大大簡化。
組成結(jié)構(gòu)
注冊表是一個分層數(shù)據(jù)庫。層次結(jié)構(gòu)的頂端是用戶的計算機。在它的下面,你會發(fā)現(xiàn)主要的分支,它被稱為“蜂巢”。這些配置單元中有注冊表項。一個項可以包含子項和注冊表值。有三種類型的鍵值:字符串、二進制或DWORD。字符串是一行文本。二進制是用1和0表示的值。DWORD是一個四字節(jié)的數(shù)字。這些值通常用于存儲布爾值,因此1或0可以表示“啟用”和“禁用”。
分支結(jié)構(gòu)
HKEY _班級_根:HKEY _類_根通常簡稱為HKCR,是Windows注冊表中的一個注冊表單元,它包含文件擴展名關聯(lián)信息、程序標識符(ProgID)、類標識符(CLSID)和接口標識符(IID)數(shù)據(jù)。該注冊表配置單元包含必要的信息。當用戶需要Windows來執(zhí)行某些操作時,它會知道該做什么,例如查看驅(qū)動器的內(nèi)容或打開某種類型的文件。KEY_CLASSES_ROOT子樹包含兩種類型的數(shù)據(jù):一種是與文件類型相關聯(lián)的數(shù)據(jù),用于將文件類型與程序相關聯(lián);另一種是用于配置COM對象、Visual Basic程序或其他自動化數(shù)據(jù)的數(shù)據(jù)。文件類型的子項與文件擴展名同名,例如。exe。文件類型關聯(lián)存儲在注冊表中,但您應該使用Windows資源管理器來更改它們。配置子項使用程序ID或其他信息類作為父鍵,如COM、Visual Basic、automation和腳本的信息類鍵,如CLSID、Interface、TypeLib、AppId等。
HKEY當前用戶:HKEY當前用戶通常縮寫為HKCU,是Windows注冊表中的幾個主要注冊表配置單元之一,也是Windows注冊表的重要組成部分。它包含特定于當前登錄用戶的Windows和軟件的配置信息。例如,位于此配置單元下的各種注冊表項中的各種注冊表值控制用戶級設置,如安裝的打印機、桌面壁紙、顯示設置、環(huán)境變量、鍵盤布局、映射的網(wǎng)絡驅(qū)動器等。控制面板小程序中配置的許多設置實際上都存儲在此配置單元中。HKEY當前用戶子樹只存儲當前用戶子項的SID指針,不直接包含數(shù)據(jù)。它提供了更容易的數(shù)據(jù)訪問,每次用戶登錄時,都會創(chuàng)建一個新的子樹,數(shù)據(jù)來自用戶的個人資料。如果沒有可用的配置文件,將根據(jù)默認用戶的設置生成子樹,這些設置存儲在系統(tǒng)驅(qū)動器的Ntuser.dat文件中。
HKEY _本地機器:HKEY_LOCAL_MACHINE通常縮寫為HKLM,是組成Windows注冊表的幾個注冊表配置單元之一。該子樹包含有關本地計算機系統(tǒng)的信息,包括硬件和操作系統(tǒng)數(shù)據(jù),如總線類型、系統(tǒng)內(nèi)存、設備驅(qū)動程序和啟動控制參數(shù)。
HKEY用戶:HKEY用戶,有時也稱為HKU,是Windows注冊表中許多注冊表配置單元之一。它包含計算機上所有當前活動用戶的用戶特定配置信息。HKEY用戶配置單元下的每個注冊表項對應于系統(tǒng)上的一個用戶,并由用戶的安全標識符或SID命名。每個SID下的注冊表項和注冊表值控制用戶的特定設置,如映射驅(qū)動器、安裝的打印機、環(huán)境變量、桌面背景等。、和在用戶首次登錄時加載。
HKEY當前配置:HKEY _當前_配置(HKCC)子樹不直接包含數(shù)據(jù),但存儲指向當前硬件配置文件內(nèi)容的指針,這些內(nèi)容實際上位于HKEY _本地_機器\系統(tǒng)\當前控制集\硬件配置文件\當前子項中。HKCC提供了更方便的訪問模式,使用戶能夠在任何位置查看和更改這些硬件配置信息。該子樹包含運行時收集的信息,存儲在該項中的信息不會永久存儲在磁盤上,但會在啟動時重新生成。它是鍵“HKEY _本地_機器系統(tǒng)當前控制硬件配置文件”的句柄,該鍵最初為空,但在啟動時通過加載存儲在“HKEY _本地_機器系統(tǒng)當前控制硬件配置文件”中的其他子項來填充。
配置單元
hive是注冊表中鍵、子項和值的邏輯組,用于在操作系統(tǒng)啟動或用戶登錄時加載內(nèi)存中的支持文件。當每個新用戶登錄到計算機時,都會創(chuàng)建一個新的用戶配置文件配置單元,其中包含與用戶的應用程序設置、桌面、環(huán)境、網(wǎng)絡連接和打印機相關的特定注冊表信息。這些配置單元可以存儲在標準格式或最新格式的注冊表文件中,并存儲在%SystemRoot%\System32\Config目錄中。其中,在Windows XP和更高版本的操作系統(tǒng)中仍然支持標準格式,而在支持最新格式的Windows版本中使用最新格式。每當用戶登錄時,這些文件都會更新。
數(shù)據(jù)類型:每個值都可以存儲長度和編碼可變的任意數(shù)據(jù),但這些數(shù)據(jù)都與定義如何分析這些數(shù)據(jù)的符號類型(定義為數(shù)值常數(shù))相關聯(lián)。
儲存空間:當應用程序在注冊表中存儲數(shù)據(jù)時,它應該遵循一些實用的準則來提高系統(tǒng)效率。建議將配置和初始化數(shù)據(jù)存儲在注冊表中,而將其他類型的數(shù)據(jù)存儲在其他地方。超過一千或兩千字節(jié)的數(shù)據(jù)應存儲為文件,并通過注冊表中的鍵進行引用。此外,相似的數(shù)據(jù)應該分組到結(jié)構(gòu)中并存儲為值以節(jié)省空間。在Windows操作系統(tǒng)中,注冊表文件的視圖被映射到分頁池內(nèi)存或計算機緩存地址空間中,無論數(shù)據(jù)大小如何,成本都不會超過4 MB。除系統(tǒng)配置單元外,注冊表配置單元的最大大小為2 GB。在某些版本的Windows中,盡管對配置單元在分頁池內(nèi)存和磁盤空間中可能占用的總空間沒有明確的限制,但系統(tǒng)配額可能會影響實際的最大大小。從Windows Server 2003 Service Pack 2(SP2)開始,注冊表配置單元的最大大小限制為2 GB。
文件:注冊表文件記錄用戶在計算機上安裝的軟件和每個程序的相關信息,包括計算機的硬件配置,如自動配置的即插即用設備、各種現(xiàn)有設備描述、狀態(tài)屬性和各種狀態(tài)信息和數(shù)據(jù)。此外,注冊表還存儲各種參數(shù),這些參數(shù)直接控制Windows的啟動、硬件驅(qū)動程序的加載和一些Windows應用程序的運行,因此在整個系統(tǒng)中起著核心作用。應用程序可以使用一些特定的函數(shù)將注冊表的一部分保存到文件中,并在必要時將文件的內(nèi)容加載回注冊表。
函數(shù):注冊表函數(shù)是Windows操作系統(tǒng)提供的用于處理注冊表的API,其功能豐富,包括檢索注冊表。注冊表函數(shù)是Windows操作系統(tǒng)提供的用于處理注冊表的API,其功能非常豐富,包括檢索注冊表的當前大小和系統(tǒng)上注冊表允許的最大大小、關閉指定注冊表項的句柄、與另一臺計算機上預定義的注冊表句柄建立連接以及將指定注冊表項及其值和子項復制到指定的目標項。
編輯注冊表
注冊表編輯器:注冊表編輯器是Windows操作系統(tǒng)中的一個重要工具,用于查看和維護注冊表。注冊表是Windows操作系統(tǒng)中的核心數(shù)據(jù)庫,用于存儲應用程序的各種系統(tǒng)參數(shù)和設置信息。通過注冊表編輯器,用戶可以修改注冊表的內(nèi)容來實現(xiàn)一些特定的功能,例如加快啟動速度、修改系統(tǒng)設置和修復系統(tǒng)問題。
是否應該編輯注冊表:除非沒有其他選擇,否則不要直接編輯注冊表。注冊表編輯器將忽略標準安全措施,因此這些設置可能會降低性能,破壞系統(tǒng),甚至要求用戶重新安裝Windows。用戶可以使用控制面板或Microsoft管理控制臺(MMC)中的程序安全地更改大多數(shù)注冊表設置。如果您必須直接編輯注冊表,請先備份。
Reg命令編輯注冊表:您可以使用reg命令對注冊表項中注冊表子項的信息和值執(zhí)行操作,并且可以在本地或遠程計算機上查看或配置注冊表項。但是,使用reg配置遠程計算機的注冊表將限制某些操作中可以使用的參數(shù),因此您需要檢查每個操作的語法和參數(shù),以確保它們可以在遠程計算機上使用。
用腳本編輯注冊表:除了使用reg.exe實用程序執(zhí)行所有典型的注冊表操作。還有一個選擇——Windows PowerShell。PowerShell提供了許多用于在本地計算機上或遠程與Microsoft Windows注冊表交互的工具。
限制局限
Windows注冊表的缺點包括遷移困難、單點故障以及用戶惡意和無意破壞的風險。盡管事務日志和多級日志文件可以在一定程度上防止損壞和修復問題,但它們的集中和分層結(jié)構(gòu)仍然使注冊表成為系統(tǒng)中的薄弱環(huán)節(jié)。因此,使用注冊表時需要小心,定期備份非常重要。