| 導購 | 订阅 | 在线投稿
分享
 
 
 

注冊表,大蝦們別罵我呀,菜鳥好好看!!!

來源:互聯網  2005-01-30 13:03:39  評論

關于上次的MS-DOS,一個詞,麻煩,但是並不難!!

這次是注冊表,大蝦們別罵我呀,菜鳥好好看!!!

這次講的是Windows注冊表,有機會講講DOS底下搞搞注冊表,極有趣,但是,唉,煩煩煩!!!

p align="left"> PC機及其操作系統的一個特點就是允許用戶按照自己的要求對計算機系統的硬件和軟件進行各種各樣的配置。早期的圖形操作系統,如Win3.x中,對軟硬件工作環境的配置是通過對擴展名爲.ini的文件進行修改來完成的,但INI文件管理起來很不方便,因爲每種設備或應用程序都得有自己的INI文件,並且在網絡上難以實現遠程訪問。

爲了克服上述這些問題,在Windows 95及其後繼版本中,采用了一種叫做「注冊表」的數據庫來統一進行管理,將各種信息資源集中起來並存儲各種配置信息。按照這一原則,Windows各版本中都采用了將應用程序和計算機系統全部配置信息容納在一起的注冊表,用來管理應用程序和文件的關聯、硬件設備說明、狀態屬性以及各種狀態信息和數據等。

與INI文件不同的是:

1.注冊表采用了二進制形式登錄數據;

2.注冊表支持子鍵,各級子關鍵字都有自己的「鍵值」;

3.注冊表中的鍵值項可以包含可執行代碼,而不是簡單的字串;

4.在同一台計算機上,注冊表可以存儲多個用戶的特性。

注冊表的特點有:

1.注冊表允許對硬件、系統參數、應用程序和設備驅動程序進行跟蹤配置,這使得修改某些設置後不用重新啓動成爲可能。

2.注冊表中登錄的硬件部分數據可以支持高版本Windows的即插即用特性。當Windows檢測到機器上的新設備時,就把有關數據保存到注冊表中,另外,還可以避免新設備與原有設備之間的資源沖突。

3.管理人員和用戶通過注冊表可以在網絡上檢查系統的配置和設置,使得遠程管理得以實現。

我們在前面已經詳細介紹了注冊表的由來與基本結構。發現注冊表比較複雜,但又安排得非常有條理,能有效地提高工作效率,爲系統的維護提供了必要條件。由于注冊表是一個二進制的配置數據庫文件(Windows的命根子),因而,用戶無法直接存取注冊表。爲了讓高級用戶能夠編輯注冊表,Windows2000提供了注冊表編輯器「c」和「Regedt32」。對這種只使用Windows提供的注冊表編輯器進行編輯的操作。

編輯器在安裝Windows時已經被安裝到硬盤中了,但是並未在「附件」程序組中建有快捷方式。用戶如果需要使用注冊表編輯器,可以在「運行」對話框內輸入Regedt32或Regedit即可打開注冊表編輯器,

或者在「命令提示符」中執行Regedt32.exe也可以進入注冊表編輯器,

後面的內容將介紹注冊表編輯器的使用方法,如創建刪除主鍵、子鍵以及鍵值等,同時還將給出一些修改注冊表的實例。

首先我們來看看注冊表與Windows 98文件系統的關系。

Windows 98的注冊表Registry由以下的六個文件組成:

1.系統配置的注冊表文件System.dat

在Windows 9x的系統目錄c:\windows中有一個隱含、系統、只讀文件System.dat,它是Windows 98注冊表的一部分,該文件具有如下作用:

1)描述單一的PC配置。

2) 描述安裝在單一PC上的消息。

3)安裝即插即用類型的設備硬件配置,如設備的I/O地址、IRQ級和DMA通道等等的情況。這個文件在Windows 98的網絡運行狀態時,保存在本地的工作站或本地PC機系統中。在Windows 98的安裝期間,Setup將首先檢查你的計算機上已經安裝了的硬件設備,然後在System.dat中建立適當的配置項。若從現有的Windows 3.x中升級安裝Windows 98,則Setup將把現有的System.ini 、Reg.dat文件中的部分設置項拷貝到System.dat中,以保持系統的設置。

我們經常使用「控制面板」的「系統」圖標來修改系統的硬件設備和配置情況,這個時候我們進行的操作都是從System.dat中讀取的系統屬性設置。這個文件的作用很類似于Windows 3.x中的System.ini文件。

2.系統配置的注冊表備份文件System.da0

Windows 98的注冊表的一個非常重要的特點就是可靠性強,穩定不易損壞。這就需要靠注冊表的備份文件system.da0。

系統配置注冊表System.dat的備份文件爲System.da0,該文件在System.dat文件遭到意外破壞時,將由系統在啓動的時候自動拷貝爲System.dat。這對于並不穩定的Windows 98系統來說是非常重要的,至少給系統提供了一點重要的穩定機制。

3.用戶平台配置的注冊表文件User.dat

在Windows 98的系統目錄c:\windows中有一個隱含、系統、只讀文件User.dat,它也是Windows 98的注冊表的重要組成部分,這個文件具有這樣的作用:

1)它定義用戶優先權,如用戶平台設置,運行級等等。

2)特定于某一個用戶的應用程序的安裝信息,應用程序的使用信息等等。如果你是使用局域網的話,當你在Windows 98中使用網絡時,Us dat必須放在網絡服務器上。對于單機來說,配置了網絡屬性的是保存在本機的系統目錄下的。

在你第一次輸入用戶名和密碼時,Windows 98程序將把這些信息存儲在User.dat中,同時你的Windows 98的系列號也存儲在USER.DAT中。如果用戶在「控制面板」的「密碼」圖標中選擇了「用戶可自定義首選項及桌面設置登錄時,Windows自動啓用個人設置」這個選項後,Windows 98系統將會爲每個用戶創建他自己的User.Dat,並且把它保存爲C:\Windows\Profiles\用戶名\User.dat。在用戶每次登錄後,他自己的User.dat就會被調入到系統中,同時啓動自己相應的程序信息。該文件的作爲類似于Windows 3.x 系統中的Win.ini文件。

4.用戶平台配置的注冊表備份文件User.da0

用戶平台配置的注冊表文件User.dat也有一個備份文件User.da0。當User.dat遭到意外破壞時,將由系統將User.da0拷貝爲User.dat,從而使User.dat得到了恢複。

5.網絡管理注冊表文件Config.pol

Config.pol文件是一個隱含、系統、只讀文件,它主要用于Windows 98的網絡用戶的管理方面的策略。

如果你在Windows 98系統裏安裝了「系統策略編輯器」後,則用戶可以使用Config.pol文件中的限制來決定系統用戶的操作權限如執行程序、修改注冊表等等,這也就是說,系統根據Config.pol文件中的設置對網絡用戶的操作作一些限制,這種限制在Windows 98系統中被稱爲「策略」。

6.網絡管理注冊表備份文件Config.po0

Config.pol也有一個備份文件Config.po0,它是一個隱含、系統、只讀文件。它存放在網絡服務器中。重要是在config.pol損壞時起到恢複作用。

看了注冊表的文件組成,我們再來看看Windows 98系統注冊表Registry與INI文件之間的關系

注冊表Registry與Windows 98中的INI文件有許多相似之處。注冊表中的鍵或子鍵類似于INI文件中的小節,一個鍵值項對應于INI文件中小節裏的一條設置項。

但是我們還是很容易發現他們之間的區別的:首先Registry可以包括子鍵,而INI文件不支持小節的嵌套;其次Registry中的鍵值項還可以包含可執行代碼,而在INI文件中設置項只是簡單的字串;第三是在同一台計算機上有多個用戶,Registry可以存儲每個用戶的特性,而INI文件中卻不可能做到。

如果你的計算機系統是從Windows 3.x上升級到Windows 98的,則安裝程序會從System.ini和Win.ini文件文件中選擇一些系統設置信息放入到注冊表中。不過,爲了與以前的Windows版本上的老式16位應用程序保持兼容,INI文件中的有些設置項不能遷移到Windows 98的注冊表中。

1).注冊表中有關Win.ini的信息

有關Win.ini的信息的所有的子鍵都處于注冊表的HKEY_CURRENT_USER根鍵中。在HKEY_CURRENT_USER子鍵分支下能看到[desktop] GridGranularity Control Panel\desktop ;Pattern Control Panel\desktop ;

TileWallPaper Control Panel\desktop ;

