route print、netstat -r 和 Get-NetRoute 命令的详细分析,表格化展示了它们的功能、输出内容、使用场景、平台兼容性等方面的对比。快速诊断:如果只是想快速查看系统的路由信息,可以选择 route print 或 netstat -r。 PowerShell 管理与自动化:如果需要更强的过滤和格式化功能,或者进行复杂的路由表管理操作,

route printnetstat -rGet-NetRoute 命令的详细分析,表格化展示了它们的功能、输出内容、使用场景、平台兼容性等方面的对比。

特性 route print netstat -r Get-NetRoute
命令类型 传统的命令行工具 传统的命令行工具 PowerShell cmdlet
描述 显示当前系统的路由表信息。 显示当前系统的路由表,并提供附加的网络统计信息。 通过 PowerShell 获取和管理路由表信息,支持多种筛选、格式化和管理功能。
输出内容 - 目标网络(Destination) - 子网掩码(Netmask) - 网关(Gateway) - 接口(Interface) - 路由类型(Metric) - 目标(Destination) - 网关(Gateway) - 路由类型(Metric) - 网络连接统计信息(如TCP连接等) - 目标网络(Destination) - 子网掩码(Netmask) - 网关(Gateway) - 接口(Interface) - 路由类型(Metric) - 路由状态等信息
功能特点 提供一个传统的、易于理解的路由表输出,适合查看和诊断网络路由配置。 除了显示路由表外,还包含关于当前网络连接的详细统计信息。 强大的过滤、格式化功能,可以更细致地查看路由表或进行路由表管理。
使用场景 用于快速查看路由表信息。常见于诊断网络连接问题时。 用于查看路由表的同时,获取网络连接和传输统计等更全面的网络信息。 在 PowerShell 中进行路由表的详细管理与操作,尤其适合自动化脚本和复杂分析。
命令输出格式 传统的文本格式,输出较为简单,列出每个路由条目的基本信息。 传统文本格式,输出较为简洁,除了路由表外,还包括其他网络连接的状态信息。 支持格式化输出,支持自定义输出字段,数据可进一步处理和筛选。
适用平台 CMD 和 PowerShell 都可使用。 CMD 和 PowerShell 都可使用。 PowerShell 专用命令。
是否支持过滤 不支持内建过滤功能。 不支持内建过滤功能。 支持强大的过滤功能(如使用 -InterfaceIndex 等进行筛选)。
是否支持格式化 不支持格式化输出。 不支持格式化输出。 支持多种格式化输出方式,例如表格、列表、JSON 等。
输出详细程度 显示详细的路由信息,但格式较为简单。 显示路由信息外,还会提供当前的网络连接及其统计数据,输出较为杂乱。 显示详细的路由表信息,输出可以通过格式化和筛选变得更加精简和清晰。
交互性 输出为静态信息,不能进行动态交互。 输出为静态信息,不能进行动态交互。 支持与 PowerShell 脚本交互,可以进行动态管理和自动化任务。
是否支持修改路由表 仅显示路由表,不能直接修改。 仅显示路由表,不能直接修改。 通过 PowerShell 可结合 New-NetRouteRemove-NetRoute 等命令修改路由表。

详细功能对比:

  1. 输出格式

    • route print 输出是传统的文本格式,易于理解,但不适合进行复杂的自动化处理或筛选。
    • netstat -r 输出也以传统文本格式呈现,除了路由表信息外,输出会包含大量的网络连接统计,可能导致信息过于复杂。
    • Get-NetRoute 则支持格式化输出,可以输出 JSON、表格或其他格式的数据,便于进一步的处理和分析。
  2. 过滤与格式化

    • route print 和 netstat -r 不支持内建的过滤功能,只能提供原始的路由表数据。
    • Get-NetRoute 是 PowerShell 特有的命令,提供强大的筛选和格式化功能,可以基于特定条件输出路由信息。
  3. 使用场景

    • route print 和 netstat -r 都适合日常的网络诊断,简单快捷,特别是在需要快速查看路由表时。
    • Get-NetRoute 则适合更复杂的需求,尤其是在进行自动化任务、脚本操作或分析时,PowerShell 的高级功能让它成为系统管理员的强大工具。
  4. 平台兼容性

    • route print 和 netstat -r 都可以在 CMD 和 PowerShell 中使用,兼容性好。
    • Get-NetRoute 仅能在 PowerShell 环境中运行,因此如果需要在脚本中使用,它的功能更强大,但不适用于老旧的 CMD 环境。

