Use a .NET API call instead of a Win8+ cmdlet

The root cause is that Windows 7 doesn't have Get-NetIPAddress (
see:
https://stackoverflow.com/questions/19529442/gather-ip-address-information
)
but the change was to try and solve the bug that the VPN IP
addresses
aren't visible detailed
here:
https://support.microsoft.com/en-us/kb/2549091

Resolved using the
2nd solution
from
http://serverfault.com/questions/145259/powershell-win32-networkadapterconfiguration-not-seeing-ppp-adapter
This commit is contained in:
Jeff Kwan 2015-09-03 16:54:41 -04:00
parent 3b7117b689
commit 4b32744424
1 changed files with 21 additions and 11 deletions

View File

@ -1,11 +1,21 @@
$ErrorAction = "Stop"
$net = Get-NetIPAddress | Where-Object {
($_.IPAddress -ne "127.0.0.1") -and ($_.IPAddress -ne "::1")
} | Sort-Object $_.AddressFamily
# Find all of the NICsq
$nics = [System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces()
# Save the IP addresses somewhere
$nic_ip_addresses = @()
foreach ($nic in $nics) {
$nic_ip_addresses += $nic.GetIPProperties().UnicastAddresses | Where-Object {
($_.Address.IPAddressToString -ne "127.0.0.1") -and ($_.Address.IPAddressToString -ne "::1")
} | Select -ExpandProperty Address
}
$nic_ip_addresses = $nic_ip_addresses | Sort-Object $_.AddressFamily
$result = @{
ip_addresses = $net.IPAddress
ip_addresses = $nic_ip_addresses.IPAddressToString
}
Write-Output $(ConvertTo-Json $result)