CMD下读取/修改/删除注册表项的方法
程序员文章站
2022-03-22 09:38:57
好在系统自带的regedit.exe足够用了。 1,读取注册表 先将想查询的注册表项导出,再用type查看,比如: c:\>regedit /e 1.reg "hke...
好在系统自带的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文件中的项目都是大小写不敏感的。
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文件中的项目都是大小写不敏感的。
上一篇: 重定向符(、)的使用
下一篇: 用注册表更改DNS的代码分享