适用场景总结:

  • 快速诊断:如果只是想快速查看系统的路由信息,可以选择 route print 或 netstat -r
  • PowerShell 管理与自动化:如果需要更强的过滤和格式化功能,或者进行复杂的路由表管理操作,Get-NetRoute 是更好的选择,特别适合在 PowerShell 脚本中使用。

在 Windows 中,你可以使用以下命令来查看路由表

route print
这是最常用的命令,它会列出当前系统上的所有路由信息。打开命令提示符(CMD)或 PowerShell,然后输入 route print 即可查看路由表。

netstat -r
这个命令也可以显示路由表,以及一些其他的网络统计信息。在命令提示符或 PowerShell 中输入 netstat -r 即可查看。

Get-NetRoute PowerShell cmdlet:
如果你在 PowerShell 中工作,你可以使用 Get-NetRoute cmdlet 来获取路由表信息。在 PowerShell 中输入 Get-NetRoute 即可。

这些命令会显示当前系统上的路由信息,包括目标网络、网关、接口、路由类型等。根据你的需要选择其中之一来查看路由表信息。

要在 PowerShell 中以表格的形式显示 HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes 注册表项的内容,首先需要确认该路径中有相关的数据。假设该路径中确实存在一些持久路由信息,你可以按照以下方式以表格化形式显示:

  1. 查询注册表路径内容: 使用 Get-ItemProperty 获取注册表项的属性,并格式化输出为表格。

  2. 格式化为表格: 使用 Format-Table 将结果格式化为表格显示。

示例代码

假设你的注册表路径下有持久路由信息,可以使用以下 PowerShell 命令:

powershellCopy Code
$regPath = "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes"
$routes = Get-ItemProperty -Path $regPath

# 如果路由信息存在,按表格形式显示
$routes | Format-Table -Property Destination, Mask, Gateway, InterfaceIndex

解释:

  • $regPath 是目标注册表路径。
  • Get-ItemProperty -Path $regPath 获取该路径下的所有注册表项。
  • Format-Table 将输出格式化为表格。你可以选择显示的属性(例如 DestinationMaskGatewayInterfaceIndex)。

输出结果示例:

如果该路径包含持久路由信息,输出可能如下:

Destination Mask Gateway InterfaceIndex
192.168.1.0 255.255.255.0 192.168.0.1 12
10.0.0.0 255.0.0.0 10.0.0.1 15

如果注册表路径为空或者没有持久路由配置,可能会显示空表格,或者没有任何输出。

如果没有任何数据

如果 Get-ItemProperty 没有任何输出,可能是因为路径为空或不存在。你可以先检查注册表路径是否有效,使用以下命令:

powershellCopy Code
Test-Path -Path $regPath
  • 如果返回 True,路径存在,但可能没有任何数据。
  • 如果返回 False,则表示该路径不存在,系统中可能没有配置持久路由。

其他有用的操作

如果你有多个路由,或者路由是以某些特定的命名规则存储的,你可以进一步进行自定义筛选。例如,你可以列出所有属性:

powershellCopy Code
$routes | Format-List

这将列出该注册表项下的所有键值对。

总结:

  • 使用 Format-Table 可以将路由信息格式化为表格显示。
  • 你可以根据需要筛选特定字段来显示相关信息。
  • 如果路径下没有数据,可以检查路径是否存在或尝试使用其他方式(如 route 命令)查看路由信息。

 

通过 Windows 的图形用户界面 (GUI) 来添加、删除、修改和查看静态路由。以下是使用 GUI 的步骤:

  1. 添加静态路由:

    • 打开“控制面板”。
    • 选择“网络和共享中心”。
    • 点击左侧的“更改适配器设置”。
    • 右键单击要添加静态路由的网络适配器,并选择“属性”。
    • 在网络连接属性中,选择“Internet 协议版本 4 (TCP/IPv4)”(或者根据你的情况选择相应的协议版本)。
    • 点击“属性”按钮。
    • 在下方找到“高级”按钮并点击。
    • 在高级 TCP/IP 设置中,选择“IP 设置”选项卡。
    • 点击“添加”按钮。
    • 在弹出的对话框中,输入目标网络、子网掩码和网关地址,然后点击“添加”和“确定”按钮以保存设置。
  2. 删除静态路由:

    • 依次打开“控制面板” > “网络和共享中心” > “更改适配器设置”。
    • 右键单击要删除静态路由的网络适配器,并选择“属性”。
    • 在网络连接属性中,选择“Internet 协议版本 4 (TCP/IPv4)”(或者根据你的情况选择相应的协议版本)。
    • 点击“属性”按钮。
    • 在下方找到“高级”按钮并点击。
    • 在高级 TCP/IP 设置中,选择“IP 设置”选项卡。
    • 选中要删除的静态路由条目,然后点击“删除”按钮。
  3. 修改静态路由:

    • 使用上述删除和添加静态路由的步骤来修改静态路由。先删除旧的路由,然后再添加新的路由。
  4. 查看静态路由:

    • 在图形用户界面中查看静态路由可以通过网络适配器属性来完成。在“高级 TCP/IP 设置”中,你可以看到当前配置的所有静态路由。

