当前位置 博文首页 > CMD下读取/修改/删除注册表项的方法

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

    作者:admin 时间:2021-02-16 15:03

    好在系统自带的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文件中的项目都是大小写不敏感的。 js