2010-07-12 2 views
6

Get-WmiObject Win32_NetworkAdapterConfiguration을 사용하여 네트워크 카드의 IP 주소를 반환하고 싶습니다. 불행히도, 나는 IPv6 4 주소 만 표시하도록 출력을 포맷하는 방법을 알아낼 수 없습니다.PowerShell : IP 주소 만 반환하도록 Get-WmiObject 출력 형식 지정

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

디스플레이 :

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

예를 들어 위의 출력을 사용하여, 나는 (일부 클라이언트는, 따라서 "어디-개체"여러 NIC의이)에만 192.168.56.1을 반환에

그것을 싶습니다

답변

7

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.*' } 
+2

위 주소는 "192.168. *"로 시작하는 IPv4 주소에서만 작동합니다. 마지막 Where 절을 "{$ _ -notlike '* : *'}"로 바꾸면 IPv4 주소 만 제공됩니다. – fenster

+2

'? {$ _ -notlike "* : *"}'를 사용해야했습니다. –

1

생각 나는 누군가에게 도움이 될 수 있도록 위의 내용을 자신의 의견으로 나눌 것입니다. 한 줄만 입력하면됩니다.

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

환호.

0

(Get-WmiObject win32_Networkadapterconfiguration | Where-Object {$ _. ipaddress -notlike $ null}) IPaddress | 개체 선택 - 첫 번째 1

도움이 될 것입니다! 빠른 답변 (목록에 어디-객체 피하고 -like 작업을 사용) 추가

+0

제공하는 솔루션에 대한 설명을 추가하여 답을 더 자세히 설명해 주시겠습니까? – abarisone

3

:

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

는 희망이

0
(Get-WmiObject Win32_NetworkAdapterConfiguration | where { (($_.IPEnabled -ne $null) -and ($_.DefaultIPGateway -ne $null)) } | select IPAddress -First 1).IPAddress[0] 

데 도움을줍니다 기본적으로 네트워크 연결의 IP 주소를 반환 게이트웨이. 이것은 정확히 대부분의 경우에 필요한 것입니다.

Powershell 2.0 (Windows XP 이상)과 호환됩니다.