regedit的運行參數
REGEDIT [/L:system] [/R:user] filename1
REGEDIT [/L:system] [/R:user] /C filename2
REGEDIT [/L:system] [/R:user] /E filename3 [regpath]
/L:system Specifies the location of the SYSTEM.DAT file.
/R:user Specifies the location of the USER.DAT file.
filename1 Specifies the file(s) to import into the regist
/C filename2 Specifies the file to create the registry from.
/E filename3 Specifies the file to export the registry to.
regpath Specifies the starting registry key to export from.
(Defaults to exporting the entire registry).
/S (Windows) Silent - no message on completion.
從Windows命令列快速控制項目註冊表
每一個熟悉Windows的人都相信,通過註冊表幾乎可以做到任何事情,真正的問題是怎樣迅速找到正確的註冊鍵。
絕大多數情形下,操作註冊表意味著找到某個特定的子鍵;偶爾地,可能需要修改一下子鍵的名稱(例如,可能要進行結構上的改動)。那麼,怎樣才能迅速找到正確的子鍵並執行修改?另外,如果你不僅要改動本地機器的註冊表,而且還要對
遠程機器作同樣的修改,
該怎麼辦?本文告訴你一個好工具Regfind。Regfind可以從Windows 2000 Server的Resource Kit Supplement One找到,或者從網上下載。Regfind適用於Windows的各個版本,包括Windows 9x系列。
Regfind是一個命令列工具。不帶任何選項執行Regfind,它將顯示出協助資訊。最簡單的用法是執行尋找,例如執行Regfind "QQ",Regfind將找出所有包含字串“QQ”的註冊鍵,一所示。
除了單純的尋找之外,Regfind還能夠執行替換:只需在圖一的命令後加上-r選項和一個替換字串即可。例如,假設你公司的名稱從AGroup改成了BGroup,現在你想要對註冊表中所有的產品註冊資訊作相應的改動,只需執行:Regfind "AGroup" -r "BGroup"。注意,如果搜尋字串包含空格或標點符號,字串應該用引號包圍。
如果要對一台遠程機器作相應的改動,只需在前面的命令後加上-m選項並指定遠程機器的UNC(Universal Naming Convention,通用命名協定)路徑,例如:Regfind -m\\server03 "AGroup" -r "BGroup"。
搜尋整個註冊表無疑是一件相當耗費時間的事情。為了提高效率,你可以將Regfind的搜尋操作限制到某個註冊表的分支或子鍵,只需要在-p選項後面指定要搜尋的註冊表位置即可。例如,假設要把搜尋“AGroup”的操作限制在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft子鍵,並把該子鍵下的AGroup替換成BGroup,執行:Regfind "AGroup" -r "BGroup" -p "HKEY_LOCAL_MACHINESOFTWARE\Microsoft"。
通過上面的說明可以看出,Regfind是一個很方便的工具,但白璧有瑕,有時候你仍會感到它不能滿足要求。首先,Regfind不支援萬用字元,也不支援Regex——而這兩者對於執行複雜搜尋是非常有用的。唯一一個給搜尋操作增加靈活性的選項是-y。-y選項使得Regfind的搜尋操作對大小寫不敏感,即如果你執行Regfind AGroup -y,則Regfind的搜尋結果中將包含AGroup、aGroup以及其他字母大小寫組合(如果沒有-y選項,Regfind預設對大小寫敏感,但Regfind的命令選項對大小寫不敏感,例如你可以隨意使用-R或-r)。
第二,如果用Regfind執行搜尋/替換操作,它將替換所有找到的字串,你不能要求Regfind只替換其中一個字串。勉強可算是補救策略的方法是:將搜尋操作限制在某個特定的註冊表分支。因此,我的建議是:首先用Regfind找出所有匹配的註冊子鍵,然後用Regfind執行全域替換或手工修改某個特定的子鍵。
第三,如果你想要修改數值型資料,Regfind似乎算不上最佳幫手。這是因為,許多要處理的REG_DWORD值不是0就是1,而0和1在註冊表中出現的機會實在太頻繁了,很可能出現誤替換的情形。解決問題的唯一辦法就是儘可能精確地限定Regfind的搜尋範圍
命令列方式直接修改註冊表
一、CMD
cmd是windows2000中的一個小得如鴿子蛋一樣的程式,是一個所謂命令列控制台。有兩條進入該程式的通道:第一,滑鼠點擊"開始->運行",在出現的編輯框中鍵入"cmd",然後點擊"確定";第二,在啟動windows2000的時候,按F8進入啟動選擇菜單,移動光條或鍵入數字至安全模式的命令列狀態。出現的視窗是一個在win9x系統常見的那種msdos方式的介面――一個黑乎乎的視窗.甚至還沒有msdos方式的視窗耐看:連常用的工具條都沒有放上.我真想不通,貴為最新的作業系統,因何還保留似乎是石器時代的dos介面呢?像往常一樣,習慣性低在命令後面鍵入:cmd/?,想看看會提示些什嗎?
孰料出現的東西使我大吃一驚:1.這些資訊是中文的,要知道原來純dos環境可不會直接支援中文呀!2.有相當詳細的協助資訊.3.介面雖然是命令列的,但卻可以對很多深層次的項目進行操作,,例如修改註冊表等等.後來的使用也證明,cmd實際上也能直接調用圖形介面的程式,並在調用結束後可以返回到命令列介面.
儘管微軟把這個工具當做命令直譯器一個新的執行個體,但使用的方法卻和原來的dos沒有區別,開啟命令列視窗之後,可以找到與dos相同的系統提示符號C:/>,命令必須鍵入在這個提示符的後面,以斷行符號鍵確認.
完整的文法如下:
CMD [/A | /U] [/Q] [/D] [/E:ON | /E:OFF] [/F:ON | /F:OFF] [/V:ON | /V:OFF]
[[/S] [/C | /K] string]
各個參數的含義:
CMD:是命令名稱,這可省略.以下是命令所用的參數或開關.
/C 執行字串指定的命令然後終斷
/K 執行字串指定的命令但保留
/S 在 /C 或 /K 後修改字串處理(見下)
/Q 關閉回應
/D 從註冊表中停用執行 AutoRun 命令(見下)
/A 使向內部管道或檔案命令的輸出成為 ANSI
/U 使向內部管道或檔案命令的輸出成為 Unicode
/T:fg 設定前景/背景顏色(詳細資料,請見 COLOR /?)
/E:ON 啟用命令擴充(見下)
/E:OFF 停用命令擴充(見下)
/F:ON 啟用檔案和目錄名稱完成字元 (見下)
/F:OFF 停用檔案和目錄名稱完成字元(見下)
/V:ON 將 c 作為定界符啟動延緩環境變數擴充。如: /V:ON 會
允許 !var! 在執行時允許 !var! 擴充變數 var。var 文法
在輸入時擴充變數,這與在一個 FOR 迴圈內不同。
/V:OFF 停用延緩的環境擴充。
請注意,如果字串有引號,可以接受用命令分隔字元 '&&' 隔開
的多個命令。並且,由於相容原因,/X 與 /E:ON 相同,/Y 與
/E:OFF 相同,並且 /R 與 /C 相同。忽略任何其它命令選項。
如果指定了 /C 或 /K,命令選項後的命令列其餘部分將作為命令列處理;在這種情況下,會使用下列邏輯處理引號字元("):
1. 如果符合下列所有條件,那麼在命令列上的引號字元將被
保留:
- 不帶 /S 命令選項
- 整整兩個引號字元
- 在兩個引號字元之間沒有特殊字元,特殊字元為下列中的
一個: <>()@^|
- 在兩個引號字元之間有至少一個空白字元
- 在兩個引號字元之間有至少一個可執行檔的名稱。
2. 否則,老辦法是,看第一個字元是否是一個引號字元,如果是,捨去開頭的字元並刪除命令列上 的最後一個引號字元, 保留最後一個引號字元之後的文字。如果 /D 未在命令列上被指定,當 CMD.EXE 開始時,它會尋找以下 REG_SZ/REG_EXPAND_SZ 註冊表變數。如果其中一個或兩個都存在,這兩個變數會先被執行。
HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorAutoRun
和/或
HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorAutoRun
命令擴充是按預設值啟用的。您也可以使用 /E:OFF,為某一特定調用而停用擴充。您可以在機器上和/或使用者登入工作階段上啟用或停用 CMD.EXE 所有調用的擴充,這要通過設定使用REGEDT32.EXE 的註冊表中的一個或兩個 REG_DWORD 值:
HKEY_LOCAL_MACHINESoftwareMicrosoftCommand ProcessorEnableExtensions
和/或
HKEY_CURRENT_USERSoftwareMicrosoftCommand ProcessorEnableExtensions
到 0x1 或 0x0。 使用者特定設定比機器設定有優先權。命令列命令選項比註冊表設定有優先權。
原來的dos中有所謂的內部命令和外部命令,在cmd中,引入了命令列擴充,你可以在cmd視窗中直接執行下面的擴充部分,擴充部分之前不必加cmd.
命令列擴充包括對下列命令所做的更改和/或添加:
DEL 或 ERASE
COLOR
CD 或 CHDIR
MD 或 MKDIR
PROMPT
PUSHD
POPD
SET
SETLOCAL
ENDLOCAL
IF
FOR
CALL
SHIFT
GOTO
START (同時包括對外部命令調用所做的更改)
ASSOC
FTYPE
有關詳細資料,請鍵入 HELP 命令名。
二、REG
可以 WindowsXP提供的reg命令列就可以做到。
Reg添加、更改和顯示登錄機碼中的註冊表子項資訊和值。
若要查看該命令文法,請單擊以下命令:
reg add
將新的子項或項添加到註冊表中。
文法
reg add KeyName [/v EntryName|/ve] [/t DataType] [/s separator] [/d value] [/f]
參數
KeyName
指定子項的完全路徑。對於遠端電腦,請在 中的子項路徑前包含電腦名稱。忽略 ComputerName 會導致預設對本機電腦進行操作。以相應的子目錄樹開始路徑。有效子目錄樹為 HKLM、HKCU、HKCR、HKU 以及 HKCC。
/v EntryName
指定要添加到指定子項下的項名稱。
/ve
指定添加到註冊表中的項為空白值。
/t DataType
指定項值的資料類型。DataType 可以是以下幾種類型:
REG_SZ
REG_MULTI_SZ
REG_DWORD_BIG_ENDIAN
REG_DWORD
REG_BINARY
REG_DWORD_LITTLE_ENDIAN
REG_LINK
REG_FULL_RESOURCE_DESCRIPTOR
REG_EXPAND_SZ
/s separator
指定用於分隔多個資料執行個體的字元。當 REG_MULTI_SZ 指定為資料類型且需要列出多個項時,請使用該參數。如果沒有指定,將使用預設分隔符號為 \。
/d value
指定新登錄機碼的值。
/f
不用詢問資訊而直接添加子項或項。
/?
在命令提示字元顯示協助。
注釋
該操作不能添加子樹。該版本的 Reg 在添加子項時無需請求確認。
下表列出了 reg add 操作的傳回值。 值 說明
0 成功
1 失敗
範例
下列範例說明了如何使用 reg add 命令:
reg add \hklm\software\myco /v data /t reg_binary /d fe340ead
reg add "hkcu\software\microsoft\winmine" /v Name3 /t reg_sz /d Anonymous
reg add "hkcu\software\microsoft\winmine" /v Time3 /t reg_dword /d 5
reg compare
比較指定的註冊表子項或項。
文法
reg compare KeyName1 KeyName2 [/v EntryName | /ve] {[/oa]|[/od]|[/os]|[on]} [/s]
參數
KeyName
指定子項的完全路徑。對於遠端電腦,請在 中的子項路徑前包含電腦名稱。忽略 ComputerName 會導致預設對本機電腦進行操作。以相應的子目錄樹開始路徑。有效子目錄樹為 HKLM、HKCU、HKCR、HKU 以及 HKCC。如果指定遠端電腦,則只可使用 HKLM 和 HKU 子目錄樹。
/v EntryName
比較子項下的特定項。
/ve
指定只可以比較沒有值的項。
{[/oa]|[/od]|[/os]|[on]}
指定不同點和匹配點的顯示方式。預設設定是 /od。 值 說明
/oa 指定顯示所有不同點和匹配點。預設情況下,僅列出不同點。
/od 指定僅顯示不同點。這是預設操作。
/os 指定僅顯示匹配點。預設情況下,僅列出不同點。
/on 指定不顯示任何內容。預設情況下,僅列出不同點。
/s Separator
比較所有子項和項。
/?
在命令提示字元顯示協助。
注釋
下表列出了 reg compare 操作的傳回值。 值 說明
0 比較成功且結果相同。
1 比較失敗。
2 比較成功並找到不同點。
範例
下面的範例說明了如何使用 reg compare 命令:
reg compare "hkcu\software\microsoft\winmine" "hkcu\software\microsoft\winmine" /od /s
reg copy
將一個登錄機碼複製到本地或遠端電腦的指定位置。
文法
reg copy KeyName1 KeyName2 [/s] [/f]
參數
KeyName1
指定要複製子項的完整路徑。對於遠端電腦,請在 中的子項路徑前包含電腦名稱。忽略 ComputerName 會導致預設對本機電腦進行操作。以相應的子目錄樹開始路徑。有效子目錄樹為 HKLM、HKCU、HKCR、HKU 以及 HKCC。如果指定遠端電腦,則只可使用 HKLM 和 HKU 子目錄樹。
KeyName2
指定子項目的地的完整路徑。對於遠端電腦,請在 中的子項路徑前包含電腦名稱。忽略 ComputerName 會導致預設對本機電腦進行操作。以相應的子目錄樹開始路徑。有效子目錄樹為 HKLM、HKCU、HKCR、HKU 以及 HKCC。如果指定遠端電腦,則只可使用 HKLM 和 HKU 子目錄樹。
/s
複製指定子項下的所有子項和項。
/f
無需請求確認而直接複製子項。
/?
在命令提示字元顯示協助。
注釋
該版本的 Reg 在複製子項時無須請求確認。
下表列出了 reg copy 操作的傳回值。 值 說明
0 成功
1 失敗
範例
下列範例說明了如何使用 reg copy 命令:
reg copy "hkcu\software\microsoft\winmine" "hkcu\software\microsoft\winminebk" /s /f
reg copy "hkcu\software\microsoft\winminebk" "hkcu\software\microsoft\winmine" /s
reg delete
從註冊表刪除項或子項
文法
reg delete KeyName [{/v EntryName|/ve|/va}] [/f]
參數
KeyName
指定子項的完全路徑。對於遠端電腦,請在 中的子項路徑前包含電腦名稱。忽略 ComputerName 會導致預設對本機電腦進行操作。以相應的子目錄樹開始路徑。有效子目錄樹為 HKLM、HKCU、HKCR、HKU 以及 HKCC。
/v EntryName
刪除子項下的特定項。如果未指定項,則將刪除子項下的所有項和子項。
/ve
指定只可以刪除為空白值的項。
/va
刪除指定子項下的所有項。使用本參數不能刪除指定子項下的子項。
/f
無需請求確認而刪除現有的註冊表子項或項。
/?
在命令提示字元顯示協助。
注釋
下表列出了 reg delete 操作的傳回值。 值 說明
0 成功
1 失敗
範例
下面的範例說明了如何使用 reg delete 命令:
reg delete "hkcu\software\microsoft\winmine" /v Name1
reg delete "hkcu\software\microsoft\winmine" /v Time1
reg delete "hkcu\software\microsoft\winmine" /va
reg export
將指定子項、項和值的複本建立到檔案中,以便將其傳輸到其它伺服器。
文法
reg export KeyName FileName
參數
KeyName
指定子項的完全路徑。Export 操作僅可在本機電腦上工作。以相應的子目錄樹開始路徑。有效子目錄樹為 HKLM、HKCU、HKCR、HKU 以及 HKCC。
FileName
指定要匯出檔案的名稱和路徑。該檔案必須具有 .reg 副檔名。
/?
在命令提示字元顯示協助。
注釋
下表列出了 reg export 操作的傳回值。 值 說明
0 成功
1 失敗
範例
下面的範例說明了如何使用 reg export 命令:
reg export "hkcu\software\microsoft\winmine" c:\data\regbackups\wmbkup.reg
reg import
將包含匯出的註冊表子項、項和值的檔案複製到本機電腦的註冊表中。
文法
reg import FileName
參數
FileName
指定將複製到本機電腦註冊表中的檔案的名稱和路徑。必須預先使用 reg export 命令建立該檔案。
/?
在命令提示字元顯示協助。
注釋
下表列出了 reg import 操作的傳回值。 值 說明
0 成功
1 失敗
範例
下面的範例說明了如何使用 reg import 命令:
reg import hkcu\software\microsoft\winmine" c:\data\regbackups\wmbkup.reg
reg load
將儲存的子項和項寫回到註冊表的不同子項中。其目的是儲存到一個臨時檔案中,而該檔案可用於登錄機碼的疑難解答或編輯登錄機碼。
文法
reg load KeyName FileName
參數
KeyName
指定子項的完全路徑。對於遠端電腦,請在 中的子項路徑前包含電腦名稱。忽略 ComputerName 會導致預設對本機電腦進行操作。以相應的子目錄樹開始路徑。有效子目錄樹為 HKLM、HKCU、HKCR、HKU 以及 HKCC。
FileName
指定要載入的檔案的名稱和路徑。必須使用帶 .hiv 副檔名的 reg save 操作建立該檔案。
/?
在命令提示字元顯示協助。
注釋
下表列出了 reg load 操作的傳回值。 值 說明
0 成功
1 失敗
範例
下面的範例說明了如何使用 reg load 命令:
reg load "hkcu\software\microsoft\winminebk2" wmbkup.hiv
reg query
返回註冊表的子項下的項和下一層子項的列表。
文法
reg query KeyName [{/v EntryName|/ve}] [/s]
參數
KeyName
指定子項的完全路徑。對於遠端電腦,請在 中的子項路徑前包含電腦名稱。忽略 ComputerName 會導致預設對本機電腦進行操作。以相應的子目錄樹開始路徑。有效子目錄樹為 HKLM、HKCU、HKCR、HKU 以及 HKCC。如果指定遠端電腦,則只可使用 HKLM 和 HKU 子目錄樹。
/v EntryName
返回特定的項及其值。該參數只返回直接位於指定子項的下一層中的項。將會找不到當前子項下的子項中的項。如果省略 EntryName,則將返回子項下的所有項。
/ve
指定僅返回為空白值的項。
/s
將返回各個層中的所有子項和項。如果不使用該參數,將只返回下一層的子項和項。
/?
在命令提示字元顯示協助。
注釋
下表列出了 reg query 操作的傳回值。 值 說明
0 成功
1 失敗
範例
下面的範例說明了如何使用 reg query 命令:
reg query "hklm\system\currentcontrolset\control\session manager" /v maxstacktracedepth
reg query "hkcu\software\microsoft\winmine" /s
reg restore
將儲存的子項和項寫回到註冊表。
文法
reg restore KeyName FileName
參數
KeyName
指定子項的完全路徑。Restore 操作僅在本機電腦上工作。以相應的子目錄樹開始路徑。有效子目錄樹為 HKLM、HKCU、HKCR、HKU 以及 HKCC。
FileName
指定將寫回到註冊表中的檔案的名稱和路徑。必須使用帶 .hiv 副檔名的 reg save 操作預先建立該檔案。
/?
在命令提示字元顯示協助。
注釋
該操作用於覆蓋已編輯的登錄機碼。編輯登錄機碼之前,請使用 reg save 操作儲存父親子項。如果編輯失敗,則可以使用本操作恢複子項。
下表列出了 reg restore 操作的傳回值。 值 說明
0 成功
1 失敗
範例
下面的範例說明了如何使用 reg restore 命令:
reg restore "hkcu\software\microsoft\winmine" wmbkup.hiv
reg save
將指定的子項、項和註冊表值的副本儲存到指定檔案中。
文法
reg save KeyName FileName
參數
KeyName
指定子項的完全路徑。對於遠端電腦,請在 中的子項路徑前包含電腦名稱。忽略 ComputerName 會導致預設對本機電腦進行操作。以相應的子目錄樹開始路徑。有效子目錄樹為 HKLM、HKCU、HKCR、HKU 以及 HKCC。
FileName
指定所建立的檔案的名稱和路徑。如果未指定路徑,則使用當前路徑。
/?
在命令提示字元顯示協助。
注釋
下表列出了 reg save 操作的傳回值。 值 說明
0 成功
1 失敗
範例
下面的範例說明了如何使用 reg save 命令:
reg save "hkcu\software\microsoft\winmine" wmbkup.hiv
reg unload
使用 reg load 操作刪除已載入的部分註冊表。
文法
reg unload KeyName
參數
KeyName
指定子項的完全路徑。對於遠端電腦,請在 中的子項路徑前包含電腦名稱。忽略 ComputerName 會導致預設對本機電腦進行操作。以相應的子目錄樹開始路徑。有效子目錄樹為 HKLM、HKCU、HKCR、HKU 以及 HKCC。
/?
在命令提示字元顯示協助。
注釋
下表列出了 reg unload 操作的傳回值。 值 說明
0 成功
1 失敗
範例
下面的範例說明了如何使用 reg unload 命令:
reg unload "hkcu\software\microsoft\winminebk2"
小心
編輯註冊表不當可能會嚴重損壞您的系統。在更改註冊表之前,應備份電腦上任何有價值的資料。
小心
只有在別無選擇的情況下,才直接編輯註冊表。登錄編輯程式會忽略標準的安全措施,從而使得這些設定會降低效能、破壞系統,甚至要求使用者重新安裝 Windows。可以利用“控制台”或“Microsoft 管理主控台 (MMC)”中的程式安全更改多數註冊表設定。如果必須直接編輯註冊表,則請首先將其備份。詳細資料,請參閱“登錄編輯程式協助”。
注釋
使用 Reg 直接編輯本地或遠端電腦的註冊表。這些更改有可能造成電腦無法操作並需要重新安裝作業系統。所以不要直接編輯註冊表,而應儘可能利用“控制台”或“Microsoft 管理主控台 (MMC)”更改註冊表。
有些操作可以查看或配置本地或遠端電腦的登錄機碼,而另外一些則只允許配置本機電腦的註冊表設定。同時,遠端存取註冊表也可能會限制用於某操作的參數。請檢查每個操作的文法以便驗證該操作可以用於遠端電腦,以及驗證可用於那種情況下的參數。
讓Windows註冊表修改快速生效
當我們修改了註冊表,許多情況下只按下F5鍵重新整理註冊表還不足以使修改生效,而需要重新啟動電腦。其實我們不必每次都重啟機器,只需運行Windows的外殼程式Explorer即可(在Windows 9x/Me和Windows 2000/XP中的操作有所不同)。
在Windows 9x/Me中
按下“Ctrl+Alt+Delete”按鍵組合,在彈出的視窗中選擇“Explorer”,並點擊“結束任務”按鈕,這時螢幕會出現“關機”菜單,不要做任何操作,在再次彈出的視窗中點擊“結束任務”按鈕,即可讓Windows在不重新啟動的情況下快速重新整理註冊表。
在Windows 2000/XP中
按下“Ctrl+Alt+Delete”按鍵組合,開啟“工作管理員”,單擊“進程”標籤,找到並單擊其中的“Explorer.exe”,點擊右下方的“結束進程”按鈕,在開啟的警告對話方塊中單擊“是”按鈕。然後再單擊“應用程式”標籤,單擊下方的“新任務”按鈕,在開啟的“建立新任務”對話方塊中輸入“Explorer.exe”,再按下“確定”按鈕即可