问题可能有点误导,但情况是这样的。我不断通过 USB 网络适配器(实际上是 USB 设备电缆,在连接设备时被识别为网络适配器)连接到新设备(每天 20 多个)。这些设备都位于同一子网中,但不提供 dhcp。由于每次插入新设备时 Windows 都会创建一个新的网络适配器,因此我必须在每个新连接上手动设置静态 IP、子网和网关。理想情况下,我想编写一个可以运行的脚本来为我执行此操作,理想情况下,我希望能够向同一适配器添加 2 个静态 IP(例如,单击 IPv4 属性下的高级并在那里添加第二个 IP)。我有本地管理员权限,我正在运行 Windows 10 Enterprise。
我找到了一个可以完成第一部分的 vbs,但它没有添加第二个 IP。此脚本的内容如下。如果我可以使用它将第二个静态添加到同一个适配器,则此解决方案是可行的,但我更喜欢在命令行中执行此操作。
Option Explicit
On Error Resume Next
Dim objWMIService
Dim objNetAdapter
Dim strComputer
Dim arrIPAddress
Dim arrSubnetMask
Dim arrGateway
Dim colNetAdapters
Dim errEnableStatic
Dim errGateways
strComputer = "."
arrIPAddress = Array("IP.ADDRESS.GOES.HERE")
arrSubnetMask = Array("SUBNET.MASK.GOES.HERE")
arrGateway = Array("GATEWAY.ADDRESS.GOES.HERE")
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
For Each objNetAdapter in colNetAdapters
errEnableStatic = objNetAdapter.EnableStatic(arrIPAddress, arrSubnetMask)
If Not errEnableStatic = 0 Then
WScript.Echo "Failure assigning IP/Subnet. Check to see if they are already assigned."
End If
errGateways = objNetAdapter.SetGateways(arrGateway)
If Not errGateways = 0 Then
WScript.Echo "Failure assigning Gateway."
End If
Next
WScript.Quit