



|
route print、netstat -r 和 Get-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-NetRoute、Remove-NetRoute 等命令修改路由表。 |
详细功能对比:
-
输出格式:
route print 输出是传统的文本格式,易于理解,但不适合进行复杂的自动化处理或筛选。
netstat -r 输出也以传统文本格式呈现,除了路由表信息外,输出会包含大量的网络连接统计,可能导致信息过于复杂。
Get-NetRoute 则支持格式化输出,可以输出 JSON、表格或其他格式的数据,便于进一步的处理和分析。
-
过滤与格式化:
route print 和 netstat -r 不支持内建的过滤功能,只能提供原始的路由表数据。
Get-NetRoute 是 PowerShell 特有的命令,提供强大的筛选和格式化功能,可以基于特定条件输出路由信息。
-
使用场景:
route print 和 netstat -r 都适合日常的网络诊断,简单快捷,特别是在需要快速查看路由表时。
Get-NetRoute 则适合更复杂的需求,尤其是在进行自动化任务、脚本操作或分析时,PowerShell 的高级功能让它成为系统管理员的强大工具。
-
平台兼容性:
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 注册表项的内容,首先需要确认该路径中有相关的数据。假设该路径中确实存在一些持久路由信息,你可以按照以下方式以表格化形式显示:
-
查询注册表路径内容: 使用 Get-ItemProperty 获取注册表项的属性,并格式化输出为表格。
-
格式化为表格: 使用 Format-Table 将结果格式化为表格显示。
示例代码
假设你的注册表路径下有持久路由信息,可以使用以下 PowerShell 命令:
$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 将输出格式化为表格。你可以选择显示的属性(例如 Destination,Mask,Gateway,InterfaceIndex)。
输出结果示例:
如果该路径包含持久路由信息,输出可能如下:
| 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 没有任何输出,可能是因为路径为空或不存在。你可以先检查注册表路径是否有效,使用以下命令:
Test-Path -Path $regPath
- 如果返回
True,路径存在,但可能没有任何数据。
- 如果返回
False,则表示该路径不存在,系统中可能没有配置持久路由。
其他有用的操作
如果你有多个路由,或者路由是以某些特定的命名规则存储的,你可以进一步进行自定义筛选。例如,你可以列出所有属性:
$routes | Format-List
这将列出该注册表项下的所有键值对。
总结:
- 使用
Format-Table 可以将路由信息格式化为表格显示。
- 你可以根据需要筛选特定字段来显示相关信息。
- 如果路径下没有数据,可以检查路径是否存在或尝试使用其他方式(如
route 命令)查看路由信息。
|
通过 Windows 的图形用户界面 (GUI) 来添加、删除、修改和查看静态路由。以下是使用 GUI 的步骤:
-
添加静态路由:
- 打开“控制面板”。
- 选择“网络和共享中心”。
- 点击左侧的“更改适配器设置”。
- 右键单击要添加静态路由的网络适配器,并选择“属性”。
- 在网络连接属性中,选择“Internet 协议版本 4 (TCP/IPv4)”(或者根据你的情况选择相应的协议版本)。
- 点击“属性”按钮。
- 在下方找到“高级”按钮并点击。
- 在高级 TCP/IP 设置中,选择“IP 设置”选项卡。
- 点击“添加”按钮。
- 在弹出的对话框中,输入目标网络、子网掩码和网关地址,然后点击“添加”和“确定”按钮以保存设置。
-
删除静态路由:
- 依次打开“控制面板” > “网络和共享中心” > “更改适配器设置”。
- 右键单击要删除静态路由的网络适配器,并选择“属性”。
- 在网络连接属性中,选择“Internet 协议版本 4 (TCP/IPv4)”(或者根据你的情况选择相应的协议版本)。
- 点击“属性”按钮。
- 在下方找到“高级”按钮并点击。
- 在高级 TCP/IP 设置中,选择“IP 设置”选项卡。
- 选中要删除的静态路由条目,然后点击“删除”按钮。
-
修改静态路由:
- 使用上述删除和添加静态路由的步骤来修改静态路由。先删除旧的路由,然后再添加新的路由。
-
查看静态路由:
- 在图形用户界面中查看静态路由可以通过网络适配器属性来完成。在“高级 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" |
各命令功能解释:
-
查看路由表:Get-NetRoute
- 该命令用来查看系统中所有的路由表条目。可以结合不同的筛选条件(如目标前缀、网关、接口索引等)进行细化查询。
- 例子:
Get-NetRoute -DestinationPrefix "192.168.1.0/24" 查看目标为 192.168.1.0/24 的路由。
-
添加路由: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。
-
删除路由:Remove-NetRoute
- 从路由表中删除一个或多个路由条目,可以通过目标地址或网关等条件来指定需要删除的路由。
- 例子:
Remove-NetRoute -DestinationPrefix "10.10.10.0/24" -NextHop "192.168.1.1" 删除目标为 10.10.10.0/24 且下一跳为 192.168.1.1 的路由。
-
修改路由:Set-NetRoute
- 修改现有路由条目的属性(如网关、目标网络地址等)。可以用于更新路由信息。
- 例子:
Set-NetRoute -DestinationPrefix "192.168.1.0/24" -NextHop "192.168.1.254" 将目标为 192.168.1.0/24 的路由的网关改为 192.168.1.254。
-
清空路由表:Clear-NetRoute
- 清空所有路由表条目,相当于删除路由表中的所有配置。这通常用于恢复系统默认的路由设置。
- 例子:
Clear-NetRoute 会清除系统中所有的路由条目。
-
查看网络接口信息: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 |
各命令功能解释:
-
查看路由表:route print
- 用于显示当前系统中的路由表,显示的信息包括网络接口、路由条目、网关和子网掩码等。通过该命令可以获得当前系统的所有路由配置。
- 例子:
route print 显示当前的路由表内容。
-
添加路由: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。
-
删除路由:route delete
- 用于从路由表中删除指定的路由条目。可以根据目标网络、网关等进行删除。
- 例子:
route delete 192.168.1.0 删除到 192.168.1.0 网络的路由条目。
-
修改路由: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。
-
清空路由表:route -f
- 清除路由表中的所有条目。此操作会删除所有用户添加的路由条目,恢复为默认设置。
- 例子:
route -f 清空所有路由条目。
-
添加永久路由: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。
-
查看特定路由:route print <destination>
- 查看指定目标地址的路由条目。此命令可以帮助快速定位到特定网络的路由条目。
- 例子:
route print 192.168.1.0 查看目标为 192.168.1.0 的路由。
-
IPv4/IPv6 路由查看:route print -4 和 route print -6
- 显示仅与 IPv4 或 IPv6 协议相关的路由信息,帮助区分 IPv4 和 IPv6 路由表。
- 例子:
route print -4 查看所有的 IPv4 路由条目。
小结:
route 命令是 Windows 中管理路由表的重要工具。它允许用户查看、添加、删除、修改路由条目,并且提供了额外的功能如添加永久路由和清空路由表。通过合理使用这些命令,用户可以灵活地管理和调整计算机的网络路由。
|
|
PowerShell 脚本来添加、删除、修改和查看静态路由。以下是一些示例:
-
添加静态路由:
New-NetRoute -DestinationPrefix "目标网络/子网掩码" -NextHop "网关"
示例:
New-NetRoute -DestinationPrefix "192.168.1.0/24" -NextHop "192.168.0.1"
-
删除静态路由:
Remove-NetRoute -DestinationPrefix "目标网络/子网掩码" -NextHop "网关"
示例:
Remove-NetRoute -DestinationPrefix "192.168.1.0/24" -NextHop "192.168.0.1"
-
修改静态路由: 在 PowerShell 中修改静态路由通常是先删除旧路由,然后再添加新路由。你可以按照上述删除和添加静态路由的步骤来进行修改。
-
查看静态路由:
Get-NetRoute
这将列出系统上的所有路由信息,包括静态路由和动态路由。
使用 PowerShell 脚本可以实现自动化管理静态路由的需求,尤其适用于需要大量操作或集成到自动化工作流程中的情况。
|
|
在 Windows 中,你可以使用 route 命令来添加、删除、修改和查看静态路由。下面是每个操作的具体命令:
-
添加静态路由: 使用以下命令添加静态路由:
route add <目标网络> mask <子网掩码> <网关>
例如:
route add 192.168.1.0 mask 255.255.255.0 192.168.0.1
-
删除静态路由: 使用以下命令删除静态路由:
route delete <目标网络>
例如:
route delete 192.168.1.0
-
修改静态路由: 在 Windows 中,修改静态路由通常是先删除旧路由,然后再添加新路由。你可以按照上述删除和添加静态路由的步骤来进行修改。
-
查看静态路由: 使用以下命令查看当前系统上的静态路由:
route print
这会显示系统上的所有路由信息,包括静态路由和动态路由。
请注意,在使用这些命令时需要以管理员权限打开命令提示符或 PowerShell。这些命令可以让你管理 Windows 中的静态路由,以满足你的网络需求。
|
|
CMD 批处理来制作菜单,以便使用 route 命令来添加、删除、修改和查看静态路由的示例:
@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 |
命令功能详细对比
-
查看路由表:
- PowerShell: 使用
Get-NetRoute 获取当前系统的所有路由信息,默认情况下返回 IPv4 和 IPv6 路由。可以通过管道和 Format-Table 等命令来定制输出格式。
- 例子:
Get-NetRoute 返回当前系统的所有路由。
route 命令: 使用 route print 显示系统的路由表,包括 IPv4 和 IPv6 的路由信息。
-
添加路由:
- 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
-
删除路由:
- PowerShell: 使用
Remove-NetRoute 删除指定的路由条目。
- 例子:
Remove-NetRoute -DestinationPrefix "192.168.1.0/24"
route 命令: 使用 route delete 删除指定的路由条目。
- 例子:
route delete 192.168.1.0
-
修改路由:
- 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
-
添加永久路由:
- 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
-
清空路由表:
- PowerShell: 使用
Remove-NetRoute -AllRoutes 清空路由表中的所有条目。
- 例子:
Remove-NetRoute -AllRoutes
route 命令: 使用 route -f 清空路由表。
-
查看 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 路由。
-
查看特定路由:
- 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 是更优的选择。
|