powershell - 如何从 Windows 10 获得干净的排序和过滤路由表?
问题描述
我希望能够看到我的 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
所以它们按接口列出,然后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
}
推荐阅读
- python - ORA-00936: 插入时缺少 Python 和 Oracle 的表达式
- javascript - 如何将 Firebase 承诺值返回给 graphql?
- python - 如何用2个参数多次调用一个exe(每次需要修改1个)
- java - JPA Criteria API 在复杂的 GROUP BY 上失败
- sql - PostgreSQL 中的剩余库存计算
- powerbi - powerbi 如何创建具有多个孩子的家谱/层次结构图
- visual-studio - 安装nuget后如何在项目的csproj文件中添加一些行
- java - Java设计问题:对象之间共享信息
- sql-server - 如何在合并数据集之前检查行是否存在(SQL Server)
- sql - 在 SQL 中对非常大的数据集进行采样