![](/img/trans.png)
[英]Get-WMIObject Win32_NetworkAdapterConfiguration - Looping through X number of DNS Servers for each NIC
[英]Get-WmiObject Win32_NetworkAdapterConfiguration -Match failing
所以我用這個:
$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為空白。 如果我對IPAddress進行硬編碼,則可以使用:
$IPInfo = (Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object IPAddress -Match 10.45.22.100)
但是端口IP將始終不同。 為什么不將$ IPA作為匹配參數?
編輯:被報告的IP地址同時具有IPv4和IPv6,這就是為什么我試圖對IPv4進行匹配。
正如我們在注釋中發現的那樣,您將為$IPA
返回一個數組。 在PowerShell中,控制台將其展開以顯示所有元素,因此在控制台中看起來還不錯。 由於只有一個,因此具有誤導性。
((Get-NetIPAddress | Where-Object InterfaceAlias -eq "Local Area Connection").IPv4Address).gettype().fullname
System.Object[]
可能是它試圖匹配“ System.Object []”,這就是為什么您沒有獲得所需結果的原因。
解決這個問題的幾種方法。 一個簡單的方法是始終在查詢中返回-First
結果。
(Get-NetIPAddress | Where-Object InterfaceAlias -eq "Local Area Connection").IPv4Address | select -first 1).gettype().fullname
因此,只需使用| select -first 1
| select -first 1
,您應該得到期望的結果。
我在這里警告使用-match
。 了解-match
和-replace
支持正則表達式模式字符串。 因此,如果字符串中包含正則表達式元字符,則可能會得到意外的結果。
發生這種情況是因為$ IPA實際上是一個對象數組。 當您運行Get-NetIPAddress | Where-Object InterfaceAlias -eq "MyPortName"
Get-NetIPAddress | Where-Object InterfaceAlias -eq "MyPortName"
返回一個類型為MSFT_NetIPAddress的CIM實例的數組。 當您通過運行$IPA = (Get-NetIPAddress | Where-Object InterfaceAlias -eq "MyPortName").IPv4Address
請求IPv4Address
成員時$IPA = (Get-NetIPAddress | Where-Object InterfaceAlias -eq "MyPortName").IPv4Address
陣列仍然存在,但是未顯示沒有IPv4Address的陣列元素。 看下面的例子。
$NetIPAddresses = (Get-NetIPAddress | where {$_.InterfaceAlias -eq "Ethernet" -and $_.AddressFamily -eq "IPv4"})
foreach ($NetIPAddress in $NetIPAddresses) {
$IPA = $NetIPAddress.IPv4Address
$IPInfo = (Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object IPAddress -Match $IPA)
$IPInfo.IPSubnet[0]
}
這將顯示給定接口上每個IPv4地址的子網掩碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.