首页 > 编程 > BAT > 正文

CMD下读取/修改/删除注册表项的方法

2020-06-09 14:21:01
字体:
来源:转载
供稿:网友
好在系统自带的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文件中的项目都是大小写不敏感的。

您可能感兴趣的文章:

dos(cmd)中删除、添加、修改注册表命令用VBScript实现对Windows注册表的修改详解VC++实现文件与应用程序关联的方法(注册表修改)直接双击启动tomcat中的startup.bat闪退原因及解决方法解析C#自定义控件的制作与使用实例的详解C# 自定义异常总结及严格遵循几个原则自定义实现Json字符串向C#对象转变的方法C#中自定义事件和委托实例在asp.net(C#)中采用自定义标签和XML、XSL显示数据C#设置自定义文件图标实现双击启动(修改注册表)
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表