所以我用這個:獲取-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