使用图形界面操作可以更直观地管理静态路由,特别是对于不熟悉命令行的用户来说。

 

 

在 PowerShell 中,路由表的管理涉及一系列的命令和功能。以下是根据不同操作类型对相关 PowerShell 路由表命令进行分类和表格化的对比。

PowerShell 路由表管理命令分类对比表

分类 命令 描述 示例
查看路由表 Get-NetRoute 获取系统中的所有路由表条目。可以通过各种参数筛选和格式化输出。 Get-NetRoute
      Get-NetRoute -DestinationPrefix "192.168.1.0/24"
添加路由 New-NetRoute 向路由表中添加新的路由条目。可以指定目标地址、子网掩码、网关和接口等。 New-NetRoute -DestinationPrefix "10.10.10.0/24" -NextHop "192.168.1.1" -InterfaceIndex 12
删除路由 Remove-NetRoute 从路由表中删除指定的路由条目。可以通过路由的目标地址或其他条件来指定删除的路由。 Remove-NetRoute -DestinationPrefix "10.10.10.0/24" -NextHop "192.168.1.1"
修改路由 Set-NetRoute 修改现有的路由条目,可以更新目标地址、网关或其他属性。 Set-NetRoute -DestinationPrefix "192.168.1.0/24" -NextHop "192.168.1.254"
清空路由表 Clear-NetRoute 清空路由表中的所有条目。常用于恢复到默认的路由配置。 Clear-NetRoute
查看路由信息 Get-NetIPInterface 获取系统中网络接口的详细信息,包括每个接口的路由配置。 Get-NetIPInterface
路由表查看过滤 Get-NetRoute -InterfaceIndex 基于接口索引过滤路由条目,查看特定接口的路由信息。 Get-NetRoute -InterfaceIndex 12
路由表查看过滤 Get-NetRoute -DestinationPrefix 基于目标网络的前缀(IP 地址)过滤路由条目。 Get-NetRoute -DestinationPrefix "192.168.1.0/24"
路由表查看过滤 Get-NetRoute -NextHop 基于网关(下一跳)过滤路由条目。 Get-NetRoute -NextHop "192.168.1.1"

各命令功能解释:

  1. 查看路由表:Get-NetRoute

    • 该命令用来查看系统中所有的路由表条目。可以结合不同的筛选条件(如目标前缀、网关、接口索引等)进行细化查询。
    • 例子:Get-NetRoute -DestinationPrefix "192.168.1.0/24" 查看目标为 192.168.1.0/24 的路由。
  2. 添加路由:New-NetRoute

    • 用于向路由表中添加新的路由。添加时需要指定目标网络地址、下一跳(网关)、接口索引等信息。
    • 例子:New-NetRoute -DestinationPrefix "10.10.10.0/24" -NextHop "192.168.1.1" -InterfaceIndex 12 添加到 10.10.10.0/24 的路由,下一跳为 192.168.1.1
  3. 删除路由:Remove-NetRoute

    • 从路由表中删除一个或多个路由条目,可以通过目标地址或网关等条件来指定需要删除的路由。
    • 例子:Remove-NetRoute -DestinationPrefix "10.10.10.0/24" -NextHop "192.168.1.1" 删除目标为 10.10.10.0/24 且下一跳为 192.168.1.1 的路由。
  4. 修改路由:Set-NetRoute

    • 修改现有路由条目的属性(如网关、目标网络地址等)。可以用于更新路由信息。
    • 例子:Set-NetRoute -DestinationPrefix "192.168.1.0/24" -NextHop "192.168.1.254" 将目标为 192.168.1.0/24 的路由的网关改为 192.168.1.254
  5. 清空路由表:Clear-NetRoute

    • 清空所有路由表条目,相当于删除路由表中的所有配置。这通常用于恢复系统默认的路由设置。
    • 例子:Clear-NetRoute 会清除系统中所有的路由条目。
  6. 查看网络接口信息:Get-NetIPInterface

    • 查看系统中所有网络接口的详细信息,包括每个接口的路由配置。可以用来获取接口的配置细节。
    • 例子:Get-NetIPInterface 查看所有接口信息。

