使用Windows命令行reg控制注册表键值
熟悉Windows操作系統的朋友可能都知道,Windows操作系統下的注冊表相當于系統的數據庫 ,部分軟件將自己的配置信息都放在注冊表里面,而注冊表的破壞可以直接導致系統的崩潰。
而熟悉注冊表的朋友對"注冊表編輯器(regedit.exe)"一點也不陌生,它提供了一個圖形化管理注冊表的操作界面,本文要介紹的是另一種管理注冊表的方法"控制臺注冊表編輯器(reg.exe)",它可以使用純命令行的模式對注冊表進行添加、刪除、查看等操作;適用于在批處理中對注冊表進行操作。
-
控制臺注冊表編輯器在系統中的位置
如果我們的系統裝在"C盤",那么控制臺注冊表編輯器reg.exe就在"C:\Windows\System32\reg.exe"(一些精簡版的系統將這些程序都刪除了,這樣的情況你可以從其他系統中拷貝一個放置這個目錄下)。
要調用"控制臺注冊表編輯器"只需要打開一個CMD命令行,輸入"reg /?"就能看到幫助文件了,如下圖所示(注意,Win7以后的系統中必須用管理員身份運行CMD才能對注冊表的一些項進行操作,否則會因為權限不足而報錯)
-
注冊表類型結構
首先可以使用管理員權限打開cmd,在其中輸入"regedit"回車,就能打開圖形界面的注冊表編輯器,下面用一張圖說明注冊表中的三個關鍵術語:"鍵"、"值"、"值類型";
?
實際上圖形界面的注冊表編輯器已經可以完成所有注冊表編輯操作,但有時并沒有圖形界面,比如只有一個shell,這時想修改注冊表的值,就可以用到命令行的注冊表編輯器了。
-
reg常用命令詳解
本節將實例演示如何對注冊表進行添加、刪除、查看、備份、還原操作,對于其他不常用的功能大家可以自己去摸索。
實例一:使用CMD在根鍵"HKEY_CURRENT_USER"下創建一個子鍵"qingsword",在這個子鍵中,添加一個值名稱為"hello",類型為"REG_ZS",數據為"welcome to my website";
| 1 | C:\>reg?add hkcu\qingsword /v hello /t REG_SZ /d?"welcome to my website" |
| 2 | 操作成功完成。 |
在上面的命令中,"reg add" 是添加的意思,HKCU是根鍵"HKEY_CURRENT_USER"的縮寫,另外幾個根鍵的縮寫分別為"HKCR"、"HKLM"、"HKU"、"HKCC",取根鍵的第一個單詞的前兩個字母和后面兩個單詞的前一個字母。
hkcu\qingsword就是在根鍵"HKEY_CURRENT_USER"下添加一個叫做qingsword的子鍵,如果這個子鍵存在,則不作任何操作。
/v 后面跟需要創建的值的名稱。/t 后面是值的類型,/d 后面是這個值的數據。
命令成功后,在圖形化注冊表編輯器中可以查看到改動,顯示結果如下圖所示,如果沒有出現變化請按"F5"刷新
?
reg命令是WindowsXP提供的,它可以添加、更改和顯示注冊表項中的注冊表子項信息和值。?
1,reg add 將新的子項或項添加到注冊表中?
語法:reg add KeyName [/v EntryName|/ve] [/t DataType] [/s separator] [/d value] [/f]?
參數?
KeyName?
指定子項的完全路徑。對于遠程計算機,請在\\ComputerName\PathToSubkey中的子項路徑前包含計算機名稱。忽略ComputerName會導致默認對本地計算機進行操作。以相應的子目錄樹開始路徑。有效子目錄樹為HKLM、HKCU、HKCR、HKU以及HKCC。遠程機器上只有 HKLM 和 HKU。?
值 說明?
HKCR: HKEY_CLASSES_ROOT?
HKCU: HKEY_CURRENT_USER?
HKLM: HKEY_LOCAL_MACHINE?
HKU: HKEY_USERS?
HKCC: HKEY_CURRENT_CONFIG?
/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指定為數據類型且需要列出多個項時,請使用該參數。如果沒有指定,將使用默認分隔符為"\0"。?
/d value?
指定新注冊表項的值。?
/f?
不用詢問信息而直接添加子項或項。?
/??
在命令提示符顯示幫助。?
注釋?
該操作不能添加子樹。該版本的Reg在添加子項時無需請求確認。?
下表列出了reg add操作的返回值。值說明?
0成功?
1失敗?
/v 所選項之下要添加的值名。
/ve 為注冊表項添加空白值名(默認)。
/t RegKey 數據類型
[ REG_SZ | REG_MULTI_SZ | REG_EXPAND_SZ |
REG_DWORD | REG_QWORD | REG_BINARY | REG_NONE ]
如果忽略,則采用 REG_SZ。
/s 指定一個在 REG_MULTI_SZ 數據字符串中用作分隔符的字符
如果忽略,則將 "\0" 用作分隔符。
/d 要分配給添加的注冊表 ValueName 的數據。
/f 不用提示就強行覆蓋現有注冊表項。
范例?
(補充,cmd /k 為在運行中使用reg命令)?
下列范例說明了如何使用reg add命令:?
cmd /k reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\explorer\Advanced\Folder\Hidden\SHOWALL" /v Checkedvalue /t reg_dword /d 1 /f(顯示隱藏的文件和文件夾)?
cmd /k reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v systray /t REG_SZ /d "%SystemRoot%\system32\systray.exe" /f(開機啟動音量控制)?
cmd /k reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "%SystemRoot%\explorer.exe" /f(開機啟動explorer外殼程序)?
cmd /k reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v SoundMan /t REG_SZ /d "%SystemRoot%\SOUNDMAN.exe" /f(開機啟動AC97音效管理員程序)?
cmd /k reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\IEXPLORE.EXE" /ve /d "%ProgramFiles%\Internet Explorer\IEXPLORE.EXE" /t REG_SZ /f?
(UC房間打不開廣播)?
cmd /k reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\MSCONFIG.EXE" /ve /d "%SystemRoot%\PCHealth\HelpCtr\Binaries\MSConfig.exe" /t REG_SZ /f?
(運行MSConfig提示找不到文件)?
cmd /k reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\wmplayer.exe" /ve /d "%ProgramFiles%\Windows Media Player\wmplayer.exe" /t REG_SZ /f?
(不能正常調用WMP播放器的修復)?
cmd /k reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WORDPAD.EXE" /ve /d "%ProgramFiles%\Windows NT\Accessories\WORDPAD.EXE" /t REG_SZ /f?
(不能正常調用寫字板的修復)?
cmd /k reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v ctfmon.exe /t REG_SZ /d "%SystemRoot%\system32\ctfmon.exe" /f(開機啟動輸入法程序CTFMON)?
cmd /k reg add "HKCU\ControlPanel\Desktop" /v WaitToKIllAppTimeOut /t REG_SZ /d 10000 /f(加速關閉應用程序)
?例如:
REG ADD \\ABC\HKLM\Software\MyCo
添加遠程機器 ABC 上的一個注冊表項 HKLM\Software\MyCo
REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead
添加一個值(名稱: Data,類型: REG_BINARY,數據: fe340ead)
REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail
添加一個值(名稱: MRU,類型: REG_MUTLI_SZ,數據: fax\0mail\0\0)
REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^%
添加一個值(名稱: Path,類型: REG_EXPAND_SZ,數據: %systemroot%)
注意: 在擴充字符串中使用插入符號 ( ^ )
reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000
reg add HKLM\SYSTEM\CurrentControlSet\services\NlaSvc\Parameters\Internet /v EnableActiveProbing /t REG_DWORD /d 1
2,reg delete 從注冊表刪除項或子項?
語法:reg delete KeyName [{/v EntryName|/ve|/va}] [/f]?
參數?
KeyName?
指定子項的完全路徑。對于遠程計算機,請在\\ComputerName\PathToSubkey中的子項路徑前包含計算機名稱。忽略ComputerName會導致默認對本地計算機進行操作。以相應的子目錄樹開始路徑。有效子目錄樹為HKLM、HKCU、HKCR、HKU以及HKCC。?
/v EntryName?
刪除子項下的特定項。如果未指定項,則將刪除子項下的所有項和子項。?
/ve?
指定只可以刪除為空值的項。?
/va?
刪除指定子項下的所有項。使用本參數不能刪除指定子項下的子項。?
/f?
無需請求確認而刪除現有的注冊表子項或項。?
/??
在命令提示符顯示幫助。?
注釋?
下表列出了reg delete操作的返回值。值說明?
0成功?
1失敗?
范例?
下面的范例說明了如何使用reg delete命令:?
cmd /k reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe" /f(任務欄里的任務管理器為灰色)?
cmd /k reg delete "HKLM\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg" /f(刪除MSConfig啟動里的未勾選項目)?
cmd /k reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\ctfmon.exe" /f(刪除CTFMON的鏡像劫持)?
cmd /k reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\TrayNotify" /v IconStreams /f?
cmd /k reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\TrayNotify" /v PastIconsStream /f(刪除通知區域的歷史記錄)?
3,reg compare 比較指定的注冊表子項或項?
語法:reg compare KeyName1 KeyName2 [/v EntryName | /ve] {[/oa]|[/od]|[/os]|[on]} [/s]?
參數?
KeyName?
指定子項的完全路徑。對于遠程計算機,請在\\ComputerName\PathToSubkey中的子項路徑前包含計算機名稱。忽略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?
4,reg copy 將一個注冊表項復制到本地或遠程計算機的指定位置?
語法:reg copy KeyName1 KeyName2 [/s] [/f]?
參數?
KeyName1?
指定要復制子項的完整路徑。對于遠程計算機,請在\\ComputerName\PathToSubkey中的子項路徑前包含計算機名稱。忽略ComputerName會導致默認對本地計算機進行操作。以相應的子目錄樹開始路徑。有效子目錄樹為HKLM、HKCU、HKCR、HKU以及HKCC。如果指定遠程計算機,則只可使用HKLM和HKU子目錄樹。?
KeyName2?
指定子項目的地的完整路徑。對于遠程計算機,請在\\ComputerName\PathToSubkey中的子項路徑前包含計算機名稱。忽略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?
5,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?
6,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?
7,reg load 將保存的子項和項寫回到注冊表的不同子項中?
其目的是保存到一個臨時文件中,而該文件可用于注冊表項的疑難解答或編輯注冊表項。?
語法:reg load KeyName FileName?
參數?
KeyName?
指定子項的完全路徑。對于遠程計算機,請在\\ComputerName\PathToSubkey中的子項路徑前包含計算機名稱。忽略ComputerName會導致默認對本地計算機進行操作。以相應的子目錄樹開始路徑。有效子目錄樹為HKLM?
8,reg query 返回注冊表的子項下的項和下一層子項的列表?
語法:reg query KeyName [{/v EntryName|/ve}] [/s]?
參數?
KeyName?
指定子項的完全路徑。對于遠程計算機,請在 \\ComputerName\PathToSubkey 中的子項路徑前包含計算機名稱。忽略 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?
9,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?
10,reg save將指定的子項、項和注冊表值的副本保存到指定文件中。?
語法?
reg save KeyName FileName?
參數?
KeyName?
指定子項的完全路徑。對于遠程計算機,請在 \\ComputerName\PathToSubkey 中的子項路徑前包含計算機名稱。忽略 ComputerName 會導致默認對本地計算機進行操作。以相應的子目錄樹開始路徑。有效子目錄樹為 HKLM、HKCU、HKCR、HKU 以及 HKCC。?
FileName?
指定所創建的文件的名稱和路徑。如果未指定路徑,則使用當前路徑。?
/??
在命令提示符顯示幫助。?
注釋?
下表列出了 reg save 操作的返回值。 值 說明?
0 成功?
1 失敗?
范例?
下面的范例說明了如何使用 reg save 命令:?
reg save "hkcu\software\microsoft\winmine" wmbkup.hiv?
11,reg unload 使用 reg load 操作刪除已加載的部分注冊表?
語法:reg unload KeyName?
參數?
KeyName?
指定子項的完全路徑。對于遠程計算機,請在 \\ComputerName\PathToSubkey 中的子項路徑前包含計算機名稱。忽略 ComputerName 會導致默認對本地計算機進行操作。以相應的子目錄樹開始路徑。有效子目錄樹為 HKLM、HKCU、HKCR、HKU 以及 HKCC。?
/??
在命令提示符顯示幫助。?
注釋?
下表列出了 reg unload 操作的返回值。 值 說明?
0 成功?
1 失敗?
范例?
下面的范例說明了如何使用 reg unload 命令:?
reg unload "hkcu\software\microsoft\winminebk2"
總結
以上是生活随笔為你收集整理的使用Windows命令行reg控制注册表键值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 谷歌邮箱SMTP Password:SM
- 下一篇: java信息管理系统总结_java实现科