【已學習】高級用戶的 Windows 註冊表信息

http://support.microsoft.com/kb/256986

概要:本文介紹註冊表。本文還包含有關如何備份註冊表、如何編輯註冊表的信息並列出有關更多信息的參考。
註冊表說明

《英漢雙解微軟計算機辭典》(第 5 版)對註冊表的定義是:

Microsoft Windows 98、Windows CE、Windows NT 和 Windows 2000 中使用的中央分層數據庫,用於存儲爲一個或多個用戶、應用程序和硬件設備配置系統所必需的信息。

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

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

註冊表配置單元是註冊表中的一組項、子項和值,它有一組包含其數據備份的支持文件。所有配置單元(HKEY_CURRENT_USER 除外)的支持文件都位於 Windows NT 4.0、Windows 2000、Windows XP、Windows Server 2003 和 Windows Vista 上的 %SystemRoot%\System32\Config 文件夾中。HKEY_CURRENT_USER 的支持文件位於 %SystemRoot%\Profiles\Username 文件夾中。這些文件夾中的文件的文件擴展名指示各自包含的數據的類型。缺少擴展名有時也可能指示文件包含的數據的類型。

收起該表格展開該表格
 
註冊表配置單元 支持文件
HKEY_LOCAL_MACHINE\SAM Sam、Sam.log、Sam.sav
HKEY_LOCAL_MACHINE\Security Security、Security.log、Security.sav
HKEY_LOCAL_MACHINE\Software Software、Software.log、Software.sav
HKEY_LOCAL_MACHINE\System System、System.alt、System.log、System.sav
HKEY_CURRENT_CONFIG System、System.alt、System.log、System.sav、Ntuser.dat、Ntuser.dat.log
HKEY_USERS\DEFAULT Default、Default.log、Default.sav
   

在 Windows 98 中,註冊表文件稱爲 User.dat 和 System.dat。在 Windows Millennium Edition 中,註冊表文件稱爲 Classes.dat、User.dat 和 System.dat。

注意:通過使用 Windows NT、Windows 2000、Windows XP、Windows Server 2003 和 Windows Vista 中的安全功能,管理員可以控制對註冊表項的訪問。

下表列出了系統使用的預定義項。項名的最大長度是 255 個字符。

收起該表格展開該表格
 
文件夾/預定義項 描述
HKEY_CURRENT_USER 包含當前登錄的用戶的配置信息的根目錄。該用戶的文件夾、屏幕顏色和“控制面板”設置都存儲在這裏。這些信息與用戶的配置文件相關聯。此項有時縮寫爲“HKCU”。
HKEY_USERS 包含計算機上的所有以活動方式加載的用戶配置文件。HKEY_CURRENT_USER 是 HKEY_USERS 的子項。HKEY_USERS 有時縮寫爲“HKU”。
HKEY_LOCAL_MACHINE 包含特定於計算機的配置信息(用於任何用戶)。此項有時縮寫爲“HKLM”。
HKEY_CLASSES_ROOT 是 HKEY_LOCAL_MACHINE\Software 的子項。存儲在這裏的信息可確保使用 Windows 資源管理器打開文件時能打開正確的程序。此項有時縮寫爲“HKCR”。從 Windows 2000 開始,這些信息同時存儲在 HKEY_LOCAL_MACHINE 和 HKEY_CURRENT_USER 項下。HKEY_LOCAL_MACHINE\Software\Classes 項包含可應用於本地計算機上的所有用戶的默認設置。HKEY_CURRENT_USER\Software\Classes 項包含覆蓋默認設置並且只應用於交互用戶的設置。HKEY_CLASSES_ROOT 項提供合併上述兩個來源的信息的註冊表視圖。HKEY_CLASSES_ROOT 還爲針對早期版本的 Windows 設計的程序提供這種合併視圖。要更改交互用戶的設置,必須在 HKEY_CURRENT_USER\Software\Classes 下進行更改,而不是在 HKEY_CLASSES_ROOT 下更改。要更改默認設置,必須在 HKEY_LOCAL_MACHINE\Software\Classes 下進行更改。如果將項寫到 HKEY_CLASSES_ROOT 下的一個項,系統會將信息存儲在 HKEY_LOCAL_MACHINE\Software\Classes 下。如果將值寫到 HKEY_CLASSES_ROOT 下的一個項,並且 HKEY_CURRENT_USER\Software\Classes 下已經存在該項,系統會將信息存儲在前面的註冊表項下,而不是存儲在 HKEY_LOCAL_MACHINE\Software\Classes 下。
HKEY_CURRENT_CONFIG 包含有關本地計算機在系統啓動時使用的硬件配置文件的信息。

