註冊表相關

(一)在windows的開始/運行菜單中輸入"regedit"你就可以通過註冊表編輯器看到註冊表,註冊表是什麼呢?簡單地說,它是用來對windows操作系統進行配置的一個工具.通過它,可以對操作系統及應用軟件進行優化,可以自己設置windows的使用權限,可以解決硬件及網絡設置不當帶來的故障甚至可以改造自己的操作系統。

  在windows 3.X時代,主要通過WIN.INI及SYSTEM.INI對windows進行配置,但WIN.INI及SYSTEM.INI文件存在着安全性不高,大小受限制等問題,爲了解這一問題microsoft公司在WINDOWS98以後的版本中引入了註冊表這一便更好的對windows系統進行配置,這就是爲什麼我們要使用註冊表的原因。

註冊表的作用是保存程序所需要的信息,當程序需要這些信息時,就從註冊表裏讀出。因此,註冊表最基本的功能就是保存信息。

  當了解了註冊表的主要功能--保存信息後,再來了解其保存信息後,再來了解保存信息所發揮的作用!

1,記錄安裝信息;

2,設置硬件屬性;

3,定製WINDOWS以及應用軟件.

  註冊表邏輯結構中最基本的是主鍵,子鍵,鍵值項以及鍵值。它們是按照分組的方式來管理和組織的。首先是最底根鍵,每個根鍵下有若干個子鍵,每個子鍵下又可以有若干(一個或多個)子鍵,子鍵下可以有一個或多個鍵值項和鍵值。

根鍵:註冊表中最底層的鍵,類似於磁盤上的根目錄。

  子鍵:子鍵位於根鍵下又可以嵌套其他子鍵中,在註冊表的六大根鍵中,有若干的子鍵,而每個子鍵中又可以嵌套成千上萬的子鍵。

鍵值項與鍵值

鍵值項與鍵值:

在每個根鍵和子鍵下,可以有若干鍵值,這種結構類似於磁盤上根目錄和子目錄裏的文件和文件內容.

  windows 9x註冊表邏輯結構中包含六個根鍵,每個根鍵包含着分類不同的信息!在windowsNT/2000/XP中,如果用windows自帶的編輯器打開的時候,只能看到五個,還有一個隱藏的根鍵:HKEY_PERFOR_MANCE_DATA。

*HKEY_CLASS_ROOT

  記錄windows操作系統中所有數據文件的格式和關聯信息,主要記錄不同文件的文件名後綴和與之對應的應用程序其下子鍵可分爲兩類:一類是已經註冊的各類文件的擴展名,這類子鍵前面都帶有一個".";另一類是各類文件類型有關信息。

*HKEY_CURRENT_USER

  此根根鍵包含當前登錄用戶的用戶配置文件信息,這些信息保證不同的用戶登錄計算機時,使用自己的修改化設置,例如自己定義的牆紙,自己的收件箱,自己的安全訪問權限。

*HKEY_LOCAL_MACHINE

  此根鍵包含了當前計算機的配置靈氣,包括所安裝的硬件以軟件設置。這些信息是爲所有的用戶登錄系統服務的。這是事個註冊表中最龐大也是最重要的根鍵!

*HKEY_USERS

HKEY_USERS根鍵包括默認用戶的信息(DEFAULT子鍵)和所有以前登陸用戶的信息。

*HKEY_CURRENT_CONFIG

此根鍵實際上是HKDY_LOCAL_MACHINE/CONFIG/0001分支下的數據完全一樣。

*HKEY_DYN_DATA根鍵

這個鍵保存每次系統啓動時,創建的系統配置和當前性能信息。這個根鍵只存在於windows 9X中

*HKEY_PERFORMANCE_DATA

  在windowsNT/2000/XP註冊表中雖然沒有HKEY_DYN_DAT鍵,但是它卻隱藏了一個名爲"HKEY_PERFORMANCE_DATA的鍵。所有系統中的動態信息都是存放在此子鍵中,系統自帶的註冊表編輯器無法看到些鍵。介可以用專門的程序來查看此鍵,比如使用性能監視器。

(二)點“開始”、“運行”輸入“regedit”
Windows註冊表是幫助Windows控制硬件、軟件、用戶環境和Windows界面的一套數據文件,註冊表包含在Windows目錄下兩個文件system.dat和user.dat裏,還有它們的備份system.da0和user.da0。通過Windows目錄下的regedit.exe程序可以存取註冊表數據庫。在以前,在windows的更早版本(在Win95以前),這些功能是靠win.ini,system.ini和其他和應用程序有關聯的.ini文件來實現的.

