2017-09-14 15 views
0

에서 :는 네트워크 인터페이스에 대한 몇 가지 정보를 얻기 위해 필요, JSON에 PowerShell을 객체로 변환 특정 IP 주소

> Get-NetIPConfiguration | select IPv4Address, InterfaceAlias, InterfaceDes cription | ConvertTo-Json 

에 응답

[ 
    { 
     "IPv4Address": [ 
          "MSFT_NetIPAddress (Name = \";C?8;@B8CC8;??55;:55;55;\", CreationClassName = \"\", SystemCr 
eationClassName = \"\", SystemName = \"\")" 
         ], 
     "InterfaceAlias": "wifi", 
     "InterfaceDescription": "Qualcomm Atheros AR5BWB222 Wireless Network Adapter" 
    }, 
    { 
     "IPv4Address": [ 
          "MSFT_NetIPAddress (Name = \";@C8???8;??8??B55;@55;55;\", CreationClassName = \"\", SystemC 
reationClassName = \"\", SystemName = \"\")" 
         ], 
     "InterfaceAlias": "Ethernet", 
     "InterfaceDescription": "Realtek PCIe GBE Family Controller" 
    } 
] 

이 충분히 이상한 모습.

[ 
    { 
     "IPv4Address": "12.3.3.4", 
     "InterfaceAlias": "wifi", 
     "InterfaceDescription": "Qualcomm Atheros AR5BWB222 Wireless Network Adapter" 
     "NetAdapter.Status" : "connected" 
    }, 
    { 
     "IPv4Address": "192.168.0.1", 
     "InterfaceAlias": "Ethernet", 
     "InterfaceDescription": "Realtek PCIe GBE Family Controller" 
     "NetAdapter.Status" : "connected" 
    } 
] 

는 또한 인터페이스 상태가 연결 또는 분리하는 데 필요한, 그것은 NetAdapter.Status에 저장됩니다 내가 좋아하는 뭔가를 기대합니다. 도와주세요. 모든 것을 한 줄로 작성하는 것이 좋습니다.

답변

0

하지 깊은에만 3 단계를 진행을

$n = Get-NetIPConfiguration | select InterfaceIndex, IPv4Address, InterfaceAlias, InterfaceDescription, NetAdapter 
ForEach($a in $n){ 
    $a.Ipv4Address = $a.Ipv4Address.IpAddress 
    $a | Add-Member -type NoteProperty -name Status -value $a.NetAdapter.Status 
    $a.PSObject.Properties.Remove('NetAdapter') 
} 

$n 
$n | ConvertTo-Json 

결과 :

InterfaceIndex  : 10 
IPv4Address   : 192.168.99.135 
InterfaceAlias  : wifi 
InterfaceDescription : Qualcomm Atheros AR5BWB222 Wireless Network Adapter 
Status    : Up 

InterfaceIndex  : 16 
IPv4Address   : 169.254.153.248 
InterfaceAlias  : Ethernet 
InterfaceDescription : Realtek PCIe GBE Family Controller 
Status    : Disconnected 

[ 
    { 
     "InterfaceIndex": 10, 
     "IPv4Address": "192.168.99.135", 
     "InterfaceAlias": "wifi", 
     "InterfaceDescription": "Qualcomm Atheros AR5BWB222 Wireless Network Adapter", 
     "Status": "Up" 
    }, 
    { 
     "InterfaceIndex": 16, 
     "IPv4Address": "169.254.153.248", 
     "InterfaceAlias": "Ethernet", 
     "InterfaceDescription": "Realtek PCIe GBE Family Controller", 
     "Status": "Disconnected" 
    } 
] 

확신이 있습니다. 더 짧고 최적의 방법 일 수 있습니다.

2

당신은 더 깊은 개체를 통과해야합니다 ... 기본 파워 쉘으로

Get-NetIPConfiguration | select IPv4Address, InterfaceAlias, InterfaceDescription | 
    ConvertTo-Json -Depth 5 

한 줄에

+0

감사합니다. – kyb