所以我用这个:获取-WmiObject可以Win32_NetworkAdapterConfiguration的-Match失败
$IPA = (Get-NetIPAddress | Where-Object InterfaceAlias -eq "MyPortName").IPv4Address
,然后我想用下面的抢针对IP子网掩码:
$IPInfo = (Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object IPAddress -Match $IPA)
其次是:
$SubMask = $IPInfo.IPSubnet[0]
但是,这会失败,$ IPInfo为空。如果我硬编码IP地址它的工作原理:
$IPInfo = (Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object IPAddress -Match 10.45.22.100)
但端口IP将永远是不同的。为什么它不把$ IPA作为匹配参数?
编辑:被报告的IP地址具有IPv4和IPv6,这就是为什么我试图做 - 与IPv4匹配。
我现在检查如果这是你的问题,但'-match'支持正则表达式,所以任何元字符都可能导致冲突。如果这是一个完全匹配,只需使用'-eq'instead。也可能获得不止一个结果。在打印到控制台时,'$ ipa'看起来像什么? – Matt
'$ IPA.GetType()。FullName'偶尔显示'System.Object []'? – Matt
当我在控制台中做$ IPA时,它显示10.45.22.100,但是当我做$ IPA.GetType()。全名时它显示System.Object []。 另外我不能做-eq,因为IP是这样列出的: IPAddress {10.45.22.100,2001:0db8:85a3:0000:0000:8a2e:0370:7334} – PSNewb