--==用户登录==--






 

VBS修改DNS/IP/网关,命令行参数版

转载请注明本文出自:死性不改's Blog~
站点链接:
http://www.clxp.net.cn/
    '用法:
    '     修改IP/网关/DNS.vbs /IP:192.168.3.249 /掩码:255.255.252.0 /网关:192.168.0.1 /DNS:192.168.0.1,202.96.168.86,202.96.168.166
    'DNS多个IP之间用逗号隔开
    '如果不带参数运行,不会修改任何设置
    '所有参数都是可有可无的,可以单独修改IP,也可以单独修改DNS或网关,当然全部修改也可以
    '但是IP和掩码必须同时提供才能修改IP,
    Set objWMIService=GetObject("winmgmts:\\.\root\cimv2")
    Set colNetAdapters=objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
    
    Set argsNamed = WScript.Arguments.Named
    If argsNamed.Exists("IP") Then
        arrIPAddress = Array(argsNamed.Item("IP"))
    End If
    If argsNamed.Exists("掩码") Then
        arrSubnetMask = Array(argsNamed.Item("掩码"))
    End If
    If argsNamed.Exists("网关") Then
        arrGateway = Array(argsNamed.Item("网关"))
    End If
    If argsNamed.Exists("DNS") Then
        arrDNS = Split(argsNamed.Item("DNS"),",",-1,1)
    End If

    For Each objNetAdapter in colNetAdapters
        If Isarray(arrIPAddress) And Isarray(arrSubnetMask)  Then objNetAdapter.EnableStatic arrIPAddress,arrSubnetMask
        If Isarray(arrGateway) Then objNetAdapter.SetGateways arrGateway
        If Isarray(arrDNS) Then objNetAdapter.SetDNSServerSearchOrder arrDNS
    Next
    
    'Msgbox "修改完毕",,"提示"
    '如果想出现提示,把上面一行最前面加的“'”删除即可。


使用方法:将以上代码保存为:修改IP网关DNS.vbs /后面跟随参数
说明:VBS文件的名称是随意的,这里为了方便说明所以把脚本名称命名为“修改IP网关DNS.VBS”大家可以保存为任意名称。同时此脚本不受安装摄像头产生的虚拟网卡、多网卡、各种网卡名影响!脚本运行后会修改所有发现的网卡的IP、网关、DNS。

只修改IP:(修改IP时必须加入修改子网掩码参数,否则不能修改。)
修改IP网关DNS.vbs /IP:192.168.3.249 /掩码:255.255.252.0

只修改网关:
修改IP网关DNS.vbs /网关:192.168.0.1

只修改DNS:
修改IP网关DNS.vbs /DNS:192.168.0.1,202.96.168.86,202.96.168.166

同时修改IP、网关:
修改IP网关DNS.vbs /IP:192.168.3.249 /掩码:255.255.252.0 /网关:192.168.0.1

同时修改IP、DNS:
修改IP网关DNS.vbs /IP:192.168.3.249 /掩码:255.255.252.0 /DNS:192.168.0.1,202.96.168.86,202.96.168.166

同时修改网关、DNS:
修改IP网关DNS.vbs /网关:192.168.0.1 /DNS:192.168.0.1,202.96.168.86,202.96.168.166

同时修改IP、网关、DNS:
修改IP网关DNS.vbs /IP:192.168.3.249 /掩码:255.255.252.0 /网关:192.168.0.1 /DNS:192.168.0.1,202.96.168.86,202.96.168.166

批处理调用:
call \\server\bat$\修改IP网关DNS.vbs /各种参数

