我希望能够看到 Windows 10 路由表的简单排序。我正在尝试调试同时运行的几个 VPN 之间的子网冲突,当我尝试检查所做的更改时,路由表让我的眼睛感到疼痛。我可以简单地显示非默认路由(下一跳为 0.0.0.0),然后仅显示我认为相关的字段吗?
哦,我只想查看 IPv4 路由。 IPv6 在这里不相关。
最佳答案
此命令应该为您提供您正在寻找的内容。
Get-NetRoute -AddressFamily IPv4 -State Alive |
Where-Object {$_.NextHop -ne '0.0.0.0'} |
Sort-Object InterfaceAlias |
Select-Object -Property InterfaceAlias,DestinationAddress,DestinationPrefix,NextHop
说明:
Get-NetRoute
每条路由输出一个对象。我们使用 -AddressFamily
仅获取 IPv4 路由,并使用 -State
确保它是事件路由。然后,我们将这些对象通过管道传输到 Where-Object
中,并在其中筛选出 NextHop 不是 0.0.0.0 的路由。
剩余的对象被传递给Sort-Object
,以便按接口(interface)列出它们,然后Select-Object
来选择我们希望看到的属性。我认为 InterfaceAlias、DestinationAddress、DestinationPrefix、NextHop 在典型的调试工作中最有帮助。
奖金:
您可以创建一个简单的 powershell 函数并将其放置在您的 profile.ps1(存储为 $PROFILE 的位置)中以保持理智。
function Get-RoutesV4 {
Get-NetRoute -AddressFamily IPv4 -State Alive | Where-Object {$_.NextHop -ne '0.0.0.0'} | Sort-Object InterfaceAlias | Select-Object -Property InterfaceAlias,DestinationAddress,DestinationPrefix,NextHop
}
function Get-RoutesV6 {
Get-NetRoute -AddressFamily IPv6 -State Alive | Where-Object {$_.NextHop -ne '0.0.0.0'} | Sort-Object InterfaceAlias | Select-Object -Property InterfaceAlias,DestinationAddress,DestinationPrefix,NextHop
}
function Get-Routes {
Get-NetRoute -State Alive | Where-Object {$_.NextHop -ne '0.0.0.0'} | Sort-Object InterfaceAlias | Select-Object -Property InterfaceAlias,DestinationAddress,DestinationPrefix,NextHop
}
关于powershell - 如何从 Windows 10 获取经过清理、排序和筛选的路由表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58000369/