[windows] ScreenSaveActive Control Panel\desktop ;ScreenSaveTimeOut Control Panel\desktop

[Sounds] Sound Event Name AppEvents\Schemes\Apps\.Default\Sound Event Name\.current

[Hearts] Name Software\Microsoft\Windows\CurrentVersion\Applets\Hearts 等在Win.ini文件中的信息

2).注冊表中有關System.ini的信息

有關System.ini的信息的子鍵都處于注冊表的HKEY_LOCAL_MACHINE根鍵中。根據機器的網絡配置,有些系統可能不會出現某些子鍵。我們打開HKEY_LOCAL_MACHINE目錄分支可以看到這些相關的信息。如

[Network]

Comment System\CurrentControlSet\Services\VxD\VNETUP

ComputerName System\CurrentControlSet\Control\ComputerName\ComputerName

EnableSharing

LMAnnounce System\CurrentControlSet\Services\VxD\VNETUP

LogonDomain

Logon Validated

MaintainServerList System\CurrentControlSet\Control\ComputerName\ComputerName

Reconnect

Reshare

Username Network\Logon

Workgroup System\CurrentControlSet\Control\ComputerName\ComputerName

[386Enh] Network

Transport Software\Microsoft\Windows\CurrentVersion\Network\Real Mode Net

在這裏只是簡單的介紹了注冊表與Windows 98文件系統和INI文件之間的一些關系,這對于我們深入認識Windows 98系統並解決相關的問題很有幫助,在後面我們將詳細介紹有關注冊表的知識和更多的修改技巧。

div align="left">

在Windows98的注冊表中,所有的數據都是通過一種樹狀結構以鍵和子鍵的方式組織起來,就象我們的磁盤文件系統的目錄結構一樣。每個鍵都包含了一組特定的信息,每個鍵的鍵名都是和它所包含的信息相關聯的。如果某個鍵包含了子鍵,則在注冊表編輯器窗口中代表這個鍵的文件夾的左邊將有「+」符號,以表示在這個文件夾中有更多的內容。如果這個文件夾被用戶打開了,那麽這個「+」就會變成「-」,我們可以象打開文件夾一樣層層的打開注冊表樹,當然我們有時並不清楚我們要找的鍵在哪個目錄分支下面,我們就得搜索相應的關鍵字。我們來看看注冊表樹最頂層的六個分支所分別代表的含義,這樣我們在修改的時候就可以做到心中有數了。

1.HKEY_CLASSES_ROOT

管理文件系統。根據在Windows 98中安裝的應用程序的擴展名,該根鍵指明其文件類型的名稱,相應打開該文件所要調用的程序等等信息。

2.HKEY_CURRENT_USER

管理系統當前的用戶信息。在這個根鍵中保存了本地計算機中存放的當前登錄的用戶信息,包括用戶登錄用戶名和暫存的密碼。在用戶登錄Windows 98時,其信息從HKEY_USERS中相應的項拷貝到HKEY_CURRENT_USER中。

3.HKEY_LOCAL_MACHINE

管理當前系統硬件配置。在這個根鍵中保存了本地計算機硬件配置數據,此根鍵下的子關鍵字包括在SYSTEM.DAT中,用來提供HKEY_LOCAL_MACHINE所需的信息,或者在遠程計算機中可訪問的一組鍵中。

這個根鍵裏面的許多子鍵與System.ini文件中設置項類似。

4.HKEY_USERS

管理系統的用戶信息。在這個根鍵中保存了存放在本地計算機口令列表中的用戶標識和密碼列表。同時每個用戶的預配置信息都存儲在HKEY_USERS根鍵中。HKEY_USERS是遠程計算機中訪問的根鍵之一。

5.HKEY_CURRENT_CONFIG

管理當前用戶的系統配置。在這個根鍵中保存著定義當前用戶桌面配置(如顯示器等等)的數據,該用戶使用過的文檔列表(MRU),應用程序配置和其他有關當前用戶的Windows 98中文版的安裝的信息。

6.HKEY_DYN_DATA

管理系統運行數據。在這個根鍵中保存了系統在運行時的動態數據,此數據在每次顯示時都是變化的,因此,此根鍵下的信息沒有放在注冊表中。

在Windows98 ⒉岜碇校峭ü妥蛹垂芾砀髦中畔ⅰM保⒃诓岜砝锩娴乃行畔⑹且願髦中問降募迪钍荼4嫦呂礎T谧⒉岜肀嗉鞯撓掖翺谥校4娴畝際歉髦旨迪钍荨<迪钣杉得⑹堇嘈禿圖等糠腫槌桑涓袷轎骸凹得菏堇嘈停杭怠薄?nbsp;這些鍵值項數據可分爲如下三種類型:

1.字符串值(S)

在Windows98的注冊表中,表示文件的描述、硬件的標識等等信息一般都用字符串值。字符串值由字母和數字組成,它的最大長度不能超過255個字符。通過鍵、鍵值就組成了一種鍵值項數據,這就相當于Win.ini、Ssytem.ini文件中每個小節下面的設置行一樣的道理。

2.二進制值(B)

在Windows的注冊表中,二進制值是沒有長度限制的,可以是任意個字節長。在注冊表編輯器中,二進制以十六進制的方式顯示出來。

3.DWORD值(D)

在Windwos98的注冊表中,DWORD值是一個32位(雙字節長)長度的數值。在注冊表編輯器中,系統以十六進制的方式顯示DWORD值。

在修改中這麽多子鍵並不一定都用得作,其中對我們最有用還是 HKEY_LOCAL_MACHINE和 HKEY_USERS這兩個鍵下面的子鍵:

我們先看看 HKEY_LOCAL_MACHINE鍵先面的幾個重要的子鍵及其作用:

1)HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\uninstall 保存Windows98系統中已經安裝了的Windows應用程序卸載信息。

2)HKEY_LOCAL_MACHINE\system\currentControl-Set\control\keyboard Layouts 保存Windows98中鍵盤使用的語言以及各種中文輸入法的信息。

3)HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\explorer\user shell folders 保存計算機中個人文件夾、收藏夾的路徑。

4)HKEY_LOCAL_MACHINE\system\CurrentControl-Set\services\class 保存控制面板-增添硬件設備-設備類型目錄,全面管理你的硬件信息。

5)HKEY_LOCAL_MACHINE\software\microsoft\win-dows\currentVersion\run 保存由控制面板設定的計算機啓動時運行程序的名稱,其圖標顯示在任務條右邊。這也是我們經常修改和用到的一個目錄。

6)HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\Policies\Ratings 保存了IE的「安全」\「分級審查」中設置的口令(數據加密),若遺忘了口令,刪除 Ratings 中的數據即可解決問題。

7)HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\explorer\desktop\nameSpace 保存桌面中特殊的圖標,如回收站、收件箱、網上鄰居等等,你可以把它改得面目全非,人家都認不出來。

先面我們再來看看另外一個重要的鍵HKEY_USERS下面的重要分支:

1)HKEY_USERS\.Default\so..\microsoft\windows\current-Version\explorer\RunMRU保存「開始 \ 運行...」中運行的程序列表信息。清除文檔菜單時該分支將被清空。

2)HKEY_USERS\.Default\software\microsoft\internet explorer\typeURLs保存IE4.0浏覽器地址欄中輸入的URL地址列表信息。清除文檔菜單時它也將被清空。

3)HKEY_USERS\.Default\so..\microsoft\windows\current-Version\explorer\RecentDocs 保存最近使用的十五個(數目是可以修改的)文檔的快捷方式,清除文檔菜單時將被清空。

4)HKEY_USERS\.default\software\microsoft\windows\currentVersion\applets 保存Windows98應用程序的記錄數據信息。

在上面我們大致介紹了Windows98的注冊表的結構和重要的信息,這對于我們修改注冊表是非常有用的。

Windows注冊表,是關系到整個Windows系統「生死存亡」的重要文件,注冊表一但出現問題,輕者導致軟件無法正常運行,重者可能導致整個操作系統崩潰,最後只能重裝操作系統。那麽怎樣才能使注冊表比較安全呢?主要的方法之一就是備份注冊表,然後就是不讓他人隨便修改注冊表。下面就本人在使用電腦時的一些小技巧寫出來與大家一同分享!

1.讓Windows 95具有Windows 98自動備份注冊表的功能

