CMD下讀取/修改/刪除注冊表項的方法
2020-07-26 20:19:11
供稿:網友
好在系統自帶的regedit.exe足夠用了。
1,讀取注冊表
先將想查詢的注冊表項導出,再用type查看,比如:
C:/>regedit /e 1.reg "HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Terminal Server/WinStations/RDP-Tcp"
C:/>type 1.reg | find "PortNumber"
"PortNumber"=dword:00000d3d
C:/>del 1.reg
所以終端服務的端口是3389(十六進制d3d)
2,修改/刪除注冊表項
先echo一個reg文件,然后導入,比如:
echo Windows Registry Editor Version 5.00 >1.reg
echo. >>1.reg
echo [HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/TelnetServer/1.0] >>1.reg
echo "TelnetPort"=dword:00000913 >>1.reg
echo "NTLM"=dword:00000001 >>1.reg
echo. >>1.reg
regedit /s 1.reg
將telnet服務端口改為2323(十六進制913),NTLM認證方式為1。
要刪除一個項,在名字前面加減號,比如:
[-HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Serv-U]
要刪除一個值,在等號后面用減號,比如:
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run]
"KAVRun"=-
3,用inf文件訪問注冊表
上面對注冊表的三個操作,也可以用下面這個inf文件來實現:
[Version]
Signature="$WINDOWS NT$"
[DefaultInstall]
AddReg=My_AddReg_Name
DelReg=My_DelReg_Name
[My_AddReg_Name]
HKLM,SOFTWARE/Microsoft/TelnetServer/1.0,TelnetPort,0x00010001,2323
HKLM,SOFTWARE/Microsoft/TelnetServer/1.0,NTLM,0x00010001,1
[My_DelReg_Name]
HKLM,SYSTEM/CurrentControlSet/Services/Serv-U
HKLM,SOFTWARE/Microsoft/Windows/CurrentVersion/Run,KAVRun
將它寫入c:/path/reg.inf然后用下面這個命令“安裝”:
rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 c:/path/reg.inf
幾點說明:
1,[Version]和[DefaultInstall]是必須的,AddReg和DelReg至少要有一個。My_AddReg_Name和My_DelReg_Name可以自定義。
0x00010001表示REG_DWORD數據類型,0x00000000或省略該項(保留逗號)表示REG_SZ(字符串)。0x00020000表示REG_EXPAND_SZ。
2323也可以用0x913代替。
關于inf文件的詳細信息,可以參考DDK幫助文檔。
2,InstallHinfSection是大小寫敏感的。它和setupapi之間只有一個逗號,沒有空格。
128表示給定路徑,該參數其他取值及含義參見MSDN。
特別注意,最后一個參數,必須是inf文件的全路徑,不要用相對路徑。
3,inf文件中的項目都是大小寫不敏感的。