(三)註冊表的由來
  在Windows 3.x操作系統中,註冊表是一個極小文件,其文件名爲Reg.dat,裏面只存放了某些文件類型的應用程序關聯,大部分的設置放在Win.ini、System.ini等多個初始化INI文件中。由於這些初始化文件不便於管理和維護,時常出現一些因INI文件遭到破壞而導致系統無法的啓動的問題。爲了使系統運行得更爲穩定、健壯,Windows 95/98設計師們借用了Windows NT中的註冊表的思想,將註冊表引入到Windows 95/98操作系統中,而且將INI文件中的大部分設置也移植到註冊表中,因此,註冊表在Windows 95/98操作系統的啓動、運行過程中起着重要的作用。
[編輯本段]註冊表的作用
  註冊表是爲Windows NT和Windows95中所有32位硬件/驅動和32位應用程序設計的數據文件。16位驅動在Winnt下無法工作,所以所有設備都通過註冊表來控制,一般這些是通過BIOS來控制的。在Win95下,16位驅動會繼續以實模式方式設備工作,它們使用system.ini來控制。16位應用程序會工作在NT或者Win95 下,它們的程序仍然會參考win.ini和system.ini文件獲得信息和控制。
  在沒有註冊表的情況下,操作系統不會獲得必須的信息來運行和控制附屬的設備和應用程序及正確響應用戶的輸入。
  在系統中註冊表是一個記錄32位驅動的設置和位置的數據庫。當操作系統需要存取硬件設備,它使用驅動程序,甚至設備是一個BIOS支持的設備。無BIOS支持設備安裝時必須需要驅動,這個驅動是獨立於操作系統的,但是操作系統需要知道從哪裏找到它們,文件名、版本號、其他設置和信息,沒有註冊表對設備的記錄,它們就不能被使用。
  當一個用戶準備運行一個應用程序,註冊表提供應用程序信息給操作系統,這樣應用程序可以被找到,正確數據文件的位置被規定,其他設置也都可以被使用。
  註冊表保存關於缺省數據和輔助文件的位置信息、菜單、按鈕條、窗口狀態和其他可選項。它同樣也保存了安裝信息(比如說日期),安裝軟件的用戶,軟件版本號和日期,序列號等。根據安裝軟件的不同,它包括的信息也不同。
  然而,一般來說,註冊表控制所有32位應用程序和驅動,控制的方法是基於用戶和計算機的,而不依賴於應用程序或驅動,每個註冊表的參數項控制了一個用戶的功能或者計算機功能。用戶功能可能包括了桌面外觀和用戶目錄。所以,計算機功能和安裝的硬件和軟件有關,對所有用戶來說項都是公用的。
  有些程序功能對用戶有影響,有些是作用於計算機而不是爲個人設置的,同樣的,驅動可能是用戶指定的,但在很多時候,它們在計算機中是通用的。
  註冊表控制用戶模式的例子有:
  控制面板功能;
  桌面外觀和圖標;
  網絡參數;
  瀏覽器功能性和特徵;
  那些功能中的某些是和用戶無關的,有些是針對用戶的。
  計算機相關控制項基於計算機名,和登陸用戶無關。控制類型的例子是安裝一個應用程序,不管是哪個用戶,程序的可用性和存取是不變的,然而,運行程序圖標依賴於網絡上登陸的用戶。網絡協議可用性和優先權基於計算機,但是當前連接和用戶信息相關。
  這裏是在註冊表中基與計算機控制條目的一些例子:
  存取控制;
  登陸確認;
  文件和打印機共享;
  網卡設置和協議;
  系統性能和虛擬內存設置;
  在系統中註冊表控制所有32位應用程序和它們的功能及多個應用程序的交互,比如複製和粘貼,它也控制所有的硬件和驅動程序。雖然多數可以通過控制面板來安裝和設置,理解註冊表仍是做Winnt和Win95系統管理基本常識。
[編輯本段]與註冊表有關的術語
  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程序員建造的一個複雜的信息數據庫,它是多層次式的。在不同系統上註冊表的基本結構相同。其中的複雜數據會在不同方式上結合,從而產生出一個絕對唯一的註冊表。
  計算機配置和缺省用戶設置的註冊表數據在Winnt中被保存在下面這五個文件中:
  DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSER.DAT。
  