进阶功能和参数:

  • 接口索引过滤:通过 -InterfaceIndex 参数筛选出某个特定接口的路由条目。适用于需要查看或管理特定接口的路由配置时。
  • 目标网络过滤:通过 -DestinationPrefix 参数,能够基于网络目标地址筛选路由条目,便于查看特定网络的路由。
  • 网关过滤:通过 -NextHop 参数筛选出所有指向特定网关的路由。

小结:

PowerShell 提供了丰富的命令来管理和查看路由表,适用于不同的需求:从简单的路由查看到复杂的路由条目添加、删除与修改。这些命令可以通过不同的过滤和格式化功能,使路由表的管理更加灵活和高效。

route 命令(在 Windows 中用于管理路由表)的分类和相关命令的表格化对比。路由表管理通常涉及查看、添加、删除和修改路由等操作。

Windows route 命令分类对比表

分类 命令 描述 示例
查看路由表 route print 显示当前路由表的内容,显示网络接口信息、路由条目以及其他详细的路由配置。 route print
添加路由 route add 向路由表添加一条新的路由。需要指定目标网络、子网掩码、网关、接口等信息。 route add 192.168.1.0 mask 255.255.255.0 192.168.0.1
删除路由 route delete 从路由表中删除指定的路由条目。通常根据目标网络、网关或其他参数来删除特定的路由。 route delete 192.168.1.0
修改路由 route change 修改已存在的路由条目,常用于更新网关、目标地址等。 route change 192.168.1.0 mask 255.255.255.0 192.168.0.254
清空路由表 route -f 清除路由表中的所有条目,恢复到默认路由设置。 route -f
添加静态路由 route -p add 添加永久路由,表示该路由条目将被保留在路由表中,即使系统重启后也不会丢失。 route -p add 192.168.1.0 mask 255.255.255.0 192.168.0.1
查看特定路由 route print <destination> 根据目标地址查看指定的路由条目。 route print 192.168.1.0
网络接口信息 route print -4 或 route print -6 显示 IPv4 或 IPv6 地址路由信息。 route print -4

各命令功能解释:

  1. 查看路由表:route print

    • 用于显示当前系统中的路由表,显示的信息包括网络接口、路由条目、网关和子网掩码等。通过该命令可以获得当前系统的所有路由配置。
    • 例子:route print 显示当前的路由表内容。
  2. 添加路由:route add

    • 向路由表添加新的路由条目。需要指定目标网络、子网掩码、网关、接口等。此操作会更新当前路由表并添加新的路由条目。
    • 例子:route add 192.168.1.0 mask 255.255.255.0 192.168.0.1 添加到 192.168.1.0/24 网络的路由,网关为 192.168.0.1
  3. 删除路由:route delete

    • 用于从路由表中删除指定的路由条目。可以根据目标网络、网关等进行删除。
    • 例子:route delete 192.168.1.0 删除到 192.168.1.0 网络的路由条目。
  4. 修改路由:route change

    • 用于修改现有路由条目的属性。通常用于更改网关、目标地址或其他参数。
    • 例子:route change 192.168.1.0 mask 255.255.255.0 192.168.0.254 将 192.168.1.0/24 网络的网关修改为 192.168.0.254
  5. 清空路由表:route -f

    • 清除路由表中的所有条目。此操作会删除所有用户添加的路由条目,恢复为默认设置。
    • 例子:route -f 清空所有路由条目。
  6. 添加永久路由:route -p add

    • 用于添加永久路由条目,即使系统重启,路由表中的这条路由依然存在。这对于需要在系统重启后持续有效的路由条目非常有用。
    • 例子:route -p add 192.168.1.0 mask 255.255.255.0 192.168.0.1 永久添加到 192.168.1.0/24 网络的路由,网关为 192.168.0.1
  7. 查看特定路由:route print <destination>

    • 查看指定目标地址的路由条目。此命令可以帮助快速定位到特定网络的路由条目。
    • 例子:route print 192.168.1.0 查看目标为 192.168.1.0 的路由。
  8. IPv4/IPv6 路由查看:route print -4route print -6

    • 显示仅与 IPv4 或 IPv6 协议相关的路由信息,帮助区分 IPv4 和 IPv6 路由表。
    • 例子:route print -4 查看所有的 IPv4 路由条目。