首先在裝有Windows 98的計算機上將Windows目錄下的Scanregw.exe文件和Scanreg.ini文件拷貝到Windows95計算機的Windows目錄中,然後運行Regedit.exe文件修改注冊表,在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run下添加一字符串ScanRegistry並將其鍵值設爲C:\WINDOWS\scanregw.exe/autorun,最後重新啓動計算機即可。備份後的文件是以cab結尾的壓縮文件,存放在Windows目錄下的Sysbckup隱含子目錄下系統默認的文件名是rb000.cab、rb001.cab、rb002.cab、rb003.cab、rb004.cab,使用時可以用解壓軟件打開或用DOS下的Extract命令解開。

2.去掉Windows Me中注冊表的記憶功能

用過Windows Me的用戶可能已經發現Windows Me中的Regedit.exe(修改注冊表的工具)具有記憶功能,它能記住上次用戶修改或查看注冊表的具體地方,有些用戶可能想去掉這個討厭的功能,以便保護個人隱私,經過筆者的試驗將此功能屏蔽了。具體的做法就是將Window98下的Windows目錄中的Regedit.exe拷貝到Windows Me相應的Windows目錄中即可(在拷貝前請將Windows Me中原有的Regedit.exe改名爲Regedit1.exe)。

3.讓Windows 95的DOS方式下能具有Windows 98 DOS方式下的修複、備份和恢複備份注冊表的功能

在Windows 98中的純DOS方式下修複注冊表,使用的命令是Scanreg.exe,但是在Windows 95下的純DOS方式下卻沒有這一功能,經過筆者的試驗,只要將Windows 98系統中Windows目錄下的Command目錄中的Scanreg.exe拷貝到Windows 95的相應目錄即可。修複注冊表的具體命令是canreg /fix,備份注冊表的具體命令是:scanreg /backup,恢複注冊表的具體命令是:scanreg /restore。

4.防止非法用戶使用注冊表編輯器

有時爲了使系統注冊表變得更加安全,可以設法防止別人修改注冊表,具體做法是運行注冊表編輯器在HKEY_CURRENT_USER\Software\Microsoft \Windows\CurrentVersion\Policies\System下新建一個名爲DisableRegistryTools的DWORD值,並將其值改爲「1」即可。若要想重新使用注冊表編輯器,請在任何一種文本編輯器中將下列內容輸入其中並存爲Regtools.reg文件:

REGEDIT4

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

"DisableRegistryTools"=dword00000000(注:在REGEDIT4後面一定要空一行),然後在用鼠標雙擊Regtools.reg文件,並將其導入注冊表即可。有時爲了防止一些電腦高手也使用此種方法解除對注冊表編輯器的限制,就得使.reg文件不能用系統默認的方式打開,具體的修改方法是運行注冊表編輯器將HKEY_CLASSES_ROOT\.reg下的默認值改爲「txtfile」這樣就可對.reg文件進行限制了。這時用戶自己也無法將.reg文件加入注冊表中,同時也沒法使用注冊表編輯器了。經過筆者的進一步研究,只要在事先編輯好的Regtools.reg文件上按住Shift鍵的同時,按下鼠標右鍵選擇打開方式,從中選取Regedit打開就可以了,這樣即可將Regtools.reg導入注冊表。要想真正完全限制用戶,只能借用第三方軟件了。

希望各個朋友能與我共同探討有關電腦使用中的問題。

Windows NT注冊表的組成與分析

和Windows9x一樣,Windows NT也有注冊表。注冊表是保存系統配置的重要數據庫,不過,與Windows 9x相比,它只包含五個部分:

(1)HKEY-LOCAL-MACHINE:用于保存本機系統的信息,包含硬件與操作系統的數據,如驅動程序、系統配置信息等;

(2)HKEY-CLASS-ROOT:用于保存與關聯有關的信息;

(3)HKEY-CURRENT-CONFIG:保存與當前的硬件配置文件有關的數據;

(4)HKEY-CURRENT-USER:保存與當前登錄的用戶有關的環境設置的數據,包含桌面設置、網絡連接等;

(5)HKEY-USERS:保存當用戶登錄時,所有必須載入的用戶配置文件數據,包含缺省的配置文件和登錄者的環境配置文件。

另外,在WINNT中啓動注冊表編輯器,應該執行"開始/運行"命令,在"運行"對話框中輸入REGEDIT32.EXE(而不是Windows 9x的REDEDIT.exe),並確定。

Windows Me注冊表的組成與分析

與Win 98不同,WinMe的注冊表是由Windows目錄下的Classes.dat、User.dat(用戶配置信息)和System.dat(系統配置信息)三個二進制文件組成的,其"項值"與Win 98一樣有字串值(REG_SZ)、二進制值(REG_BINARY)、雙字節值(REG_DWORD)三種類型。

與Win 98相同,WinMe也有個注冊表編輯器Windows\Regedit.exe(見圖1),用來搜索或修改注冊表。

WinMe注冊表編輯器左邊窗口中,最上面一層是"我的電腦",下面有6個分支:HKEY_CLASSES_ROOT、HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE、HKEY_USERS、HKEY_CURRENT_CONFIG、HKEY_DYN_DATA,各分支的功能簡要描述見表1。

分支名 功 能

hkey_classes_root 所有用戶都要使用該分支,存放可打開文件的類型、擴展名以及與應用程序的關聯等

hkey_current_user 保存當前登錄用戶的系統設置、控制面板選項、映射的網絡驅動器等?

hkey_local_machine 保存機器上的所有硬件信息、本機上安裝的應用軟件信息

hkey_users 保存所有用戶的信息,例如安裝的應用軟件、自定義桌面等

hkey_current_config 計算機上連接的硬件(例如顯示器、打印機等)配置數據

hkey_dyn_data 保存系統性能和即插即用狀態的動態信息

WinMe注冊表六大根鍵的功能簡要描述表

與Win 98的Regedit相比,WinMe的注冊表編輯器功能有所增加,表現在:

1.具有記憶功能,每次打開它時,左邊窗口中的樹形主鍵分支會自動展開,將焦點定位在最近一次修改過的位置上;

2.選單欄中新增類似IE的收藏選單,提供收藏夾功能(添加、刪除收藏夾),可讓您快速定位到需要修改的主鍵位置。

假如需要經常檢查系統啓動時自動調入了哪些程序,可以打開HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run和

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run,用Win 98的注冊表編輯器找這兩個項,需要多次雙擊分支,打開一級又一級的注冊表項,在WinMe中,這種操作就要輕松多了,只要將以上兩項添加到注冊表編輯器的收藏夾中,使用時如同用IE那樣,打開收藏項即可。添加到收藏夾的方法是:找到要收藏的注冊表項,執行選單上的"收藏/添加到收藏夾",彈出對話框,給該收藏項命名,按"確定"。

認識Windows2000注冊表

Windows 2000 將它的配置信息存儲在名爲注冊表的數據庫中,其中包含了每個計算機用戶的配置文件,以及有關系統硬件、已安裝的程序和屬性設置等信息,Windows 2000 在運行過程中要一直引用這些信息。注冊表是以二進制形式存儲在硬盤上,錯誤地編輯注冊表可能會嚴重損壞系統。所以,在更改注冊表之前,強烈建議備份注冊表信息。爲了防止在修改注冊表的時候發生致命錯誤,有必要了解一下注冊表文件的備份和恢複方法。除此之外,爲了研究注冊表的結構,還可以將注冊表中的某一主鍵或子鍵保存爲文本文件,或者打印出來,這項工作同樣需要了解注冊表文件的導入與導出方法。

一、Windows 2000 與Windows98的注冊表的比較

大家也許對Windows98的注冊表很熟悉,但是Windows2000畢竟和Windows98不同。本文將以Windows 2000 Professional版本爲例,向大家介紹一下Winsows2000的注冊表。

首先要運行注冊表編輯器。你可以選擇菜單"開始/運行",在彈出的運行對話框中輸入"regedit",再單擊"確定"按鈕來啓動類似于Windows 9X的注冊表編輯器(如圖1)。可以看到,它的內容和Win98相比,去掉了HKEY_DYN_DATA根鍵。只有KEY_LOCAL_MACHINE、HKEY_CLASSES_ROOT、HKEY_CURRENT_CONFIG、HKEY_USERS、HKEY_CURRENT_USER五個根鍵。它比Windows 9X下的注冊表編輯器增加了許多功能。首先,在右邊窗口的鍵值詳細列表中增加了類型列,使我們可以很直觀地了解鍵值的類型,如:如REG_SZ爲字符串值,REG_DWORD爲DWORD值,REG_BINARY爲二進制值等;其次,在菜單欄中增加了類似IE的收藏菜單,提供了收藏夾功能,它可以方便你快速定位到需要經常修改的主鍵位置;第三,它還提供了記憶功能,即每次當你打開它時,左邊窗口中的樹形主鍵分支會自動展開,把焦點定位到你最近一次修改過的位置。