註冊表的數據結構

  註冊表由鍵(或稱“項”)、子鍵(子項)和值項構成。一個鍵就是分支中的一個文件夾,而子鍵就是這個文件夾中的子文件夾,子鍵同樣是一個鍵。一個值項則是一個鍵的當前定義,由名稱、數據類型以及分配的值組成。一個鍵可以有一個或多個值,每個值的名稱各不相同,如果一個值的名稱爲空,則該值爲該鍵的默認值。
  在註冊表編輯器(Regedit.exe)中,數據結構顯示如下,其中,command鍵是open鍵的子鍵,(默認)表示該值是默認值,值名稱爲空,其數據類型爲REG_SZ,數據值爲%systemroot%/system32/NOTEPAD.EXE "%1
  數據類型
  註冊表的數據類型主要有以下四種:
  顯示類型(在編輯器中) 數據類型 說明
REG_SZ 字符串 文本字符串
REG_MULTI_SZ 多字符串 含有多個文本值的字符串
REG_BINARY 二進制數 二進制值,以十六進制顯示。
REG_DWORD 雙字 一個32位的二進制值,顯示爲8位的十六進制值。

  [1][2]各主鍵的簡單介紹HKEY_LOCAL_MACHINE
  HKEY_LOCAL_MACHINE是一個顯示控制系統和軟件的處理鍵。HKLM鍵保存着計算機的系統信息。它包括網絡和硬件上所有的軟件設置。(比如文件的位置,註冊和未註冊的狀態,版本號等等)這些設置和用戶無關,因爲這些設置是針對使用這個系統的所有用戶的。
  HKEY_LOCAL_MACHINE\AppEvents
  爲了以後在客戶機上運行客戶機/服務器這樣的應用程序,在Win95/98中AppEvents鍵是空的。應用程序實際上都駐留網絡服務器上,這些鍵會保存部分指針。
  HKEY_LOCAL_MACHINE\Config
  這個鍵保存着你計算機上所有不同的硬件設置(這些從控制面板的系統屬性中硬件配置文件中可以創建)。這些配置在啓動時通常被複制到HKCC。每個配置會被用一個鍵(比如0001或者0002等等)來保存,每個都是一個獨立的配置。如果你只有一個單一的配置,那就只會有0001這個鍵
  HKEY_LOCAL_MACHINE\Config01\Display
  這個鍵表示顯示的設置,如熒屏字體,窗體大小,窗體位置和分辨率等
  HKEY_LOCAL_MACHINE\Config01\System
  這個鍵保存着系統裏打印機的信息
  HKEY_LOCAL_MACHINE\Config01\System\CurrentControlSet\Control\Print\Printers
  在這個鍵下面,有一個鍵是爲系統上每一個打印機設置的,通過控制面板添加和刪除打印機會調整這個列表
  HKEY_LOCAL_MACHINE\Enum
  Enum鍵包含啓動時發現的硬件設備和那些既插即用卡的信息。Win95使用總線列舉在啓動時通過不同的.ini文件來檢測硬件信息。那些在啓動時被安裝的和被檢測到的硬件會顯示在這裏。子鍵包括BIOS, ESDI, FLOP, HTREE, ISAPNP, Monitor, Network, Root, SCSI, 和 VIRTUAL。子鍵名錶示它們各自的硬件設備信息。
  HKEY_LOCAL_MACHINE\Enum\BIOS
  BIOS鍵保存着系統中所有即插即用設備的信息。它們用一套代碼數列出,包括每一個鍵的詳細說明,舉例,*pnp0400是並行口LPT1的鍵。如果LPT1並不具備即插即用功能,它就會別列入到Enum下的Root鍵中
  HKEY_LOCAL_MACHINE\Enum\Root
  Root鍵包括所有非即插即用設備的信息。在這裏,我們可以迅速斷定哪些設備是即插即用,那些不是。比如SCSI適配器,這個設備必須符合Win95中一個鍵名爲ForcedConfig的硬件設置,這個不會改變。
  HKEY_LOCAL_MACHINE\Enum\Network
  win95的網絡功能在這個鍵有詳細說明,子鍵包括了每個已經安裝的主要的服務和協議。
  HKEY_LOCAL_MACHINE\HARDWARE
  hardware子鍵包括了兩個多層的子鍵:DESCRIPTION鍵,它包含了中央處理器和一個浮點處理器的信息。還有一個設備映射鍵,它下面的串行鍵列出你所有的com端口。這個hardware鍵僅保存超級終端程序的信息,及數學處理器和串行口。
  HKEY_LOCAL_MACHINE\Network
  這個鍵僅保存網絡登陸信息。所有網絡服務細節都保存在HKEY_LOCAL_MACHINE\Enum\Network這個鍵中。這個鍵有一個子鍵,logon,包括了lmlogon(本地機器登陸?0=false 1=true)的值,logonvalidated(必須登陸驗證),策略處理,主登陸方式(Windows登陸 ,微軟網絡客戶方式等),用戶名和用戶配置。
  HKEY_LOCAL_MACHINE\SECURITY
  security 有兩個子鍵,第一個是存取(它最終致使一個遠程鍵列出網絡安全資源,存取權限等)和提供(包括列出網絡地址和地址服務器),這個鍵被保留用在以後使用高級安全功能和NT兼容性上
  HKEY_LOCAL_MACHINE\SOFTWARE
  這個鍵列出了所有已安裝的32位軟件和程序的.ini文件。它包括了變化,依靠軟件安裝。那些程序的控制功能在這裏的子鍵中列出。多數子鍵簡單的列出了安裝軟件的版本號。
  我們在\Microsoft\Windows\Current Version下發現了一些有意思的設置,它有如下子鍵:
  1.App paths: 你曾經安裝過的所有32位軟件的位置。
  2.Applets, Compression, Controls Folder : 包括下控制面板象顯示屬性那樣屬性條的附件。
  3.Detect, explorer :很多有意思的子鍵如Namespace keys of Desktop和My Computer----它們指出了回收站和撥號網絡的CLSID行----和提示子鍵可以讓你建立自己的提示。
  4.Extensions : 一個擴展聯繫的列表,當前相關聯的擴展名和比特定的執行文件更適合的目標類型。
  5.Fonts, fontsize, FS Templates :系統屬性條中所選擇文件系統模板, 服務器,桌面計算機或者筆記本電腦信息。
  6.MS-DOS Emulation :包括一個應用程序兼容子鍵 爲大量過時的程序二進制鍵所設。
  7.MS-DOS Options :在dos模式下的設置,如himem.sys,cd-roms等。
  8.Network :網絡驅動的配置。
  9.Nls, Policies :系統管理員認爲你不應該去做的事。
  10.ProfileList :所有可以登陸你計算機的用戶名列表。
  11.在Windows啓動時運行的程序的神祕之處是它們並不在開始菜單的啓動文件夾中。它們在HKEY_LOCAL_MACHINE\Microsoft\Windows\CurrentVersion\下的子鍵中被執行。
  Run : 程序在啓動時運行
  RunOnce : windows初始化時程序在啓動時只運行一次,這個經常用在當安裝軟件之後需要重新啓動系統的時候,所以這個鍵一般都是空的。
  RunServices : 它就象Run一樣,但是包含了“服務”,它不象一般的程序它們是比較重要的或者是“系統”程序。但是它們不是VXDs,就象McAfee或者RegServ工作一樣。
  RunServicesOnce : 它只運行一次,但是是“系統自身”的安裝(大量的windows安裝參數:通常鍵值包括了系統目錄位置,和win95更新,可選項安裝組件,和windows啓動目錄的子鍵。
  注意:在很多黑客木馬軟件中,常常在這裏添加鍵值(一般是在Run中),這樣使得木馬軟件可以隨着windows啓動而啓動並且很隱祕。在這裏可以查看不正常的啓動項和去掉無用的運行程序(比如我就很不喜歡超級解霸的自動伺服器,在這裏可以去掉它)。
  12.SharedDLLs:共享DLL的列表,每一個都給出了在一個不可知系統的一個數字等級。
  13.Shell Extensions:列出了“被認可的”OLE註冊條,和相應的CLSID連接。
  14.ShellScrap :這個包含了一個PriorityCacheformats的子鍵,它包括了一個空的有限值,它更象過去SmartDrive命令行參數的派生。
  15.Time Zones : 主鍵值是你現在的時區;子鍵定義了所以可能的時區。
  16.Uninstall:這個保存了程序在添加/刪除程序對話框的顯示;子鍵包含了指向反安裝程序的路徑。和安裝嚮導相似.......)winlogon(包含了合法登陸佈告的文本句)
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
  這個子鍵包括設備驅動和其他服務的描述和控制。不同於windows nt,win95只包括限制驅動的控制設置信息。
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
  這個子鍵包括了win95控制面板中的信息。不要編輯這些信息,因爲一些小程序的改變在很多地方,一個丟失的項會使這個系統變的不穩定
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
  這個鍵包括了所有win95的標準服務。所有被添加的服務和設備,每個標準的服務鍵包括了它的設置和辨認設置。
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Arbitrators
  atbitrators鍵包括了當兩個設備共同佔用同樣的設置需要解決的信息。四個子鍵包括了內存地址,衝突,DMA,I/O端口衝突和IRQ衝突。
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Class
  class鍵包括了所有win95支持的設備classes控制,這些和你在添加新硬件出現的硬件組很類似,還包括了這些設備如何安裝的信息。
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\inetaccs
  這個鍵包括了關於這個系統變化的ie附件的可用性,它僅在你安裝過ie2。0或者更高版本纔出現。
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSNP32
  msnp32描述了客戶機如何在microsoft網絡中實現功能,它包括了認證過程和認證者的信息。
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NWNP32
  nenp32鍵描述了windows客戶如何在netware網絡中工作功能,它包括了關於認證過程和證明者的信息。
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RemoteAccess
  在這個鍵裏包括需要遠程工作在win95系統上的信息,有認證參數,主機信息,和爲了建立一個撥號連接工作的協議信息。
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP
  這個鍵包括了所以snmp(簡單網絡管理協議)的參數。它包括了允許的管理,配置陷阱,和有效的團體。
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD
  vxd鍵包括了win95中所有32位虛擬設備驅動信息,win95自動管理它們,所以不必要用註冊表編輯器編輯它們,所以的靜態vxds用子鍵列出。
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebPost
  webpost鍵包括了所有裝載的internet郵局的設置,如果你連接一個isp,並且它列出載這裏,你應該給自己選則一個服務器。
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock
  這個鍵列出了當連接到internet上winnsock文件的信息,如果列出了不正確的文件,你將不會連接上internet。
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinTrust
  wintrust功能是檢查從Internet上下載來的文件是否有病毒,它可以確保你得到乾淨安全的文件。
  HKEY_CLASSES_ROOT
  在註冊表中HKEY_CLASSES_ROOT是系統中控制所有數據文件的項。這個在Win95和Winnt中是相通的。HKEY_CLASSES_ROOT控制鍵包括了所有文件擴展和所有和執行文件相關的文件。它同樣也決定了當一個文件被雙擊時起反應的相關應用程序。
  HKEY_CLASSES_ROOT被用作程序員在安裝軟件時方便的發送信息,在Win95和Winnt中,HKEY_CLASSES_ROOT和HKEY_LOCAL_MACHINE\Software\Classes是相同的。程序員在運行他們的啓動程序時不需要擔憂實際的位置,相反的,他們只需要在HKEY_CLASSES_ROOT中加入數據就可以了。
  在Windows用戶圖形界面下,每件事----每個文件,每個目錄,每個小程序,每個連接,每個驅動---都被看做一個對象;每個對象都有確定的屬性和它聯繫。HKCR包含着對象類型和它們屬性的列表。HKCR主要的功能被設置爲:
  一個對象類型和一個文件擴展名關聯
  一個對象類型和一種圖標關聯
  一個對象類型和一個命令行動作的關聯
  定義對象類型相關菜單選項和定義每一個對象類型屬性選項
  在Win95中,相關菜單就是當你鼠標右擊一個對象時所彈出的菜單;屬性就是當你選擇屬性項後一個展開的對話框。用簡單術語來說就是在改變HKCR中的設置可以改變一個給定文件擴展名缺省的關聯。改變一個文件類型的缺省圖標,和添加或者刪除給定對象類型的彈出菜單內容(或者所有的對象類型)
  HKCR包括了三種基本類型的子鍵
  \??? 或者文件擴展名子鍵
  文件擴展名子鍵在彈出菜單上連接文件擴展名到對象類型和相關操作,屬性項,和相關操作。
  \object 類型子鍵
  對象類型子鍵定義了一個對象類型在它缺省圖標的項,它的彈出菜單和屬性項,它的相關操作和它的CLSID連接。
  \CLSID 子鍵
  在Windows下每件事都被用一個數字取代它的名字來對待。就象人往往是用名字來處理事情一樣。CLSID是標識所有列出的圖標,應用程序,目錄,文件類型等等對象的數字。是微軟爲製造商分配的,每一個都必須是唯一的。製造商將CLSID放入安裝程序文件這樣就可以在安裝時更新註冊表。
  註冊表是應用程序進行時它們需要關於做什麼的指示的數據庫。比如說,假定你有一個微軟Excel 7電子數據表的Word 7文檔,當你在Word中雙擊這個電子數據表,應用程序菜單就會變成Excel的菜單而且電子數據表進入編輯狀態,就好像你在Excel中一樣。它是如何知道該做什麼呢?每個Excel 7創建的文件都有Excel的CLSID連接。Word讀這個CLSID後,到註冊表中尋找指示,依賴CLSID下的數據運行.DLL文件或者應用程序。
  CLSID子鍵爲對象類型提供了OLE和DDE信息和圖標。相關菜單,或者包含在它子鍵中的屬性項信息。這個可能是多數讓人看到後覺得“恐怖”的鍵。每個CLSID數必須是唯一的,實際上,爲了這個目的微軟已經出產了CLSID-產生程序--這個結果導致你往往得到32位16進制的數字串,除非你是程序員,否則多數部分鍵看起來是很枯燥的。它們包括內存管理模式,客戶機/服務器配置,和OLE處理的.dll連接。
