当前位置: 移动技术网 > IT编程>网络>Dos/Bat > CMD下读取/修改/删除注册表项的方法

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

2017年12月08日  | 移动技术网IT编程  | 我要评论
好在系统自带的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文件中的项目都是大小写不敏感的。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网