PowerShell:格式化Get-WmiObject输出以仅返回IP地址

piz*_*m13 6 powershell wmi

我想使用Get-WmiObject Win32_NetworkAdapterConfiguration来返回网卡的IP地址.不幸的是,我无法弄清楚如何格式化输出以仅显示IPv.4地址.

Get-WmiObject Win32_NetworkAdapterConfiguration | Select IPAddress | Where-Object {$_.IPaddress -like "192.168*"}
Run Code Online (Sandbox Code Playgroud)

显示:

IPAddress
---------
{192.168.56.1, fe80::8980:15f4:e2f4:aeca}
Run Code Online (Sandbox Code Playgroud)

以上面的输出为例,我希望它只返回192.168.56.1(有些客户端有多个NIC,因此是"Where-Object")

Joe*_*oey 9

IPAddress属性是一个string[],所以下面应该这样做:

gwmi Win32_NetworkAdapterConfiguration |
    Where { $_.IPAddress } | # filter the objects where an address actually exists
    Select -Expand IPAddress | # retrieve only the property *value*
    Where { $_ -like '192.168.*' }
Run Code Online (Sandbox Code Playgroud)

  • 以上内容仅适用于以"192.168.*"开头的IPv4地址.如果用"{$ _ -notlike'*:*'}"替换最后一个Where子句,它将只给你IPv4地址. (2认同)
  • 我需要使用`?{$ _ -notlike"*:*"}`. (2认同)