[編輯本段]關於子鍵的一點註解
  1)shell:Shell鍵有個一”action“子鍵,如同”open“一樣,這裏有一個command子鍵;command子鍵有一個缺省句值,它包含了運行程序的命令行。將一個”open“子鍵放在一個對象類型的shell子鍵中會在這個對象類型的彈出菜單上多出一個”open“選項,給這個open子鍵一個command(缺省命令行"C:\Windows \Notepad.exe %1")子鍵會使得打開這個對象類型時使用筆記本做爲缺省應用程序。其他操作選項包括View,Print,Copy,Virus,Scan等等。
  2)shellex:Shellex鍵有一個子鍵。它們包含的每一個子鍵指向一個爲對象類型執行OLE和DDE功能的CLSID項(比如說快速查看,一個菜單處理子鍵下指向一個有句值的CLSID鍵列出了包含了文件瀏覽功能的.dll文件)
  3)shellnew:ShellNew包含了一個“command”句,它包含了一個打開對象類型“新”文件的命令行。
  4)DefaultIcon:DefaultIcon子鍵包含了一個“default”句,它包括了一個指向圖標的命令行(比如說,"C:\Windows \System \shell32.dll,2" 2就是從0數的第三個圖標,記住,是在Shell32.dll中的)
  除了和它們擴展名關聯擴展名和文件類型以外,它們在HKEY_CLASSES_ROOT還有很多項。所有它們的項也都適用於nt,如界面和應用程序的執行。通常你將編輯僅僅一小部分這樣的項。除了彈出菜單提示以外,所有包含在這裏的項只會在安裝應用程序,在程序中設置調整或者創造關聯時被改變。
  沒有HKEY_CLASSES_ROOT你是不能啓動系統的;你手工編輯它真的是很困難。HKEY_CLASSES_ROOT是你需要註冊標一個很重要的原因:應用程序的控制和操作這個系統。看到它的尺寸和這個處理鍵的複雜程度,SYSTEM.INI 和 WIN.INI不再夠用也是不用驚奇的。
  HKEY_CURRENT_CONFIG
  win95一般只使用一個硬件配置文件。如果有多個硬件配置文件。HKEY_LOCAL_MACHINE\Config中就會添加一個鍵。HKEY_LOCAL_MACHINE\Config包含了HKEY_LOCAL_MACHINE中相同的數據
  在啓動時,你可以選擇你願意使用的配置文件。如果有多個安裝,每次系統重新啓動時,你就必須選擇.HKEY_CURRENT_CONFIG是在啓動時控制目前硬件配置的鍵
  在系統啓動以後,任何地方的變化都會自動影響到它。程序員經常使用HKEY_CURRENT_CONFIG方便的來存取配置信息。
  HKEY_CURRENT_CONFIG包括了系統中現有的所有配置文件的細節。你的選擇影響了哪一個硬件配置文件成爲現在的。舉例來說,如果配置0002被選擇了,所有0002的配置信息會被映射到這些鍵上
  HKEY_CURRENT_CONFIG允許軟件和設備驅動程序員很方便的更新註冊表,而不涉及到多個配置文件信息。 HKEY_LOCAL_MACHINE中同樣的數據和任何註冊表的變化都會同時的變化。
  HKEY_DYN_DATA
  在HKEY_DYN_DATA鍵中所有信息都是在啓動時被寫入的。它再現了Win95在系統中控制硬件所使用的動態數據。它僅只有三個鍵。它們保留了系統目前狀態監視所需要的很簡單的信息
  在HKEY_DYN_DATA中除了暫時文件,沒有任何數據被寫入硬盤。在系統每次重新啓動時所有的數據被重新寫入。另外,在既插即用的情況下,當設備改變狀態時一些數據可能會寫入。(比如說系統運行時在一個PCMCIA槽中插入一塊網卡)
  Config Manager
  配置管理包括了在Win95中每個安裝設備啓動時的信息。在啓動時它從HKEY_CURRENT_CONFIG中獲得它的列表並且檢查每個項。如果找到一個沒有在列表中列出的設備,它向系統報告這些信息來安裝。如果列表中的一個設備不在系統中,它就會在這個鍵值中顯示這個情況。
  Enum
  系統中已安裝的每個設備的啓動狀態都在這個鍵中被列出。如果某個設備沒準備好,它就在這裏顯示出來。如果它準備好了,它也會顯示出來。每個設備指針也被列出顯示哪個註冊這個設備用來做它的控制
  PerfStats
  系統中所有設備的性能特徵保存在這個鍵。它是十分難讀的,但是通過系統監視器就十分容易看懂
  Security
  這個鍵顯示了登陸在這臺機器和網絡上的登陸用戶從哪個證明者得到有效的證明
  HKEY_USERS
  HKEY_USERS將缺省用戶和目前登陸用戶的信息輸入到註冊表編輯器,在win95中,它僅被那些配置文件激活的登陸用戶使用,同樣在nt下,它也是這樣。
  win95從user.dat中取得他們的信息,winnt從ntuser.dat中取得信息。.dat文件包含了所有基於用戶的註冊表設置並且允許你取配置這些用戶的環境。如果你改變了缺省用戶的設置,所有新用戶會繼承同樣的設置。而且,那些已經被建立的用戶變的失效。
  HKEY_USERS\.DEFAULT
  這個鍵的設置被用於所有新用戶,用戶們的配置文件從這個配置文件中建立。它包括所有的環境,屏幕,聲音,和其他用戶相關的功能。
  HKEY_USERS\.DEFAULT\AppEvents
  這個鍵列出了事件響應,描述,和各種系統功能的聲音
  HKEY_USERS\.DEFAULT\AppEvents\Schemes
  缺省和當前的聲音方案在這個鍵和它的子鍵中列出。在事件的時間中系統播發這些聲音
  HKEY_USERS\.DEFAULT\Console
  這個鍵保存了MS-DOS窗口的選項、佈局、熒屏顏色和字體設置。
  HKEY_USERS\.DEFAULT\Control Panel
  所有在控制面板裏配置設置的信息全保存在這個鍵和它的子鍵中
  HKEY_USERS\.DEFAULT\Control Panel\Accessibility
  這個鍵保存了所有在控制面板中輔助功能的設置。
  HKEY_USERS\.DEFAULT\Control Panel\Appearance
  這個鍵保存了所有在控制面板裏顯示外觀的設置
  HKEY_USERS\.DEFAULT\Control Panel\Appearance\Schemes
  這個鍵列出了缺省可用的方案,和每個方案包括的顏色和字體。
  HKEY_USERS\.DEFAULT\Control Panel\Colors
  這個鍵保存了Windows每個缺省顏色的設置。每個值(顏色名)像一個RGB(紅、綠、藍)值列出來。比如說,黑色是0 0 0,意思就是紅色值是0,綠色值是0,藍色值也是0。相反的白色就是255 255 255。其他的顏色都是RGB值合成的。
  HKEY_USERS\.DEFAULT\Control Panel\Sound
  這個鍵決定了在錯誤時系統是否發出響聲
  HKEY_USERS\.DEFAULT\Environment
  這個鍵保存了環境設置,特定的臨時性文件的位置
  HKEY_USERS\.DEFAULT\Keyboard Layout
  鍵盤佈局設置被設置成標準美國英國標準傳統鍵盤佈局。如果你選擇了其他的佈局,那麼數字列表會不同
  HKEY_USERS\.DEFAULT\Software
  軟件的安裝設置被保存在這個鍵中,缺省用戶只有微軟程序的設置
  HKEY_USERS\.DEFAULT\Software\Microsoft
  微軟的應用程序的相關設置被放在這個鍵裏。如果其他微軟程序被安裝,它們就更新這個用戶的微軟鍵。在下面的項目顯示了缺省的控制
  HKEY_USERS\.DEFAULT\Software\Microsoft\Windows
  這個鍵保存了只和windows有聯繫,和windows nt沒關係的設置,這些設置在win95中是相同的,使用同樣的驅動和功能
  HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NT
  基於nt 功能的設置在這個鍵中。windows nt沒有這些設置就不能夠運行,它建立環境和網絡上的進程,用戶權限,打印機,字體等等
  HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
  這個設置控制了windows nt的登陸功能
  HKEY_USERS\.DEFAULT\UNICODE Program Groups
  缺省unicode程序組只是在使用程序管理器時被使用,explorer並不使用它們
  S-1-5-21-1658001358-1336221227-1912232085-500 (SID)
  HKEY_USERS\S-1-5-21-1658001358-1336221227-1912232085-500
  這個是目前登陸用戶的sid,每一個網絡上的用戶都被域用戶管理器分配了一個sid,每一個sid都是唯一的,所以它依賴與登陸用戶,這個信息改變。它是從用戶配置文件的ntuser.dat文件調出的。一般來說,它的子鍵很多,是基與安裝的軟件的,選擇的和最終設置
  HKEY_USERS\SID\Network
  這個鍵顯示了所有連接到其他系統的映射。舉例來說,如果你映射驅動器H: 到\server1\docs,它會作爲一個子鍵顯示出來
  HKEY_USERS\SID\Printers
  這個鍵顯示了所有安裝的,共享的和連接的打印機
  HKEY_USERS\SID\Software
  這個鍵爲單獨的用戶擴展,基於爲用戶或者被用戶安裝的其他軟件。
  HKEY_USERS保存了所有目前登陸用戶和缺省用戶的設置。登陸用戶的改變就如同不同用戶使用這個系統,sid是用戶信息的表現。使用程序重新找到任何用戶的ntuser.dat文件並且把他放如到註冊表中觀看和編輯。
  HKEY_CURRENT_USER
  HKEY_CURRENT_USER包含着在HKEY_USERS安全辨別裏列出的同樣信息。任何在HKEY_CURRENT_USER裏的改動也都會立即HKEY_USERS改動。相反也是這樣。
  HKEY_CURRENT_USER允許程序員和開發者易於存取目前登陸用戶的設置。通過建立這個鍵,微軟很容易在不涉及到用戶的SID下改變,添加和設置。
  也就是說,所有當前的操作改變只是針對當前用戶而改變,並不影響其他用戶。
  首先出場的是Win98/Me,因爲Win98和WinMe沒有大的區別,所以這裏放在一起講述。在Win98/Me裏面的註冊表編輯器只有一種,就是最"原始"的那一種。之所以說他原始是因爲他沒有任何安全限制,也就是說它的註冊表編輯器可以被任意一個用戶打開,並沒有任何權限限制。這主要是因爲Win98/Me的使用對象是一般的單機用戶,不需要限制權限,這一點和NT/2000/XP有很大的不同。打開的方法:
  1.最簡單的方法:開始--運行中輸入regedit就可以了。
  2.另外一種方法:在Windows目錄下找到regedit.exe,直接雙擊也可以打開。 隨後是Win2000/XP出場。因爲2000/XP在設計時加上了權限這一概念,所以在這2個系統裏面有2種方法可以打開註冊表編輯器。一種是直接在開始--運行中輸入regedit,出現的界面和98/Me一樣。這裏就不詳細說明了。另外一種打開方式是本文的重點內容----有權限限制的註冊表編輯器(打開方法:開始----運行中輸入regedt32)。如圖所示(這裏是WinXP的截圖,Win2000下的截圖和WinXP是一樣的)。
  當你選中一個鍵值的時候,編輯下拉菜單下就可以看到一個選項----權限,用鼠標單擊這個選項以後會出現圖2的窗口。用鼠標分別單擊各個用戶組就可以看到不同的權限限制,如果你覺得某一個用戶組的權利太高了,就可以在下方修改權限(注意:必須賦予Administrators組用戶完全權限,否則一旦你或相應的軟件、驅動程序要修改註冊表,但是由於所有的組用戶都沒有權限修改,所以你將不能夠成功安裝。所以必須把完全權限賦予Administrators組用戶(系統默認)。圖3是Administrators組用戶所擁有的權限。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章