小结:

route 命令是 Windows 中管理路由表的重要工具。它允许用户查看、添加、删除、修改路由条目,并且提供了额外的功能如添加永久路由和清空路由表。通过合理使用这些命令,用户可以灵活地管理和调整计算机的网络路由。

 

PowerShell 脚本来添加、删除、修改和查看静态路由。以下是一些示例:

  1. 添加静态路由:

    powershellCopy Code
    New-NetRoute -DestinationPrefix "目标网络/子网掩码" -NextHop "网关"

    示例:

    powershellCopy Code
    New-NetRoute -DestinationPrefix "192.168.1.0/24" -NextHop "192.168.0.1"
  2. 删除静态路由:

    powershellCopy Code
    Remove-NetRoute -DestinationPrefix "目标网络/子网掩码" -NextHop "网关"

    示例:

    powershellCopy Code
    Remove-NetRoute -DestinationPrefix "192.168.1.0/24" -NextHop "192.168.0.1"
  3. 修改静态路由: 在 PowerShell 中修改静态路由通常是先删除旧路由,然后再添加新路由。你可以按照上述删除和添加静态路由的步骤来进行修改。

  4. 查看静态路由:

    powershellCopy Code
    Get-NetRoute

    这将列出系统上的所有路由信息,包括静态路由和动态路由。

使用 PowerShell 脚本可以实现自动化管理静态路由的需求,尤其适用于需要大量操作或集成到自动化工作流程中的情况。

 

在 Windows 中,你可以使用 route 命令来添加、删除、修改和查看静态路由。下面是每个操作的具体命令:

  1. 添加静态路由: 使用以下命令添加静态路由:

    Copy Code
    route add <目标网络> mask <子网掩码> <网关>

    例如:

    Copy Code
    route add 192.168.1.0 mask 255.255.255.0 192.168.0.1
  2. 删除静态路由: 使用以下命令删除静态路由:

    Copy Code
    route delete <目标网络>

    例如:

    Copy Code
    route delete 192.168.1.0
  3. 修改静态路由: 在 Windows 中,修改静态路由通常是先删除旧路由,然后再添加新路由。你可以按照上述删除和添加静态路由的步骤来进行修改。

  4. 查看静态路由: 使用以下命令查看当前系统上的静态路由:

    Copy Code
    route print

    这会显示系统上的所有路由信息,包括静态路由和动态路由。

请注意,在使用这些命令时需要以管理员权限打开命令提示符或 PowerShell。这些命令可以让你管理 Windows 中的静态路由,以满足你的网络需求。

 

CMD 批处理来制作菜单,以便使用 route 命令来添加、删除、修改和查看静态路由的示例:

Copy Code
@echo off
:menu
cls
echo --- 静态路由管理菜单 ---
echo 1. 添加静态路由
echo 2. 删除静态路由
echo 3. 修改静态路由
echo 4. 查看静态路由
echo 5. 退出

set /p choice=请输入选项数字:

if "%choice%"=="1" goto add_route
if "%choice%"=="2" goto delete_route
if "%choice%"=="3" goto modify_route
if "%choice%"=="4" goto view_route
if "%choice%"=="5" goto end

:add_route
cls
echo --- 添加静态路由 ---
set /p dest=请输入目标网络地址(格式如 192.168.1.0):
set /p mask=请输入子网掩码(格式如 255.255.255.0):
set /p gateway=请输入网关地址:
route add %dest% mask %mask% %gateway%
pause
goto menu

:delete_route
cls
echo --- 删除静态路由 ---
set /p dest=请输入要删除的目标网络地址(格式如 192.168.1.0):
set /p mask=请输入要删除的子网掩码(格式如 255.255.255.0):
set /p gateway=请输入对应的网关地址:
route delete %dest% mask %mask% %gateway%
pause
goto menu

:modify_route
cls
echo --- 修改静态路由 ---
echo 修改静态路由通常是先删除旧路由,再添加新路由。
pause
goto menu

:view_route
cls
echo --- 查看静态路由 ---
route print
pause
goto menu

:end
cls
echo 退出菜单。
pause

这个批处理脚本将显示一个菜单,其中包含添加、删除、修改和查看静态路由的选项。用户可以根据菜单提示进行操作,选择相应的选项来执行不同的操作

列出了 PowerShell 命令route 命令 在路由表管理中的不同之处。重点在于 PowerShell 提供的一些命令,route 命令没有的功能。

功能 PowerShell 命令 route 命令 描述
查看路由表 Get-NetRoute route print PowerShell 提供了更多灵活的过滤与格式化选项。
查看 IPv4 路由 Get-NetRoute -AddressFamily IPv4 route print -4 PowerShell 可以方便地查看特定协议类型的路由。
查看 IPv6 路由 Get-NetRoute -AddressFamily IPv6 route print -6 PowerShell 可以方便地查看特定协议类型的路由。
查看特定目标路由 Get-NetRoute -DestinationPrefix <Destination> route print <destination> PowerShell 可以查看特定目的地的路由条目,提供更灵活的过滤能力。
添加永久路由 New-NetRoute -PolicyStore PersistentStore route -p add route 命令可以添加永久路由,但 PowerShell 提供了更多配置选项。
删除所有路由 Remove-NetRoute -AllRoutes PowerShell 可以一次性删除所有路由条目,route 命令不提供此功能。
设置路由策略 New-NetRoute -PolicyStore PersistentStore PowerShell 提供了对路由持久化策略的支持,route 命令没有类似功能。
修改路由条目 Set-NetRoute route change PowerShell 允许更细粒度的路由配置和修改。
清空路由表 Remove-NetRoute -AllRoutes route -f route 命令提供清空路由表的功能,但 PowerShell 提供了更多自定义选项。
支持多接口路由 New-NetRoute -InterfaceIndex <Index> PowerShell 允许在添加路由时指定特定的接口,route 命令不支持此功能。
支持路由类型配置 New-NetRoute -RouteMetric <Metric> PowerShell 支持设置路由的度量值(RouteMetric),route 命令不提供此功能。
添加特定路由条目到指定路由表 New-NetRoute -RoutePolicy <Policy> PowerShell 可以将路由条目添加到指定的路由表,route 命令不支持此功能。
查看网络接口配置 Get-NetAdapter PowerShell 可以查看网络接口信息,方便管理路由的接口。
路由表以对象形式返回数据 Get-NetRoute 返回对象格式 route print 以文本格式显示路由表 PowerShell 命令返回结构化对象,适合进一步脚本化处理。
支持 IPv6 路由配置 完全支持 IPv6 路由的管理 route 命令主要用于 IPv4,IPv6 功能有限 PowerShell 在 IPv6 配置上提供了更好的支持,适合现代网络环境。

 

  • route 命令 是一个传统的路由表管理工具,功能简单,适用于一些基本的路由管理操作。
  • PowerShell 命令 提供了更强大的功能,尤其是在多接口管理、持久化路由策略、精细化配置和脚本自动化等方面。PowerShell 命令不仅支持基本的路由管理,还能够管理路由表的策略、接口以及 IPv6 路由等,提供更灵活、细致的控制。

如果需要更复杂的路由表操作或在自动化脚本中使用,PowerShell 是更强大的工具,而 route 命令则适用于简单的手动管理。

 

PowerShell 路由表管理命令与 route 命令的对比表

Windows 提供了 route 命令和 PowerShell 中的 New-NetRoute, Get-NetRoute, Remove-NetRoute, Set-NetRoute 等命令来管理路由表。下面是它们的功能对比表。

功能 PowerShell 命令 route 命令 描述
查看路由表 Get-NetRoute route print 查看当前的路由表,Get-NetRoute 在 PowerShell 中以对象的形式返回数据。
添加路由 New-NetRoute route add 向路由表中添加新路由。New-NetRoute 使用更详细的参数。
删除路由 Remove-NetRoute route delete 从路由表中删除指定的路由。
修改路由 Set-NetRoute route change 修改现有的路由条目。PowerShell 提供更细致的选项进行更复杂的配置。
添加永久路由 New-NetRoute -PolicyStore PersistentStore route -p add 添加永久路由,-PolicyStore PersistentStore 可以确保路由持久化。
清空路由表 Remove-NetRoute -AllRoutes route -f 清空路由表中的所有条目。
查看特定路由 Get-NetRoute -DestinationPrefix <Destination> route print <destination> 查看特定目标的路由条目。
查看IPv4路由 Get-NetRoute -AddressFamily IPv4 route print -4 查看 IPv4 路由。
查看IPv6路由 Get-NetRoute -AddressFamily IPv6 route print -6 查看 IPv6 路由。
显示路由表信息格式 `Get-NetRoute Format-Table` route print

