首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

Windows NT 登錄表結構深度解析:核心鍵值與功能詳解

     編輯:VC 教學

Windows NT 登錄表架構概覽

Windows NT 的登錄表 是作業系統配置資訊的核心資料庫,採用階層式結構儲存硬體、軟體、用戶偏好及安全性設定。理解其結構對系統管理、開發除錯及效能調校至關重要。本文將詳細剖析六大根鍵的功能定位與內部組織。

六大根鍵功能詳解

HKEY_CLASSES_ROOT (HKCR)

此鍵值包含 OLE (物件連結與嵌入) 與檔案關聯資訊,確保與 Windows 3.x 相容。實際上它是 HKEY_LOCAL_MACHINE\Software\Classes 與 HKEY_CURRENT_USER\Software\Classes 的合併視圖,優先讀取使用者層級設定。管理檔案副檔名對應、COM 類別 ID (CLSID)、應用程式識別碼 (AppID) 等關鍵資料。

HKEY_CURRENT_USER (HKCU)

專門管理目前登入使用者的個人化設定,包含:

  • 桌面環境:桌面佈局、視覺主題、螢幕顏色、滑鼠/鍵盤偏好
  • 裝置連線:網路磁碟機對應、印表機連線、序列埠設定
  • 應用程式參數:各程式的 MRU (最近使用清單)、視窗位置大小、工具列配置
  • 安全權限:使用者專屬的存取控制列表 (ACL)、憑證存放區

資料儲存於 %USERPROFILE%\ntuser.dat,登入時載入,登出時寫回。使用者修改環境設定即時反映於此分支。

HKEY_LOCAL_MACHINE (HKLM) —— 系統核心配置倉庫

包含電腦專屬的硬體、驅動程式、系統服務與軟體安裝資訊,不隨使用者變動。底下五大子鍵分工明確:

HARDWARE:硬體偵測快照

每次開機由 NTLDR/NTDETECT 重建,不保存使用者修改。四大子項:

  • DESCRIPTION:CPU 型別、浮點處理器、系統匯流排架構
  • DEVICEMAP:鍵盤、滑鼠、平行埠、序列埠等裝置對應表
  • OWNERMAP:PCI 裝置擁有權與資源分配記錄
  • RESOURCEMAP:HAL (硬體抽象層) 資源分配、I/O 連接埠、記憶體區塊、IRQ、DMA 通道、SCSI 配接卡、視訊資源

SAM (Security Account Manager):安全帳戶資料庫

儲存本機使用者/群組帳戶、密碼雜湊、安全性原則。任何編輯器皆無法直接存取,必須透過「使用者管理工具」或 SAM API 操作。系統服務 `lsass.exe` 掌管存取權控。

SECURITY:本地安全性授權

包含本地安全性原則、使用者權利指派 (如「以服務身分登入」)、密碼原則 (長度、複雜度、歷程記錄)、稽核原則、信任關係。內含 SAM 資料庫的備份複本,同樣受核心保護,一般編輯器不可讀寫。

SOFTWARE:應用程式安裝與設定中心

每套安裝軟體擁有專屬子鍵 (通常為廠商名稱\產品名稱\版本),儲存:

  • 安裝路徑、版本資訊、授權金鑰
  • 程式參數選項、組態設定
  • MRU 清單、最近開啟檔案
  • COM 元件註冊資訊 (CLSID、TypeLib、ProxyStub)

SYSTEM:核心啟動與服務控制

控制系統啟動流程、裝置驅動程式載入順序、服務啟動類型 (自動/手動/停用)、控制集。關鍵子鍵:

  • CurrentControlSet:當前生效的控制集指標
  • ControlSet001, ControlSet002:多重控制集備份,支援「上次正確配置」
  • Services:所有驅動程式與服務的啟動參數、相依性、錯誤控制

HKEY_USERS (HKU):所有使用者設定檔容器

載入所有活躍使用者的設定檔。包含兩類子鍵:

  • .DEFAULT:預設使用者設定檔,供新建帳戶、系統服務、登入畫面使用
  • S-1-5-21-... (SID):各使用者的安全性識別碼 (SID) 命名分支,對應 HKCU

HKEY_CURRENT_CONFIG (HKCC):當前硬體設定檔快捷視圖

NT 4.0 引入,整合自 HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current 與 HKLM\SOFTWARE 相關部分,提供快速存取當前硬體設定檔 (顯示解析度、裝置啟用狀態),避免遍歷深層路徑。

HKEY_DYN_DATA (HKDD):即插即用動態資料 (已棄用)

NT 4.0 首見,因 NT 4 不支援完整 PnP,內容為空。Windows 9x/Me 大量使用此鍵儲存即插即用裝置狀態、效能計數器;NT 系統改用 WMI (Windows Management Instrumentation) 取代。

實務操作建議

  • 備份優先:修改前匯出 `.reg` 檔或建立系統還原點
  • 權限最小化:日常操作勿使用 Administrator 直接編輯 HKLM\SAM、HKLM\SECURITY
  • 使用工具:偏好 `regedit` (圖形介面) 或 `reg.exe` (命令列/腳本),避免手動十六進位編輯
  • 監控變更:使用 Sysinternals `RegMon` (現整合於 Process Monitor) 追蹤登錄存取

結語

Windows NT 登錄表結構設計精密,六大根鍵分工明確,支援多使用者、多硬體設定檔、安全性隔離。深入理解各分支用途,能大幅提升系統管理、應用程式開發與疑難排解效率。隨著 Windows 版本演進,部分鍵值 (如 HKDD) 已淘汰,但核心架構延續至今,仍是 Windows 內核配置管理的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved