ZetCode

PowerShell Set-NetIPAddress

最后修改:2025 年 2 月 15 日

在本文中,我们将介绍 PowerShell 中的 Set-NetIPAddress cmdlet。此 cmdlet 用于修改网络接口的 IP 地址配置。

IP 地址基础知识

IP 地址是分配给网络上设备的唯一标识符。它使设备能够使用 Internet Protocol 进行通信。IPv4 地址由四个由点分隔的八位字节组成(例如,192.168.1.1)。IPv6 地址更长,并使用十六进制表示法。Set-NetIPAddress cmdlet 允许修改这些地址。

Set-NetIPAddress 基本用法

使用 Set-NetIPAddress 最简单的方法是指定要修改的 IP 地址和新的 IP 地址。您需要管理员权限才能更改网络设置。此 cmdlet 可以修改 IPv4 和 IPv6 地址。始终使用 Get-NetIPAddress 验证更改。

ipaddress1.ps1
Set-NetIPAddress -InterfaceIndex 12 -IPAddress 192.168.1.100

此命令将索引为 12 的接口的 IP 地址更改为 192.168.1.100。InterfaceIndex 参数标识网络接口。运行 Get-NetIPInterface 来查找接口索引。

更改 IP 地址和子网掩码

您可以同时修改 IP 地址和子网掩码。子网掩码定义了 IP 地址的网络部分。使用 -PrefixLength 参数指定子网掩码。PrefixLength 是子网掩码中的位数(例如,255.255.255.0 的前缀长度为 24)。

ipaddress2.ps1
Set-NetIPAddress -InterfaceIndex 12 -IPAddress 192.168.1.100 -PrefixLength 24

此命令将 IP 地址设置为 192.168.1.100,子网掩码为 255.255.255.0。前缀长度 24 对应于此子网掩码。始终确保新设置与您的网络配置匹配。

PS C:\> .\ipaddress2.ps1

Confirm
Are you sure you want to perform this action?
Performing the operation "Set" on target "192.168.1.100".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): Y

修改默认网关

要同时更改默认网关和 IP 地址,请使用 -DefaultGateway 参数。默认网关将流量路由到其他网络。此更改需要 Set-NetIPInterface cmdlet 来完成配置。网关必须与 IP 地址位于同一网络。

ipaddress3.ps1
Set-NetIPAddress -InterfaceIndex 12 -IPAddress 192.168.1.100 -PrefixLength 24
Set-NetIPInterface -InterfaceIndex 12 -InterfaceMetric 1
New-NetRoute -InterfaceIndex 12 -DestinationPrefix "0.0.0.0/0" -NextHop 192.168.1.1

此示例配置了完整的网络设置。它设置了 IP 地址、子网掩码和默认网关(192.168.1.1)。InterfaceMetric 确定了存在多个接口时的优先级。该路由将所有非本地流量导向网关。

更改多个 IP 地址

网络接口可以分配多个 IP 地址。使用 Set-NetIPAddress cmdlet 和 -AddressFamily 参数来指定 IPv4 或 IPv6。您可以修改现有地址或添加新地址。这对于托管多个服务的服务器很有用。

ipaddress4.ps1
Set-NetIPAddress -InterfaceIndex 12 -IPAddress 192.168.1.100 -PrefixLength 24
New-NetIPAddress -InterfaceIndex 12 -IPAddress 192.168.1.101 -PrefixLength 24

此脚本首先修改现有的 IP 地址,然后添加第二个 IP 地址。这两个地址都在同一子网中。New-NetIPAddress cmdlet 用于添加新地址,而 Set-NetIPAddress 用于修改现有地址。使用 Get-NetIPAddress 进行验证。

配置 IPv6 地址

Set-NetIPAddress cmdlet 与 IPv6 地址的工作方式与 IPv4 类似。指定 IPv6 地址和适当的前缀长度。IPv6 使用 128 位地址和不同的表示法(例如,2001:db8::1)。AddressFamily 参数显式选择 IPv6。

ipaddress5.ps1
Set-NetIPAddress -InterfaceIndex 12 -IPAddress 2001:db8::1 -PrefixLength 64 -AddressFamily IPv6

此命令配置了一个带有 64 位前缀的 IPv6 地址。IPv6 通常使用 /64 用于本地网络。AddressFamily 参数确保正确处理 IPv6 地址。请记住,IPv6 配置可能需要额外的路由设置。

来源

PowerShell 文档

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

作者

我叫 Jan Bodnar,是一位充满激情的程序员,拥有丰富的编程经验。我从 2007 年开始撰写编程文章。至今,我已撰写了 1400 多篇文章和 8 本电子书。我在教授编程方面拥有十多年的经验。

列出 所有 PowerShell 教程