PowerShell: отформатируйте вывод Get-WmiObject, чтобы он возвращал только IP-адрес - PullRequest
6 голосов
/ 12 июля 2010

Я хотел бы использовать Get-WmiObject Win32_NetworkAdapterConfiguration, чтобы вернуть IP-адрес сетевой карты. К сожалению, я не могу понять, как отформатировать вывод для отображения только адреса IPv.4.

Get-WmiObject Win32_NetworkAdapterConfiguration | Select IPAddress | Where-Object {$_.IPaddress -like "192.168*"}

Отображение:

IPAddress
---------
{192.168.56.1, fe80::8980:15f4:e2f4:aeca}

Используя приведенный выше вывод в качестве примера, я хотел бы, чтобы он возвращал только 192.168.56.1 (у некоторых клиентов есть несколько сетевых карт, следовательно, "где-объект")

Ответы [ 5 ]

7 голосов
/ 12 июля 2010

Свойство 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.*' }
3 голосов
/ 25 мая 2015

Добавление более быстрого ответа (без использования Where-Object и использования подобных операций в списке):

@(@(Get-WmiObject Win32_NetworkAdapterConfiguration | Select-Object -ExpandProperty IPAddress) -like "*.*")[0]

Надеюсь, это поможет

1 голос
/ 21 февраля 2014

Думаю, я поделюсь своим собственным вариантом выше, на случай, если это кому-нибудь поможет. Всего одна строка:

Get-WmiObject win32_networkadapterconfiguration | where { $_.ipaddress -like "1*" } | select -ExpandProperty ipaddress | select -First 1

Приветствие.

0 голосов
/ 17 мая 2017
(Get-WmiObject Win32_NetworkAdapterConfiguration | where { (($_.IPEnabled -ne $null) -and ($_.DefaultIPGateway -ne $null)) } | select IPAddress -First 1).IPAddress[0]

Возвращает IP-адрес сетевого подключения со шлюзом по умолчанию. Это именно то, что вам нужно в большинстве случаев:)

Совместим с Powershell 2.0 (Windows XP) и новее.

0 голосов
/ 25 мая 2015

(Get-WmiObject win32_Networkadapterconfiguration | Where-Object {$ _. Ipaddress-notlike $ null}). IPaddress |Select-Object -First 1

Надеюсь, что это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...