快捷方式运行:
目标中写入VBS的路径。然后,后面跟随参数即可\\server\bat$\修改IP网关DNS.vbs /各种参数
文章来自: 死性不改's Blog~
引用通告: 查看所有引用 | 我要引用此文章
Tags: vbs 网卡
相关日志:
评论: 4 | 引用: 0 | 查看次数: 2961
回复回复andywall[2010-06-19 01:44 PM | IP:222.180.100.58 | 重庆市垫江县 翰林网吧 del]
唉,解决了,VBS调用二层目录的AU3不加载配置文件
回复回复andywall[2010-06-19 01:41 PM | IP:222.180.100.58 | 重庆市垫江县 翰林网吧 del]
X去掉了也没影响,
IKB.EXE是一个AU3自动安装程序.我用它来安装收费软件的.我们这里用的是爱克吧收费系统
ws.run("ikb\ikb.exe"),ture
能调用,但是不能自动填写编码和收费器IP地址.
单独运行IKB.EXE安装就没问题.
这怎么解决?
回复回复andywall[2010-06-19 01:39 PM | IP:222.180.100.58 | 重庆市垫江县 翰林网吧 del]
X去掉了也没影响,
IKB.EXE是一个AU3自动安装程序.我用它来安装收费软件的.我们这里用的是爱克吧收费系统
ws.run("ikb\ikb.exe"),ture
能调用,但是把能填写编码和收费器IP地址.
单独运行IKB.EXE安装就没问题.
这怎么解决?
回复回复andywall[2010-06-17 08:14 PM | IP:183.69.67.18 | 重庆市 电信 del]
我有个问题,想问问你.我写了个VBS的脚本来改IP,并调用一个AU3自动安装程序.问题是,AU3单独使用的时候能准确的填写相关信息,但是如果用VBS调用这个AU3程序,它就不自动填写信息.我把我的VBS脚本发你看看.
Dim Name
Name="" '机器名前缀
Dim Num
Num=Inputbox ("程序设计:AndyQ "+chr(10)&chr(13)+"请输入本机编号:"+chr(10)&chr(13)+"","IP修改器") '输入机器编号.
Dim Ipnum
Ipnum=0+Num 'ip偏移
Dim SubnetMask
SubnetMask="255.255.255.0" '子网掩码
Dim Gateway
Gateway="192.168.1." 'Ip前3位
Dim gatewayip
gatewayip="192.168.1.1" '网关
dim Dns1
Dns1="61.128.128.68" '主DNS
dim Dns2
Dns2="61.128.192.68" '次DNS

Set Sh = CreateObject("WScript.Shell")
Sh.RegWrite "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName\ComputerName",Name&Num,"REG_SZ"
Sh.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\NV Hostname",Name&Num,"REG_SZ"
Sh.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Hostname",Name&Num,"REG_SZ"
Set sh = Nothing
Set oShell = Nothing
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
strIPAddress = Array(Gateway&Ipnum)
strSubnetMask = Array(SubnetMask)
strGateway = Array("192.168.1.1")
strGatewayMetric = Array(1)
arrDNSServers = Array(Dns1,Dns2)
For Each objNetAdapter in colNetAdapters
errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
errDNS=objNetAdapter.SetDNSServerSearchOrder(arrDNSServers)

Next
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colComputers = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")
For Each objComputer in colComputers
'ObjComputer.Rename(Name&Num)
Next
Set objNetworkSettings = objWMIService.Get("Win32_NetworkAdapterConfiguration")
objNetworkSettings.SetIPXVirtualNetworkNumber(Num)
list = "IP地址:" & Ipnum & vbCr
list = list & "掩码为:" & SubnetMask & vbCr
list = list & "网关地址:" & gatewayip & vbCr
list = list & "首选DNS:" & Dns1 & vbCr
list = list & "次要DNS:" & Dns2 & vbCr
intAnswer = Msgbox("IP修改结果:" & vbtab & vbCr  & vbCr & list ,3+48,"你确认修改成以下信息?")
help = list & "选择是将继续安装,选择否将返回修改IP,选择取消则退出安装"
If intAnswer = vbYes Then
set ws=createobject("wscript.shell")
ws.run("HDeck.exe"),x,ture '选是,继续运行后面的程序
end if
If intAnswer = vbNo Then
set ws=createobject("wscript.shell")
ws.run"st.vbs",x,ture '选否,返回IP修改
end if

回复来自 LZ-MyST 的评论 LZ-MyST 于 2010-06-18 00:06 AM 回复11
没看到啥问题,只是
ws.run("HDeck.exe"),x,ture

ws.run"st.vbs",x,ture
里面的x有点可疑
发表评论
你没有权限发表评论!
上一张
快捷键"←"
下一张
快捷键"→"
图片来自 http://www.clxp.net.cn 请勿盗链! 关闭 移动