powershell - 如何从 Windows 10 获取经过清理、排序和筛选的路由表?

标签 powershell routes window

我希望能够看到 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/

相关文章:

Azure 开发运营 : How to set the value of the Variable in Variable Group

Angular 8 嵌套路由和多个路由器 socket 不起作用

python - 使用API​​View接收参数

Matlab - 8x8 窗口并查找平均值

c# - UWP:部分路径上的 GetFileAsync?

powershell - 为什么使用 Chocolatey/PowerShell DSC 时 OpenSSL 安装会挂起?

Powershell 使用 ODBC DSN 而不是连接字符串从数据库读取

regex - Windows cmd脚本从jar文件中提取版本号

python - 无法在 Google 云端硬盘文件夹中创建虚拟环境

php - 在 Zend 中使用多语言路由器