好在系统自带的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文件来实现:
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文件中的项目都是大小写不敏感的。
您可能感兴趣的文章:
- dos(cmd)中删除、添加、修改注册表命令
- 用VBScript实现对Windows注册表的修改详解
- VC++实现文件与应用程序关联的方法(注册表修改)
- 直接双击启动tomcat中的startup.bat闪退原因及解决方法
- 解析C#自定义控件的制作与使用实例的详解
- C# 自定义异常总结及严格遵循几个原则
- 自定义实现Json字符串向C#对象转变的方法
- C#中自定义事件和委托实例
- 在asp.net(C#)中采用自定义标签和XML、XSL显示数据
- C#设置自定义文件图标实现双击启动(修改注册表)
本文由 华域联盟 原创撰写:华域联盟 » CMD下读取/修改/删除注册表项的方法
转载请保留出处和原文链接:https://www.cnhackhy.com/17162.htm