【发布时间】:2010-05-26 15:39:13
【问题描述】:
我在一个使用 WMI 但可以在 PowerShell 中确认的 Visual Basic 程序中遇到了这个问题。显然 EnableStatic() 方法只能用于设置一个 IP 地址,尽管它采用了两个参数 IP 地址和子网掩码,它们是数组。
即
$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 中它更复杂,必须传递数组,但该方法似乎只考虑每个数组的第一个元素。
我是又糊涂了还是这里有什么逻辑?
【问题讨论】:
标签: .net powershell wmi