除了上述類似于Windows 9X的注冊表編輯器外,Windows 2000還提供了一個新版的注冊表編輯器(注意:下面我們介紹的注冊表修改都是在其中進行),位置在D:\WINNT\system32\regedt32.exe(假設D爲Windows 2000的安裝盤符),運行它,主界面如圖2所示。

這個新版注冊表編輯器除了具備原來Windows 9X注冊表編輯器全部功能外,最重要的是增加了"安全"菜單,也就是說,管理員可以給注冊表項指派"權限",這一功能在NT中早就采用了,但在面向單機的操作系統中還是首次提供。這使得注冊表的安全性大大提高。下面以允許用戶訪問"控制面板"注冊表項但不保存對它的任何修改爲例,介紹一下如何指派"權限"。首先在[HKEY_CURRENT_USER]窗口單擊"Control Panel"主鍵,然後選擇"安全"菜單中的"權限",在"Control Panel的權限"對話框中選擇用戶,再選中"讀取"右邊的"允許"複選框,最後單擊"確定"即可(如圖3)。

該注冊表編輯器擁有多個子窗口(如圖4),每個子窗口代表本地計算機上的一個預定義項(即五大根鍵)。這個注冊表編輯器不僅可以顯示編輯本地計算機的注冊表項,還可以訪問遠程計算機的注冊表,當訪問遠程計算機的注冊表時,只可使用兩個預定義項[HKEY_USERS]和[HKEY_LOCAL_MACHINE]。

下面簡要說明一下這些預定義項的含義:

(一)、KEY_LOCAL_MACHINE

HKEY_LOCAL_MACHINE根鍵中存放的是用來控制系統和軟件的設置。由于這些設置是針對那些使用Windows系統的用戶而設置的,是一個公共配置信息,所以它與具體用戶無關。該根鍵下面包含了五個子鍵:

1.HARDWARE子鍵

該子鍵包含了系統使用的浮點處理器、串口等有關信息。在它下面存放一些有關超文本終端、數字協處理器和串口等信息。HARDWARE子鍵又包括三個子鍵:

★DESCRIPTION:用于存放有關系統信息;

★DEVICEMAP:用于存放設備映像;

★RESOURCEMAP;

2.SAM子鍵

該子鍵已經被系統保護起來,我們不可能看到裏面的內容。

3.SECURITY子鍵

該子鍵位于HKEY_LOCAL_MACHINE\Security分支上,該分支只是爲將來的高級功能而預留的。

4.SOFTWARE子鍵

該子鍵中保留的是所有已安裝的32位應用程序的信息。各個程序的控制信息分別安裝在相應的子鍵中。由于不同的機器安裝的應用程序互不相同,因此這個子鍵下面的子鍵信息會有很大的差異。

5.SYSTEM子鍵

該子鍵存放的是啓動時所使用的信息和修複系統時所需的信息,其中包括各個驅動程序的描述信息和配置信息等。System子鍵下面有一個CurrentControlSet子鍵,系統在這個子鍵下保存了當前的驅動程序控制集的信息。

(二)、HKEY_CLASSES_ROOT根鍵

在Windows 2000中對HKEY_CLASSES_ROOT主鍵做了改進。HKEY_CLASSES_ROOT主鍵與當前注冊使用的用戶有關,它實際上是HKEY_CURRENT_USER\SOFTWARE\Classes和HKEY_LOCAL_MACHINE\SOFTWARE\ Classes的交集。如果兩者的內容有沖突,則HKEY_CURRENT_USER\SOFTWARE\Classes優先。這個新特性在Windows 2000中叫做「單用戶類注冊」(per-user class registration)。單用戶類注冊有如下好處:

1.同一台計算機上的不同用戶可以分別定制不同的Windows 2000

例如,用戶甲安裝了ACDSee圖形軟件,將BMP文件與ACDSee圖形軟件建立關聯。而用戶乙安裝了PhotoShop圖形軟件,將BMP文件與PhotoShop圖形軟件建立關聯,當用戶乙雙擊BMP文件時,會自動調用PhotoShop圖形軟件,而不會調用用戶甲安裝的ACDSee圖形軟件。

2.提高了注冊表的安全性

使用單用戶類注冊,各個用戶有自己的HKEY_CLASSES_ROOT,不再需要通過修改HKEY_LOCAL_MACGINE/SOFTWARE/classes來滿足自己的需求,這樣系統管理員可以提高HKEY_LOCAL_MACGINE/SOFTWARE/classes的權限,禁止普通用戶修改它,而各個用戶之間更是不能修改對方的HKEY_CLASSES_ROOT。

3.支持漫遊類注冊

在Windows 2000中,提供了一個叫做IntelliMirror的功能。通過在服務器和客戶端同時使用IntelliMirror,用戶的數據、應用程序和設置在所有的環境中都可以跟隨用戶漫遊,這當然包括了用戶的配置文件。當用戶登錄到域中任意一台運行Windows 2000的計算機時,首先要通過目錄服務中的身份驗證,身份驗證通過後,保存在服務器上的用戶配置文件(包括注冊表中的HKEY_CLASSES_ROOT)將複制到該計算機上,好像用戶在本地計算機登錄一樣。HKEY_CLASSES_ROOT根鍵中記錄的是Windows操作系統中所有數據文件的信息,主要記錄不同文件的文件名後綴和與之對應的應用程序。當用戶雙擊一個文檔時,系統可以通過這些信息啓動相應的應用程序。HKEY_CLASSES_ROOT根鍵中存放的信息與HKEY_LOCAL_MACHINE\Software\Classes分支中存放的信息是一致的。

HKEY_CLASSES_ROOT根鍵由多個子鍵組成,具體可分爲兩種:一種是已經注冊的各類文件的擴展名,一種是各種文件類型的有關信息。

(三)、HKEY_CURRENT_CONFIG根鍵

如果你在Windows中設置了兩套或者兩套以上的硬件配置文件(Hardware Configuration file),則在系統啓動時將會讓用戶選擇使用哪套配置文件。而HKEY_CURRENT_CONFIG根鍵中存放的正是當前配置文件的所有信息。

(四)、HKEY_USERS根鍵

HKEY_USERS根鍵中保存的是默認用戶(.DEFAULT)、當前登錄用戶與軟件(Software)的信息。它的下面有三個子鍵:.DEFAULT子鍵、S-1-5-21-1229272821-436374067-1060284298-1000和S-1-5-21-1229272821-436374069-1060284298-1000_Classes三個子鍵,其中最重要的是.DEFAULT子鍵。

.DEFAULT子鍵的配置是針對未來將會被創建的新用戶的。新用戶根據默認用戶的配置信息來生成自己的配置文件,該配置文件包括環境、屏幕、聲音等多種信息。

(五)、HKEY_CURRENT_USER根鍵

HKEY_CURRENT_USER根鍵中保存的信息(當前用戶的子鍵信息)與HKEY_USERS\.Default分支中所保存的信息是相同的。任何對HKEY_CURRENT_USER根鍵中的信息的修改都會導致對HKEY_USERS\.Default中子鍵信息的修改,反之也是如此。

二、Windows 2000的用戶配置文件

默認情況下,大多數配置單元文件(DEFAULT、SAM、SECURITY、SOFTWARE 和 SYSTEM)均存儲在%SystemRoot%\System32\Config文件夾中。而每個計算機用戶的用戶配置文件信息(包括Ntuser.dat 和Ntuser.dat.log)的位置,取決于Windows 2000是全新安裝還是從Windows 95/98 或Windows NT升級安裝。在全新安裝以及從Windows 95/98升級安裝的情況下,Ntuser.dat 和Ntuser.dat.log文件存儲在%SystemDrive%\Documents and Settings\username文件夾中。在從Windows NT升級的安裝中,Ntuser.dat 和Ntuser.dat.log文件存儲在%SystemRroot%\Profiles\username文件夾中。

Windows 2000注冊表中的每個配置單元均與一組標准文件相關聯。如圖5顯示運行 Windows 2000 的計算機的標准配置單元和文件。

由于注冊表是樹形結構的,所以可以將注冊表裏的內容形象地描述爲樹枝和樹葉。樹枝下可以有多個樹枝,也可以有多個樹葉。這個樹枝,我們把它叫做「項」,樹葉呢,叫做「值項」。值項包括三部分:值的名稱、值的數據類型以及值本身。

