Public/Network/Get-Route.ps1
function Get-Route { [CmdletBinding()] param () process { $adapters = @{} $netroute = @() Get-WmiObject Win32_NetworkAdapterConfiguration | ForEach-Object { $adapters[[int]($_.InterfaceIndex)] = $_.IPAddress } Get-WmiObject win32_IP4RouteTable | ForEach-Object { $out = New-Object psobject $out | Add-Member Noteproperty 'Destination' $_.Destination $out | Add-Member Noteproperty 'Netmask' $_.Mask if ($_.NextHop -eq "0.0.0.0") { $out | Add-Member Noteproperty 'NextHop' "On-link" } else { $out | Add-Member Noteproperty 'NextHop' $_.NextHop } if ($adapters[$_.InterfaceIndex] -and ($adapters[$_.InterfaceIndex] -ne "")) { $out | Add-Member Noteproperty 'Interface' $($adapters[$_.InterfaceIndex] -join ",") } else { $out | Add-Member Noteproperty 'Interface' '127.0.0.1' } $out | Add-Member Noteproperty 'Metric' $_.Metric1 $netroute += $out } } end { # $netroute | Format-Table -autosize return $netroute } } |