找回密码
 加入
搜索
查看: 2070|回复: 2

请问如何用autoit在注册表的网卡选项中加入一个"MTU"的键值

[复制链接]
发表于 2009-7-24 09:50:18 | 显示全部楼层 |阅读模式
本帖最后由 GoTop 于 2009-7-24 23:06 编辑

我想把以下的步骤制作成一个脚本来修改注册表

我做成这个脚本之后要在另外的很多台电脑上运行,实现在另外的电脑上自动修改注册表网卡的mtu值

==========================================================
脚本要实现是功能


修改方法之一:

(1)、运行regedit

(2)、浏览到:


HKEY_LOCAL_MACHINE \\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters\\Interfaces

(3)、Interfaces下有多个子项,每个子项对应一个网卡。请按如下方法选择网卡:

  (a)确定本机用来连接Internet的网卡或拨号连接的IP,如192.168.0.19;

  (b)用鼠标点击Interfaces上的子项,查看键值列表中的IPAddress项;

  (c)如果IPAddress的键值与(a)中的IP相同,即192.168.0.19,则该子项就是要找的网卡。

(4)、进入该子项,在右边的窗口里按鼠标右键,选择“新建”->“双字节值”,输入名称“MTU”,按回车。再用鼠标双击“MTU”,弹出修改窗口:

  填入MTU的值。填写前请先把基数设为十进制。

=========================================================


但是在写脚本的时候,我遇到一个问题,就是在第三步的时候,不知道该如何选择网卡
因为在注册表的
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\下有几个表示网卡的项,比如{4C973063-68BE-49CC-A149-9D9382B640F3}这样的
我的脚本该如何编写才能选择到本机使用的网卡的项,然后在里面添加字段?

请问大家有什么方法吗?

我有一个思路,就是用autoit先查看电脑的ip,然后在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\ 下的每一项的果IPAddress的键值是否与电脑的的IP相同,如何相同则在该项下面加一个mtu的值。

请问以上思路可行不?

高手能给出简单的代码或者是思路吗?
发表于 2009-7-24 13:46:02 | 显示全部楼层
本帖最后由 lynfr8 于 2009-7-24 14:02 编辑
For $i= 1 to 10
    $var = RegEnumKey("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces", $i)
    If @error <> 0 then ExitLoop
        $var2 = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces"&$var,'IPAddress')
    If $var2=@IPAddress1 Then
    MsgBox(4096, $var, "IPAddress的键值:  "&$var2)
        RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces"&$var, "MTU", "REG_DWORD", "0x00001500")
     EndIf
Next
 楼主| 发表于 2009-7-24 16:50:10 | 显示全部楼层
本帖最后由 GoTop 于 2009-7-24 20:57 编辑
For $i= 1 to 10
    $var = RegEnumKey("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces", $i)
    If @error  0 then ExitLoop
        $var2 = RegRead("HKEY_LOCAL_MACH ...
lynfr8 发表于 2009-7-24 13:46



哈哈,太好了~~~

@IPAddress1这个参数真是太好了

谢谢你的代码,运行后我发现应该是去查找注册表下的DhcpIPAddress这个值,和说明里讲的有点不一样,因为我是通过路由器上网的,由路由器DHCP分配ip的,所以要看DhcpIPAddress这个值

还有,MTU的值是十进制的1500,不应该写成"0x00001500"吧?
好像应该是'0x000005dc'
不知道我的理解对不对

这是我在你的代码上稍微修改后的代码
 MsgBox(4096, "网卡的ip地址是", "本机网卡的ip地址是IPAddress的键值:  "&@IPAddress1 )

For $i= 1 to 20

    $var = RegEnumKey("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces", $i)

    If @error <> 0 then ExitLoop

        $var2 = RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces"&$var,'DhcpIPAddress')
                
                MsgBox(4096, "查找到的值", "该网卡获到的IPAddress的键值:  "&$var2)

    If $var2=@IPAddress1 Then

    MsgBox(4096, "找到了,就是这个", "找到了,就是这个,IPAddress的键值:  "&$var2)

        RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces"&$var, "MTU", "REG_DWORD", "0x00001500")

     EndIf

Next
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-2 21:23 , Processed in 0.074140 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表