注意:Windows XP、Windows Server 2003 和 Windows Vista 的 64 位版本中的註冊表分爲 32 位註冊表項和 64 位註冊表項。許多 32 位註冊表項與其相應的 64 位註冊表項同名,反之亦然。64 位版本的 Windows XP、Windows Server 2003 和 Windows Vista 中附帶的默認 64 位版本的註冊表編輯器在以下節點下顯示 32 位註冊表項:

HKEY_LOCAL_MACHINE\Software\WOW6432

有關如何在 64 位版本的 Windows 中查看註冊表的更多信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:

305097  (http://support.microsoft.com/kb/305097/ ) 如何通過使用 64 位版本 Windows 查看系統註冊表


下表列出了 Windows 當前定義和使用的數據類型。值名稱的最大大小如下:

  • Windows Server 2003、Windows XP 和 Windows Vista:16,383 個字符
  • Windows 2000:260 個 ANSI 字符或 16,383 個 Unicode 字符
  • Windows Millennium Edition/Windows 98/Windows 95:255 個字符

長值(超過 2,048 字節)必須存儲爲文件,將文件名存儲在註冊表中。這樣有助於註冊表有效地執行。值的最大大小如下:

  • Windows NT 4.0/Windows 2000/Windows XP/Windows Server 2003/Windows Vista:可用內存
  • Windows Millennium Edition/Windows 98/Windows 95:16,300 字節

注意:項的所有值的總大小不得超過 64K 的限制。

收起該表格展開該表格
 
名稱 數據類型 描述
二進制值 REG_BINARY 原始二進制數據。大多數硬件組件信息作爲二進制數據存儲,以十六進制的格式顯示在註冊表編輯器中。
DWORD 值 REG_DWORD 由 4 字節長(32 位整數)的數字表示的數據。設備驅動程序和服務的許多參數都是此類型,以二進制、十六進制或十進制格式顯示在註冊表編輯器中。與之有關的值是 DWORD_LITTLE_ENDIAN(最不重要的字節在最低位地址)和 REG_DWORD_BIG_ENDIAN(最不重要的字節在最高位地址)。
可擴展字符串值 REG_EXPAND_SZ 長度可變的數據字符串。這種數據類型包括程序或服務使用該數據時解析的變量。
多字符串值 REG_MULTI_SZ 多字符串。包含用戶可以閱讀的列表或多個值的值通常就是這種類型。各條目之間用空格、逗號或其他標記分隔。
字符串值 REG_SZ 長度固定的文本字符串。
二進制值 REG_RESOURCE_LIST 一系列嵌套的數組,用於存儲硬件設備驅動程序或它控制的某個物理設備所使用的資源列表。此數據由系統檢測並寫入 \ResourceMap 樹,作爲二進制值以十六進制的格式顯示在註冊表編輯器中。
二進制值 REG_RESOURCE_REQUIREMENTS_LIST 一系列嵌套的數組,用於存儲一個設備驅動程序(或其控制的某個物理設備)可以使用的硬件資源列表。系統將此列表的子集寫入 \ResourceMap 樹。此數據由系統檢測,作爲二進制值以十六進制的格式顯示在註冊表編輯器中。
二進制值 REG_FULL_RESOURCE_DESCRIPTOR 一系列嵌套的數組,用於存儲物理硬件設備使用的資源列表。此數據由系統檢測並寫入 \HardwareDescription 樹,作爲二進制值以十六進制的格式顯示在註冊表編輯器中。
REG_NONE 沒有任何特定類型的數據。此數據由系統或應用程序寫到註冊表,作爲二進制值以十六進制的格式顯示在註冊表編輯器中。
鏈接 REG_LINK 一個 Unicode 字符串,它命名一個符號鏈接。
QWORD 值 REG_QWORD 由 64 位整數數字表示的數據。此數據在註冊表編輯器中作爲二進制值顯示,並且是在 Windows 2000 中引入的。
   

備份註冊表

在您編輯註冊表之前,導出該註冊表中要編輯的項,或者備份整個註冊表。如果出現問題,則可以按照“還原註冊表”部分中的步驟進行操作以將註冊表還原爲其以前的狀態。若要備份整個註冊表,請使用“備份”實用工具來備份系統狀態。系統狀態包括註冊表、COM+ 類註冊數據庫以及啓動文件。 有關如何使用備份實用工具備份系統狀態的更多信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:

308422  (http://support.microsoft.com/kb/308422/ ) 如何使用 Windows XP 附帶的備份工具備份文件和文件夾
320820  (http://support.microsoft.com/kb/320820/ ) 如何在 Windows XP Home Edition 中使用備份工具來備份文件和文件夾
326216  (http://support.microsoft.com/kb/326216/ ) 如何在 Windows Server 2003 中使用備份功能來備份和還原數據

編輯註冊表

要修改註冊表數據,程序必須使用以下 MSDN 網站中定義的註冊表功能:

http://msdn2.microsoft.com/zh-cn/library/ms724875.aspx (http://msdn2.microsoft.com/zh-cn/library/ms724875.aspx)

管理員可以通過使用註冊表編輯器(Regedit.exe 或 Regedt32.exe)、組策略、系統策略、註冊表 (.reg) 文件或通過運行腳本(例如,VisualBasic 腳本文件)來修改註冊表。

使用 Windows 用戶界面

我們建議您使用 Windows 用戶界面來更改系統設置,而不要手動編輯註冊表。但是,在有些情況下,解決產品問題的最佳方法可能是編輯註冊表。如果在 Microsoft 知識庫中介紹了此問題,應該會有一篇文章詳細說明如何編輯註冊表來解決該問題。我們建議您嚴格按照這些說明操作。

使用註冊表編輯器

警告:如果使用註冊表編輯器或其他方法錯誤地修改了註冊表,則可能會出現嚴重問題。這些問題可能需要重新安裝操作系統才能解決。Microsoft 不能保證可以解決這些問題。修改註冊表需要您自擔風險。
可使用註冊表編輯器執行下列操作:

  • 查找子樹、項、子項或值
  • 添加子項或值
  • 更改值
  • 刪除子項或值
  • 重命名子項或值

註冊表編輯器的導航區顯示文件夾。每個文件夾代表本地計算機上的一個預定義項。訪問遠程計算機的註冊表時,只顯示兩個預定義項:HKEY_USERS 和 HKEY_LOCAL_MACHINE。

使用組策略

Microsoft 管理控制檯 (MMC) 包含可用於管理網絡、計算機、服務和其他系統組件的各種管理工具。通過使用“組策略”MMC 管理單元,管理員可以定義應用於計算機或用戶的策略設置。您可以在本地計算機上通過使用本地“組策略”MMC 管理單元 Gpedit.msc 實施組策略。可以在 Active Directory 中通過使用“Active Directory 用戶和計算機”MMC 管理單元實施組策略。有關如何使用組策略的更多信息,請參見相應的“組策略”MMC 管理單元中的幫助主題。

使用註冊項 (.reg) 文件

創建包含註冊表更改的註冊項 (.reg) 文件,然後在要進行更改的計算機上運行該 .reg 文件。您可以手動運行 .reg 文件,也可以通過使用登錄腳本運行它。 有關更多信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:

310516  (http://support.microsoft.com/kb/310516/ ) 如何通過使用註冊項 (.reg) 文件添加、修改或刪除註冊表子項和值

使用 Windows 腳本宿主

Windows 腳本宿主允許您直接在操作系統中運行 VBScript 和 JScript 腳本。您可以創建使用 Windows 腳本宿主方法的 VBScript 和 JScript 文件來刪除、讀取和寫入註冊表項和值。有關這些方法的更多信息,請訪問下面的 Microsoft 網站:
 

RegDelete 方法
http://msdn2.microsoft.com/zh-cn/library/293bt9hh.aspx (http://msdn2.microsoft.com/zh-cn/library/293bt9hh.aspx)
RegRead 方法
http://msdn2.microsoft.com/zh-cn/library/x05fawxd.aspx (http://msdn2.microsoft.com/zh-cn/library/x05fawxd.aspx)
RegWrite 方法
http://msdn2.microsoft.com/zh-cn/library/yfdfhz1b (http://msdn2.microsoft.com/zh-cn/library/yfdfhz1b)

使用 Windows Management Instrumentation

Windows Management Instrumentation (WMI) 是 Microsoft Windows 操作系統的一個組件,而且它是基於 Web 的企業管理 (WBEM) 的 Microsoft 實現。WBEM 是一個行業計劃,旨在開發在企業環境中訪問管理信息的標準技術。您可以使用 WMI 在企業環境中自動執行管理任務(如編輯註冊表)。您可以在具有 Windows 引擎並且能夠處理 Microsoft ActiveX 對象的腳本語言中使用 WMI。還可以使用 WMI 命令行實用工具 (Wmic.exe) 來修改 Windows 註冊表。
有關 WMI 的更多信息,請訪問下面的 Microsoft 網站:

http://msdn2.microsoft.com/zh-cn/library/aa394582.aspx (http://msdn2.microsoft.com/zh-cn/library/aa394582.aspx)

有關 WMI 命令行實用工具的更多信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:

290216  (http://support.microsoft.com/kb/290216/ ) Windows Management Instrumentation (WMI) 命令行實用工具 (Wmic.exe) 的說明

使用 Windows 控制檯註冊表工具

您可以使用“Windows 控制檯註冊表工具”(Reg.exe) 編輯註冊表。有關 Reg.exe 工具的幫助,請在命令提示符處鍵入 reg /?,然後單擊“確定”。

還原註冊表

若要還原註冊表,請根據需要使用下面的方法。

還原註冊表項

若要還原導出的註冊表子項,請雙擊在“導出註冊表子項”部分中保存的註冊表項 (.reg) 文件。也可以從備份中還原整個註冊表。有關如何還原整個註冊表的更多信息,請參見本文中後面的“還原整個註冊表”部分。

還原整個註冊表

若要還原整個註冊表,請從備份中還原系統狀態。 有關如何從備份中還原系統狀態的更多信息,請單擊下面的文章編號,以查看 Microsoft 知識庫中相應的文章:

309340  (http://support.microsoft.com/kb/309340/ ) 如何在 Windows XP 中使用備份工具還原計算機上的文件和文件夾


注意:備份系統狀態還將在 %SystemRoot%\Repair 文件夾中創建註冊表文件的更新的副本。如果您在編輯註冊表後無法啓動 Windows XP,則可以通過執行以下 Microsoft 知識庫文章的“第一部分”部分中介紹的步驟,手動替換這些註冊表文件。

307545  (http://support.microsoft.com/kb/307545/ ) 如果註冊表已經損壞並導致 Windows XP 無法啓動,應該如何恢復
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章