關于上次的MS-DOS,一個詞,麻煩,但是並不難!! 這次是注冊表,大蝦們別罵我呀,菜鳥好好看!!! 這次講的是Windows注冊表,有機會講講DOS底下搞搞注冊表,極有趣,但是,唉,煩煩煩!!! p align="left"> PC機及其操作系統的一個特點就是允許用戶按照自己的要求對計算機系統的硬件和軟件進行各種各樣的配置。早期的圖形操作系統,如Win3.x中,對軟硬件工作環境的配置是通過對擴展名爲.ini的文件進行修改來完成的,但INI文件管理起來很不方便,因爲每種設備或應用程序都得有自己的INI文件,並且在網絡上難以實現遠程訪問。 爲了克服上述這些問題,在Windows 95及其後繼版本中,采用了一種叫做「注冊表」的數據庫來統一進行管理,將各種信息資源集中起來並存儲各種配置信息。按照這一原則,Windows各版本中都采用了將應用程序和計算機系統全部配置信息容納在一起的注冊表,用來管理應用程序和文件的關聯、硬件設備說明、狀態屬性以及各種狀態信息和數據等。 與INI文件不同的是: 1.注冊表采用了二進制形式登錄數據; 2.注冊表支持子鍵,各級子關鍵字都有自己的「鍵值」; 3.注冊表中的鍵值項可以包含可執行代碼,而不是簡單的字串; 4.在同一台計算機上,注冊表可以存儲多個用戶的特性。 注冊表的特點有: 1.注冊表允許對硬件、系統參數、應用程序和設備驅動程序進行跟蹤配置,這使得修改某些設置後不用重新啓動成爲可能。 2.注冊表中登錄的硬件部分數據可以支持高版本Windows的即插即用特性。當Windows檢測到機器上的新設備時,就把有關數據保存到注冊表中,另外,還可以避免新設備與原有設備之間的資源沖突。 3.管理人員和用戶通過注冊表可以在網絡上檢查系統的配置和設置,使得遠程管理得以實現。 我們在前面已經詳細介紹了注冊表的由來與基本結構。發現注冊表比較複雜,但又安排得非常有條理,能有效地提高工作效率,爲系統的維護提供了必要條件。由于注冊表是一個二進制的配置數據庫文件(Windows的命根子),因而,用戶無法直接存取注冊表。爲了讓高級用戶能夠編輯注冊表,Windows2000提供了注冊表編輯器「c」和「Regedt32」。對這種只使用Windows提供的注冊表編輯器進行編輯的操作。 編輯器在安裝Windows時已經被安裝到硬盤中了,但是並未在「附件」程序組中建有快捷方式。用戶如果需要使用注冊表編輯器,可以在「運行」對話框內輸入Regedt32或Regedit即可打開注冊表編輯器, 或者在「命令提示符」中執行Regedt32.exe也可以進入注冊表編輯器, 後面的內容將介紹注冊表編輯器的使用方法,如創建刪除主鍵、子鍵以及鍵值等,同時還將給出一些修改注冊表的實例。 首先我們來看看注冊表與Windows 98文件系統的關系。 Windows 98的注冊表Registry由以下的六個文件組成:   1.系統配置的注冊表文件System.dat   在Windows 9x的系統目錄c:\windows中有一個隱含、系統、只讀文件System.dat,它是Windows 98注冊表的一部分,該文件具有如下作用:   1)描述單一的PC配置。   2) 描述安裝在單一PC上的消息。   3)安裝即插即用類型的設備硬件配置,如設備的I/O地址、IRQ級和DMA通道等等的情況。這個文件在Windows 98的網絡運行狀態時,保存在本地的工作站或本地PC機系統中。在Windows 98的安裝期間,Setup將首先檢查你的計算機上已經安裝了的硬件設備,然後在System.dat中建立適當的配置項。若從現有的Windows 3.x中升級安裝Windows 98,則Setup將把現有的System.ini 、Reg.dat文件中的部分設置項拷貝到System.dat中,以保持系統的設置。   我們經常使用「控制面板」的「系統」圖標來修改系統的硬件設備和配置情況,這個時候我們進行的操作都是從System.dat中讀取的系統屬性設置。這個文件的作用很類似于Windows 3.x中的System.ini文件。   2.系統配置的注冊表備份文件System.da0   Windows 98的注冊表的一個非常重要的特點就是可靠性強,穩定不易損壞。這就需要靠注冊表的備份文件system.da0。   系統配置注冊表System.dat的備份文件爲System.da0,該文件在System.dat文件遭到意外破壞時,將由系統在啓動的時候自動拷貝爲System.dat。這對于並不穩定的Windows 98系統來說是非常重要的,至少給系統提供了一點重要的穩定機制。   3.用戶平台配置的注冊表文件User.dat   在Windows 98的系統目錄c:\windows中有一個隱含、系統、只讀文件User.dat,它也是Windows 98的注冊表的重要組成部分,這個文件具有這樣的作用:   1)它定義用戶優先權,如用戶平台設置,運行級等等。   2)特定于某一個用戶的應用程序的安裝信息,應用程序的使用信息等等。如果你是使用局域網的話,當你在Windows 98中使用網絡時,Us dat必須放在網絡服務器上。對于單機來說,配置了網絡屬性的是保存在本機的系統目錄下的。   在你第一次輸入用戶名和密碼時,Windows 98程序將把這些信息存儲在User.dat中,同時你的Windows 98的系列號也存儲在USER.DAT中。如果用戶在「控制面板」的「密碼」圖標中選擇了「用戶可自定義首選項及桌面設置登錄時,Windows自動啓用個人設置」這個選項後,Windows 98系統將會爲每個用戶創建他自己的User.Dat,並且把它保存爲C:\Windows\Profiles\用戶名\User.dat。在用戶每次登錄後,他自己的User.dat就會被調入到系統中,同時啓動自己相應的程序信息。該文件的作爲類似于Windows 3.x 系統中的Win.ini文件。   4.用戶平台配置的注冊表備份文件User.da0   用戶平台配置的注冊表文件User.dat也有一個備份文件User.da0。當User.dat遭到意外破壞時,將由系統將User.da0拷貝爲User.dat,從而使User.dat得到了恢複。   5.網絡管理注冊表文件Config.pol   Config.pol文件是一個隱含、系統、只讀文件,它主要用于Windows 98的網絡用戶的管理方面的策略。   如果你在Windows 98系統裏安裝了「系統策略編輯器」後,則用戶可以使用Config.pol文件中的限制來決定系統用戶的操作權限如執行程序、修改注冊表等等,這也就是說,系統根據Config.pol文件中的設置對網絡用戶的操作作一些限制,這種限制在Windows 98系統中被稱爲「策略」。   6.網絡管理注冊表備份文件Config.po0   Config.pol也有一個備份文件Config.po0,它是一個隱含、系統、只讀文件。它存放在網絡服務器中。重要是在config.pol損壞時起到恢複作用。 看了注冊表的文件組成,我們再來看看Windows 98系統注冊表Registry與INI文件之間的關系 注冊表Registry與Windows 98中的INI文件有許多相似之處。注冊表中的鍵或子鍵類似于INI文件中的小節,一個鍵值項對應于INI文件中小節裏的一條設置項。   但是我們還是很容易發現他們之間的區別的:首先Registry可以包括子鍵,而INI文件不支持小節的嵌套;其次Registry中的鍵值項還可以包含可執行代碼,而在INI文件中設置項只是簡單的字串;第三是在同一台計算機上有多個用戶,Registry可以存儲每個用戶的特性,而INI文件中卻不可能做到。   如果你的計算機系統是從Windows 3.x上升級到Windows 98的,則安裝程序會從System.ini和Win.ini文件文件中選擇一些系統設置信息放入到注冊表中。不過,爲了與以前的Windows版本上的老式16位應用程序保持兼容,INI文件中的有些設置項不能遷移到Windows 98的注冊表中。 1).注冊表中有關Win.ini的信息   有關Win.ini的信息的所有的子鍵都處于注冊表的HKEY_CURRENT_USER根鍵中。在HKEY_CURRENT_USER子鍵分支下能看到[desktop] GridGranularity Control Panel\desktop ;Pattern Control Panel\desktop ; TileWallPaper Control Panel\desktop ; [windows] ScreenSaveActive Control Panel\desktop ;ScreenSaveTimeOut Control Panel\desktop [Sounds] Sound Event Name AppEvents\Schemes\Apps\.Default\Sound Event Name\.current [Hearts] Name Software\Microsoft\Windows\CurrentVersion\Applets\Hearts 等在Win.ini文件中的信息 2).注冊表中有關System.ini的信息   有關System.ini的信息的子鍵都處于注冊表的HKEY_LOCAL_MACHINE根鍵中。根據機器的網絡配置,有些系統可能不會出現某些子鍵。我們打開HKEY_LOCAL_MACHINE目錄分支可以看到這些相關的信息。如 [Network] Comment System\CurrentControlSet\Services\VxD\VNETUP ComputerName System\CurrentControlSet\Control\ComputerName\ComputerName EnableSharing LMAnnounce System\CurrentControlSet\Services\VxD\VNETUP LogonDomain Logon Validated MaintainServerList System\CurrentControlSet\Control\ComputerName\ComputerName Reconnect Reshare Username Network\Logon Workgroup System\CurrentControlSet\Control\ComputerName\ComputerName [386Enh] Network Transport Software\Microsoft\Windows\CurrentVersion\Network\Real Mode Net 在這裏只是簡單的介紹了注冊表與Windows 98文件系統和INI文件之間的一些關系,這對于我們深入認識Windows 98系統並解決相關的問題很有幫助,在後面我們將詳細介紹有關注冊表的知識和更多的修改技巧。 div align="left">   在Windows98的注冊表中,所有的數據都是通過一種樹狀結構以鍵和子鍵的方式組織起來,就象我們的磁盤文件系統的目錄結構一樣。每個鍵都包含了一組特定的信息,每個鍵的鍵名都是和它所包含的信息相關聯的。如果某個鍵包含了子鍵,則在注冊表編輯器窗口中代表這個鍵的文件夾的左邊將有「+」符號,以表示在這個文件夾中有更多的內容。如果這個文件夾被用戶打開了,那麽這個「+」就會變成「-」,我們可以象打開文件夾一樣層層的打開注冊表樹,當然我們有時並不清楚我們要找的鍵在哪個目錄分支下面,我們就得搜索相應的關鍵字。我們來看看注冊表樹最頂層的六個分支所分別代表的含義,這樣我們在修改的時候就可以做到心中有數了。  1.HKEY_CLASSES_ROOT   管理文件系統。根據在Windows 98中安裝的應用程序的擴展名,該根鍵指明其文件類型的名稱,相應打開該文件所要調用的程序等等信息。  2.HKEY_CURRENT_USER   管理系統當前的用戶信息。在這個根鍵中保存了本地計算機中存放的當前登錄的用戶信息,包括用戶登錄用戶名和暫存的密碼。在用戶登錄Windows 98時,其信息從HKEY_USERS中相應的項拷貝到HKEY_CURRENT_USER中。  3.HKEY_LOCAL_MACHINE   管理當前系統硬件配置。在這個根鍵中保存了本地計算機硬件配置數據,此根鍵下的子關鍵字包括在SYSTEM.DAT中,用來提供HKEY_LOCAL_MACHINE所需的信息,或者在遠程計算機中可訪問的一組鍵中。   這個根鍵裏面的許多子鍵與System.ini文件中設置項類似。  4.HKEY_USERS   管理系統的用戶信息。在這個根鍵中保存了存放在本地計算機口令列表中的用戶標識和密碼列表。同時每個用戶的預配置信息都存儲在HKEY_USERS根鍵中。HKEY_USERS是遠程計算機中訪問的根鍵之一。  5.HKEY_CURRENT_CONFIG   管理當前用戶的系統配置。在這個根鍵中保存著定義當前用戶桌面配置(如顯示器等等)的數據,該用戶使用過的文檔列表(MRU),應用程序配置和其他有關當前用戶的Windows 98中文版的安裝的信息。  6.HKEY_DYN_DATA   管理系統運行數據。在這個根鍵中保存了系統在運行時的動態數據,此數據在每次顯示時都是變化的,因此,此根鍵下的信息沒有放在注冊表中。   在Windows98 ⒉岜碇校峭ü妥蛹垂芾砀髦中畔ⅰM保⒃诓岜砝锩娴乃行畔⑹且願髦中問降募迪钍荼4嫦呂礎T谧⒉岜肀嗉鞯撓掖翺谥校4娴畝際歉髦旨迪钍荨<迪钣杉得⑹堇嘈禿圖等糠腫槌桑涓袷轎骸凹得菏堇嘈停杭怠薄?nbsp;這些鍵值項數據可分爲如下三種類型:   1.字符串值(S)   在Windows98的注冊表中,表示文件的描述、硬件的標識等等信息一般都用字符串值。字符串值由字母和數字組成,它的最大長度不能超過255個字符。通過鍵、鍵值就組成了一種鍵值項數據,這就相當于Win.ini、Ssytem.ini文件中每個小節下面的設置行一樣的道理。   2.二進制值(B)   在Windows的注冊表中,二進制值是沒有長度限制的,可以是任意個字節長。在注冊表編輯器中,二進制以十六進制的方式顯示出來。   3.DWORD值(D)   在Windwos98的注冊表中,DWORD值是一個32位(雙字節長)長度的數值。在注冊表編輯器中,系統以十六進制的方式顯示DWORD值。 在修改中這麽多子鍵並不一定都用得作,其中對我們最有用還是 HKEY_LOCAL_MACHINE和 HKEY_USERS這兩個鍵下面的子鍵: 我們先看看 HKEY_LOCAL_MACHINE鍵先面的幾個重要的子鍵及其作用:   1)HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\uninstall 保存Windows98系統中已經安裝了的Windows應用程序卸載信息。 2)HKEY_LOCAL_MACHINE\system\currentControl-Set\control\keyboard Layouts 保存Windows98中鍵盤使用的語言以及各種中文輸入法的信息。 3)HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\explorer\user shell folders 保存計算機中個人文件夾、收藏夾的路徑。   4)HKEY_LOCAL_MACHINE\system\CurrentControl-Set\services\class 保存控制面板-增添硬件設備-設備類型目錄,全面管理你的硬件信息。   5)HKEY_LOCAL_MACHINE\software\microsoft\win-dows\currentVersion\run 保存由控制面板設定的計算機啓動時運行程序的名稱,其圖標顯示在任務條右邊。這也是我們經常修改和用到的一個目錄。   6)HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\Policies\Ratings 保存了IE的「安全」\「分級審查」中設置的口令(數據加密),若遺忘了口令,刪除 Ratings 中的數據即可解決問題。   7)HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\explorer\desktop\nameSpace 保存桌面中特殊的圖標,如回收站、收件箱、網上鄰居等等,你可以把它改得面目全非,人家都認不出來。   先面我們再來看看另外一個重要的鍵HKEY_USERS下面的重要分支:   1)HKEY_USERS\.Default\so..\microsoft\windows\current-Version\explorer\RunMRU保存「開始 \ 運行...」中運行的程序列表信息。清除文檔菜單時該分支將被清空。 2)HKEY_USERS\.Default\software\microsoft\internet explorer\typeURLs保存IE4.0浏覽器地址欄中輸入的URL地址列表信息。清除文檔菜單時它也將被清空。   3)HKEY_USERS\.Default\so..\microsoft\windows\current-Version\explorer\RecentDocs 保存最近使用的十五個(數目是可以修改的)文檔的快捷方式,清除文檔菜單時將被清空。   4)HKEY_USERS\.default\software\microsoft\windows\currentVersion\applets 保存Windows98應用程序的記錄數據信息。      在上面我們大致介紹了Windows98的注冊表的結構和重要的信息,這對于我們修改注冊表是非常有用的。 Windows注冊表,是關系到整個Windows系統「生死存亡」的重要文件,注冊表一但出現問題,輕者導致軟件無法正常運行,重者可能導致整個操作系統崩潰,最後只能重裝操作系統。那麽怎樣才能使注冊表比較安全呢?主要的方法之一就是備份注冊表,然後就是不讓他人隨便修改注冊表。下面就本人在使用電腦時的一些小技巧寫出來與大家一同分享! 1.讓Windows 95具有Windows 98自動備份注冊表的功能 首先在裝有Windows 98的計算機上將Windows目錄下的Scanregw.exe文件和Scanreg.ini文件拷貝到Windows95計算機的Windows目錄中,然後運行Regedit.exe文件修改注冊表,在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run下添加一字符串ScanRegistry並將其鍵值設爲C:\WINDOWS\scanregw.exe/autorun,最後重新啓動計算機即可。備份後的文件是以cab結尾的壓縮文件,存放在Windows目錄下的Sysbckup隱含子目錄下系統默認的文件名是rb000.cab、rb001.cab、rb002.cab、rb003.cab、rb004.cab,使用時可以用解壓軟件打開或用DOS下的Extract命令解開。 2.去掉Windows Me中注冊表的記憶功能 用過Windows Me的用戶可能已經發現Windows Me中的Regedit.exe(修改注冊表的工具)具有記憶功能,它能記住上次用戶修改或查看注冊表的具體地方,有些用戶可能想去掉這個討厭的功能,以便保護個人隱私,經過筆者的試驗將此功能屏蔽了。具體的做法就是將Window98下的Windows目錄中的Regedit.exe拷貝到Windows Me相應的Windows目錄中即可(在拷貝前請將Windows Me中原有的Regedit.exe改名爲Regedit1.exe)。 3.讓Windows 95的DOS方式下能具有Windows 98 DOS方式下的修複、備份和恢複備份注冊表的功能 在Windows 98中的純DOS方式下修複注冊表,使用的命令是Scanreg.exe,但是在Windows 95下的純DOS方式下卻沒有這一功能,經過筆者的試驗,只要將Windows 98系統中Windows目錄下的Command目錄中的Scanreg.exe拷貝到Windows 95的相應目錄即可。修複注冊表的具體命令是canreg /fix,備份注冊表的具體命令是:scanreg /backup,恢複注冊表的具體命令是:scanreg /restore。 4.防止非法用戶使用注冊表編輯器 有時爲了使系統注冊表變得更加安全,可以設法防止別人修改注冊表,具體做法是運行注冊表編輯器在HKEY_CURRENT_USER\Software\Microsoft \Windows\CurrentVersion\Policies\System下新建一個名爲DisableRegistryTools的DWORD值,並將其值改爲「1」即可。若要想重新使用注冊表編輯器,請在任何一種文本編輯器中將下列內容輸入其中並存爲Regtools.reg文件: REGEDIT4 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System "DisableRegistryTools"=dword00000000(注:在REGEDIT4後面一定要空一行),然後在用鼠標雙擊Regtools.reg文件,並將其導入注冊表即可。有時爲了防止一些電腦高手也使用此種方法解除對注冊表編輯器的限制,就得使.reg文件不能用系統默認的方式打開,具體的修改方法是運行注冊表編輯器將HKEY_CLASSES_ROOT\.reg下的默認值改爲「txtfile」這樣就可對.reg文件進行限制了。這時用戶自己也無法將.reg文件加入注冊表中,同時也沒法使用注冊表編輯器了。經過筆者的進一步研究,只要在事先編輯好的Regtools.reg文件上按住Shift鍵的同時,按下鼠標右鍵選擇打開方式,從中選取Regedit打開就可以了,這樣即可將Regtools.reg導入注冊表。要想真正完全限制用戶,只能借用第三方軟件了。 希望各個朋友能與我共同探討有關電腦使用中的問題。 Windows NT注冊表的組成與分析   和Windows9x一樣,Windows NT也有注冊表。注冊表是保存系統配置的重要數據庫,不過,與Windows 9x相比,它只包含五個部分:   (1)HKEY-LOCAL-MACHINE:用于保存本機系統的信息,包含硬件與操作系統的數據,如驅動程序、系統配置信息等;   (2)HKEY-CLASS-ROOT:用于保存與關聯有關的信息;   (3)HKEY-CURRENT-CONFIG:保存與當前的硬件配置文件有關的數據;   (4)HKEY-CURRENT-USER:保存與當前登錄的用戶有關的環境設置的數據,包含桌面設置、網絡連接等;   (5)HKEY-USERS:保存當用戶登錄時,所有必須載入的用戶配置文件數據,包含缺省的配置文件和登錄者的環境配置文件。   另外,在WINNT中啓動注冊表編輯器,應該執行"開始/運行"命令,在"運行"對話框中輸入REGEDIT32.EXE(而不是Windows 9x的REDEDIT.exe),並確定。   Windows Me注冊表的組成與分析   與Win 98不同,WinMe的注冊表是由Windows目錄下的Classes.dat、User.dat(用戶配置信息)和System.dat(系統配置信息)三個二進制文件組成的,其"項值"與Win 98一樣有字串值(REG_SZ)、二進制值(REG_BINARY)、雙字節值(REG_DWORD)三種類型。   與Win 98相同,WinMe也有個注冊表編輯器Windows\Regedit.exe(見圖1),用來搜索或修改注冊表。   WinMe注冊表編輯器左邊窗口中,最上面一層是"我的電腦",下面有6個分支:HKEY_CLASSES_ROOT、HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE、HKEY_USERS、HKEY_CURRENT_CONFIG、HKEY_DYN_DATA,各分支的功能簡要描述見表1。 分支名 功 能 hkey_classes_root 所有用戶都要使用該分支,存放可打開文件的類型、擴展名以及與應用程序的關聯等 hkey_current_user 保存當前登錄用戶的系統設置、控制面板選項、映射的網絡驅動器等? hkey_local_machine 保存機器上的所有硬件信息、本機上安裝的應用軟件信息 hkey_users 保存所有用戶的信息,例如安裝的應用軟件、自定義桌面等 hkey_current_config 計算機上連接的硬件(例如顯示器、打印機等)配置數據 hkey_dyn_data 保存系統性能和即插即用狀態的動態信息                WinMe注冊表六大根鍵的功能簡要描述表   與Win 98的Regedit相比,WinMe的注冊表編輯器功能有所增加,表現在:   1.具有記憶功能,每次打開它時,左邊窗口中的樹形主鍵分支會自動展開,將焦點定位在最近一次修改過的位置上;   2.選單欄中新增類似IE的收藏選單,提供收藏夾功能(添加、刪除收藏夾),可讓您快速定位到需要修改的主鍵位置。   假如需要經常檢查系統啓動時自動調入了哪些程序,可以打開HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run和   HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run,用Win 98的注冊表編輯器找這兩個項,需要多次雙擊分支,打開一級又一級的注冊表項,在WinMe中,這種操作就要輕松多了,只要將以上兩項添加到注冊表編輯器的收藏夾中,使用時如同用IE那樣,打開收藏項即可。添加到收藏夾的方法是:找到要收藏的注冊表項,執行選單上的"收藏/添加到收藏夾",彈出對話框,給該收藏項命名,按"確定"。   認識Windows2000注冊表   Windows 2000 將它的配置信息存儲在名爲注冊表的數據庫中,其中包含了每個計算機用戶的配置文件,以及有關系統硬件、已安裝的程序和屬性設置等信息,Windows 2000 在運行過程中要一直引用這些信息。注冊表是以二進制形式存儲在硬盤上,錯誤地編輯注冊表可能會嚴重損壞系統。所以,在更改注冊表之前,強烈建議備份注冊表信息。爲了防止在修改注冊表的時候發生致命錯誤,有必要了解一下注冊表文件的備份和恢複方法。除此之外,爲了研究注冊表的結構,還可以將注冊表中的某一主鍵或子鍵保存爲文本文件,或者打印出來,這項工作同樣需要了解注冊表文件的導入與導出方法。   一、Windows 2000 與Windows98的注冊表的比較   大家也許對Windows98的注冊表很熟悉,但是Windows2000畢竟和Windows98不同。本文將以Windows 2000 Professional版本爲例,向大家介紹一下Winsows2000的注冊表。   首先要運行注冊表編輯器。你可以選擇菜單"開始/運行",在彈出的運行對話框中輸入"regedit",再單擊"確定"按鈕來啓動類似于Windows 9X的注冊表編輯器(如圖1)。可以看到,它的內容和Win98相比,去掉了HKEY_DYN_DATA根鍵。只有KEY_LOCAL_MACHINE、HKEY_CLASSES_ROOT、HKEY_CURRENT_CONFIG、HKEY_USERS、HKEY_CURRENT_USER五個根鍵。它比Windows 9X下的注冊表編輯器增加了許多功能。首先,在右邊窗口的鍵值詳細列表中增加了類型列,使我們可以很直觀地了解鍵值的類型,如:如REG_SZ爲字符串值,REG_DWORD爲DWORD值,REG_BINARY爲二進制值等;其次,在菜單欄中增加了類似IE的收藏菜單,提供了收藏夾功能,它可以方便你快速定位到需要經常修改的主鍵位置;第三,它還提供了記憶功能,即每次當你打開它時,左邊窗口中的樹形主鍵分支會自動展開,把焦點定位到你最近一次修改過的位置。   除了上述類似于Windows 9X的注冊表編輯器外,Windows 2000還提供了一個新版的注冊表編輯器(注意:下面我們介紹的注冊表修改都是在其中進行),位置在D:\WINNT\system32\regedt32.exe(假設D爲Windows 2000的安裝盤符),運行它,主界面如圖2所示。   這個新版注冊表編輯器除了具備原來Windows 9X注冊表編輯器全部功能外,最重要的是增加了"安全"菜單,也就是說,管理員可以給注冊表項指派"權限",這一功能在NT中早就采用了,但在面向單機的操作系統中還是首次提供。這使得注冊表的安全性大大提高。下面以允許用戶訪問"控制面板"注冊表項但不保存對它的任何修改爲例,介紹一下如何指派"權限"。首先在[HKEY_CURRENT_USER]窗口單擊"Control Panel"主鍵,然後選擇"安全"菜單中的"權限",在"Control Panel的權限"對話框中選擇用戶,再選中"讀取"右邊的"允許"複選框,最後單擊"確定"即可(如圖3)。   該注冊表編輯器擁有多個子窗口(如圖4),每個子窗口代表本地計算機上的一個預定義項(即五大根鍵)。這個注冊表編輯器不僅可以顯示編輯本地計算機的注冊表項,還可以訪問遠程計算機的注冊表,當訪問遠程計算機的注冊表時,只可使用兩個預定義項[HKEY_USERS]和[HKEY_LOCAL_MACHINE]。   下面簡要說明一下這些預定義項的含義:   (一)、KEY_LOCAL_MACHINE   HKEY_LOCAL_MACHINE根鍵中存放的是用來控制系統和軟件的設置。由于這些設置是針對那些使用Windows系統的用戶而設置的,是一個公共配置信息,所以它與具體用戶無關。該根鍵下面包含了五個子鍵:   1.HARDWARE子鍵   該子鍵包含了系統使用的浮點處理器、串口等有關信息。在它下面存放一些有關超文本終端、數字協處理器和串口等信息。HARDWARE子鍵又包括三個子鍵:   ★DESCRIPTION:用于存放有關系統信息;   ★DEVICEMAP:用于存放設備映像;   ★RESOURCEMAP;   2.SAM子鍵   該子鍵已經被系統保護起來,我們不可能看到裏面的內容。   3.SECURITY子鍵   該子鍵位于HKEY_LOCAL_MACHINE\Security分支上,該分支只是爲將來的高級功能而預留的。   4.SOFTWARE子鍵   該子鍵中保留的是所有已安裝的32位應用程序的信息。各個程序的控制信息分別安裝在相應的子鍵中。由于不同的機器安裝的應用程序互不相同,因此這個子鍵下面的子鍵信息會有很大的差異。   5.SYSTEM子鍵   該子鍵存放的是啓動時所使用的信息和修複系統時所需的信息,其中包括各個驅動程序的描述信息和配置信息等。System子鍵下面有一個CurrentControlSet子鍵,系統在這個子鍵下保存了當前的驅動程序控制集的信息。   (二)、HKEY_CLASSES_ROOT根鍵   在Windows 2000中對HKEY_CLASSES_ROOT主鍵做了改進。HKEY_CLASSES_ROOT主鍵與當前注冊使用的用戶有關,它實際上是HKEY_CURRENT_USER\SOFTWARE\Classes和HKEY_LOCAL_MACHINE\SOFTWARE\ Classes的交集。如果兩者的內容有沖突,則HKEY_CURRENT_USER\SOFTWARE\Classes優先。這個新特性在Windows 2000中叫做「單用戶類注冊」(per-user class registration)。單用戶類注冊有如下好處:   1.同一台計算機上的不同用戶可以分別定制不同的Windows 2000   例如,用戶甲安裝了ACDSee圖形軟件,將BMP文件與ACDSee圖形軟件建立關聯。而用戶乙安裝了PhotoShop圖形軟件,將BMP文件與PhotoShop圖形軟件建立關聯,當用戶乙雙擊BMP文件時,會自動調用PhotoShop圖形軟件,而不會調用用戶甲安裝的ACDSee圖形軟件。   2.提高了注冊表的安全性   使用單用戶類注冊,各個用戶有自己的HKEY_CLASSES_ROOT,不再需要通過修改HKEY_LOCAL_MACGINE/SOFTWARE/classes來滿足自己的需求,這樣系統管理員可以提高HKEY_LOCAL_MACGINE/SOFTWARE/classes的權限,禁止普通用戶修改它,而各個用戶之間更是不能修改對方的HKEY_CLASSES_ROOT。   3.支持漫遊類注冊   在Windows 2000中,提供了一個叫做IntelliMirror的功能。通過在服務器和客戶端同時使用IntelliMirror,用戶的數據、應用程序和設置在所有的環境中都可以跟隨用戶漫遊,這當然包括了用戶的配置文件。當用戶登錄到域中任意一台運行Windows 2000的計算機時,首先要通過目錄服務中的身份驗證,身份驗證通過後,保存在服務器上的用戶配置文件(包括注冊表中的HKEY_CLASSES_ROOT)將複制到該計算機上,好像用戶在本地計算機登錄一樣。  HKEY_CLASSES_ROOT根鍵中記錄的是Windows操作系統中所有數據文件的信息,主要記錄不同文件的文件名後綴和與之對應的應用程序。當用戶雙擊一個文檔時,系統可以通過這些信息啓動相應的應用程序。HKEY_CLASSES_ROOT根鍵中存放的信息與HKEY_LOCAL_MACHINE\Software\Classes分支中存放的信息是一致的。   HKEY_CLASSES_ROOT根鍵由多個子鍵組成,具體可分爲兩種:一種是已經注冊的各類文件的擴展名,一種是各種文件類型的有關信息。   (三)、HKEY_CURRENT_CONFIG根鍵   如果你在Windows中設置了兩套或者兩套以上的硬件配置文件(Hardware Configuration file),則在系統啓動時將會讓用戶選擇使用哪套配置文件。而HKEY_CURRENT_CONFIG根鍵中存放的正是當前配置文件的所有信息。   (四)、HKEY_USERS根鍵   HKEY_USERS根鍵中保存的是默認用戶(.DEFAULT)、當前登錄用戶與軟件(Software)的信息。它的下面有三個子鍵:.DEFAULT子鍵、S-1-5-21-1229272821-436374067-1060284298-1000和S-1-5-21-1229272821-436374069-1060284298-1000_Classes三個子鍵,其中最重要的是.DEFAULT子鍵。   .DEFAULT子鍵的配置是針對未來將會被創建的新用戶的。新用戶根據默認用戶的配置信息來生成自己的配置文件,該配置文件包括環境、屏幕、聲音等多種信息。   (五)、HKEY_CURRENT_USER根鍵   HKEY_CURRENT_USER根鍵中保存的信息(當前用戶的子鍵信息)與HKEY_USERS\.Default分支中所保存的信息是相同的。任何對HKEY_CURRENT_USER根鍵中的信息的修改都會導致對HKEY_USERS\.Default中子鍵信息的修改,反之也是如此。    二、Windows 2000的用戶配置文件   默認情況下,大多數配置單元文件(DEFAULT、SAM、SECURITY、SOFTWARE 和 SYSTEM)均存儲在%SystemRoot%\System32\Config文件夾中。而每個計算機用戶的用戶配置文件信息(包括Ntuser.dat 和Ntuser.dat.log)的位置,取決于Windows 2000是全新安裝還是從Windows 95/98 或Windows NT升級安裝。在全新安裝以及從Windows 95/98升級安裝的情況下,Ntuser.dat 和Ntuser.dat.log文件存儲在%SystemDrive%\Documents and Settings\username文件夾中。在從Windows NT升級的安裝中,Ntuser.dat 和Ntuser.dat.log文件存儲在%SystemRroot%\Profiles\username文件夾中。   Windows 2000注冊表中的每個配置單元均與一組標准文件相關聯。如圖5顯示運行 Windows 2000 的計算機的標准配置單元和文件。   由于注冊表是樹形結構的,所以可以將注冊表裏的內容形象地描述爲樹枝和樹葉。樹枝下可以有多個樹枝,也可以有多個樹葉。這個樹枝,我們把它叫做「項」,樹葉呢,叫做「值項」。值項包括三部分:值的名稱、值的數據類型以及值本身。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有