Я столкнулся с этой проблемой в программе Visual Basic, которая использует WMI, но может подтвердить ее в PowerShell. Очевидно, метод EnableStatic () можно использовать только для установки одного IP-адреса, несмотря на то, что он принимает два параметра: IP-адрес (а) и маску (-и) подсети, которые являются массивами.
* 1003 Т.е. *
$a=get-wmiobject win32_networkadapterconfiguration -computername myserver
Это дает мне массив всех сетевых адаптеров на "myserver". После выбора конкретного (в данном случае $ a = $ a [14]) я могу запустить $ a.EnableStatic () с такой подписью
System.Management.ManagementBaseObject EnableStatic(System.String[] IPAddress, System.String[] SubnetMask)
Я думал, что это означает, что я мог бы установить несколько IP-адресов следующим образом:
$ips="192.168.1.42","192.168.1.43"
$a.EnableStatic($ips,"255.255.255.0")
Но этот вызов не удался. Однако этот вызов работает:
$a.EnableStatic($ips[0],"255.255.255.0")
Мне кажется, что EnableStatic () действительно принимает в качестве параметров две строки, а не два массива строк.
В Visual Basic это более сложно, и массивы должны быть переданы, но метод, по-видимому, учитывает только первый элемент каждого массива.
Я снова запутался или здесь есть какая-то логика?