当适配器是变量时,如何在 Windows 的 cmd/powershell/script 中设置静态 IP?

当适配器是变量时,如何在 Windows 的 cmd/powershell/script 中设置静态 IP?

问题可能有点误导,但情况是这样的。我不断通过 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

相关内容