ZetCode

PowerShell Set-NetRoute

最后修改:2025 年 2 月 15 日

在本文中,我们将介绍PowerShell中的Set-NetRoute cmdlet。此cmdlet用于修改TCP/IP网络堆栈中现有的IP路由设置。

网络路由基础知识

网络路由定义了网络流量到达目标所经过的路径。路由包含目标前缀、下一跳和接口索引。Set-NetRoute cmdlet用于修改这些路由属性。它是PowerShell NetTCPIP模块的一部分。

Set-NetRoute 基本用法

使用Set-NetRoute的最简单方法是使用-DestinationPrefix和-NextHop参数。您必须指定要修改的路由。该cmdlet更改符合条件的现有路由的属性。

route1.ps1
Set-NetRoute -DestinationPrefix "192.168.1.0/24" -NextHop "192.168.1.1" -Confirm:$false

此命令修改192.168.1.0/24网络的路由。它将下一跳设置为192.168.1.1。-Confirm:$false参数会抑制提示。

更改路由跃点数

当存在多个路由时,路由跃点数(metric)决定了路由的优先级。跃点数越低,优先级越高。您可以修改现有路由的跃点数。这会影响在有多个可用路径时流量的路由方式。

route2.ps1
Set-NetRoute -DestinationPrefix "10.0.0.0/8" -InterfaceIndex 12 -RouteMetric 50

此命令将接口12上10.0.0.0/8网络的跃点数更改为50。较高的跃点数会使该路由的优先级低于其他替代路由。

修改多个路由

您可以使用管道输入一次修改多个路由。首先使用Get-NetRoute检索路由,然后将其管道传输到Set-NetRoute。这允许基于筛选器进行批量修改。

route3.ps1
Get-NetRoute -InterfaceIndex 12 | Set-NetRoute -RouteMetric 100

此命令将接口12上所有路由的跃点数更改为100。Get-NetRoute cmdlet检索路由,然后对其进行修改。

设置发布和存储属性

路由可以被发布(通告)和持久存储。-Publish参数控制路由通告。-Store参数决定更改是否在重启后仍然有效。

route4.ps1
Set-NetRoute -DestinationPrefix "172.16.0.0/16" -Publish Yes -Store ActiveStore

此命令使172.16.0.0/16路由被通告并存储在活动配置中。如果没有-Store,该路由在重启后将不会保留。

修改路由策略

路由策略决定了路由的使用方式和优先级。-PolicyStore参数指定了应用更改的位置。您可以修改不同策略存储中的路由,例如ActiveStore或PersistentStore。

route5.ps1
Set-NetRoute -DestinationPrefix "192.168.100.0/24" -NextHop "192.168.100.1" -PolicyStore PersistentStore

此命令修改持久存储中的路由,使其在重启后仍然存在。如果不将更改应用于ActiveStore,则更改不会立即生效。

来源

PowerShell 文档

在本文中,我们介绍了PowerShell中的Set-NetRoute cmdlet。

作者

我叫Jan Bodnar,我是一名热情的程序员,拥有丰富的编程经验。我从2007年开始撰写编程文章。到目前为止,我已撰写了1400多篇文章和8本电子书。我在教授编程方面拥有十多年的经验。

列出 所有 PowerShell 教程