命令功能详细对比

  1. 查看路由表:

    • PowerShell: 使用 Get-NetRoute 获取当前系统的所有路由信息,默认情况下返回 IPv4 和 IPv6 路由。可以通过管道和 Format-Table 等命令来定制输出格式。
      • 例子:Get-NetRoute 返回当前系统的所有路由。
    • route 命令: 使用 route print 显示系统的路由表,包括 IPv4 和 IPv6 的路由信息。
      • 例子:route print 显示路由表。
  2. 添加路由:

    • PowerShell: 使用 New-NetRoute 命令添加新路由。需要指定目标网络、子网掩码、网关、接口等信息。
      • 例子:New-NetRoute -DestinationPrefix "192.168.1.0/24" -NextHop "192.168.0.1" -InterfaceIndex 12
    • route 命令: 使用 route add 添加新的路由条目。
      • 例子:route add 192.168.1.0 mask 255.255.255.0 192.168.0.1
  3. 删除路由:

    • PowerShell: 使用 Remove-NetRoute 删除指定的路由条目。
      • 例子:Remove-NetRoute -DestinationPrefix "192.168.1.0/24"
    • route 命令: 使用 route delete 删除指定的路由条目。
      • 例子:route delete 192.168.1.0
  4. 修改路由:

    • PowerShell: 使用 Set-NetRoute 修改现有的路由条目。这个命令提供了更细粒度的控制,允许修改多个属性,如目标地址、网关、接口等。
      • 例子:Set-NetRoute -DestinationPrefix "192.168.1.0/24" -NextHop "192.168.0.254"
    • route 命令: 使用 route change 修改现有的路由条目。
      • 例子:route change 192.168.1.0 mask 255.255.255.0 192.168.0.254
  5. 添加永久路由:

    • PowerShell: 使用 New-NetRoute 并结合 -PolicyStore PersistentStore 参数来确保路由永久保存。
      • 例子:New-NetRoute -DestinationPrefix "192.168.1.0/24" -NextHop "192.168.0.1" -PolicyStore PersistentStore
    • route 命令: 使用 route -p add 来添加永久路由。
      • 例子:route -p add 192.168.1.0 mask 255.255.255.0 192.168.0.1
  6. 清空路由表:

    • PowerShell: 使用 Remove-NetRoute -AllRoutes 清空路由表中的所有条目。
      • 例子:Remove-NetRoute -AllRoutes
    • route 命令: 使用 route -f 清空路由表。
      • 例子:route -f
  7. 查看 IPv4/IPv6 路由:

    • PowerShell: 可以使用 Get-NetRoute -AddressFamily IPv4 查看 IPv4 路由,或使用 Get-NetRoute -AddressFamily IPv6 查看 IPv6 路由。
      • 例子:Get-NetRoute -AddressFamily IPv4 查看 IPv4 路由。
    • route 命令: 使用 route print -4 查看 IPv4 路由,route print -6 查看 IPv6 路由。
      • 例子:route print -4
  8. 查看特定路由:

    • PowerShell: 使用 Get-NetRoute -DestinationPrefix <Destination> 查看特定目标的路由条目。
      • 例子:Get-NetRoute -DestinationPrefix "192.168.1.0/24"
    • route 命令: 使用 route print <destination> 查看特定目标的路由条目。
      • 例子:route print 192.168.1.0

 

  • route 命令 是较老的命令行工具,简单易用,适合快速管理路由表,尤其是单条路由的增删改查。
  • PowerShell 命令 提供了更强大的功能和灵活性,能够处理更复杂的路由配置,并且能以对象形式返回数据,便于进一步操作和脚本化。对于需要高级网络配置和自动化的环境,PowerShell 提供了更多的控制选项。

PowerShell 提供的命令不仅支持基本的路由操作,还能处理更复杂的网络策略,例如设置持久路由、管理多个路由表等。如果你需要进行更复杂的网络配置或脚本化管理,PowerShell 是更优的选择。

posted @ 2023-07-18 08:31  suv789  阅读(3499)  评论(0)    收藏  举报