概述
在 Windows 中,不仅可以从 GUI 管理网络适配器的设置,还可以从 PowerShell 命令提示符管理网络适配器的设置。在本文中将介绍最重要的 cmdlet,您可以使用它们来查找网络适配器的当前 IP 地址、分配静态 IP 地址、分配 DNS 服务器 IP 或配置网络接口以接收 IP来自 DHCP 服务器的配置。您可以使用这些 cmdlet 在 Windows 10/11 和 Windows Server(或Server Core版本)、Hyper-V Server 上配置网络,以更改远程计算机上以及 PowerShell 自动化脚本中网络适配器的 IP 设置。
管理网络适配器设置
列出可用网络接口
Get-NetAdapter
仅显示已启用的接口
Get-NetAdapter -Physical | ? {$_.Status -eq "Up"}
更改适配器名称
Rename-NetAdapter -Name Ethernet0 -NewName LAN
按名称禁用网络接口
Get-NetAdapter -Name Ethernet0| Disable-NetAdapter
按名称启用网络接口
Enable-NetAdapter -Name Ethernet0
查看网卡VLANID
Get-NetAdapter | ft Name, Status, Linkspeed, VlanID
查看网卡驱动信息
Get-NetAdapter | ft Name, DriverName, DriverVersion, DriverInformation, DriverFileName
禁用接口的IPv6协议
Get-NetAdapterBinding -InterfaceAlias Ethernet0 | Set-NetAdapterBinding -Enabled:$false -ComponentID ms_tcpip6
禁用接口NetBIOS协议
Set-NetAdapterBinding -Name Ethernet0 -ComponentID ms_netbios -AllBindings -Enabled $True
获取当前的网络信息
Get-NetIPConfiguration -InterfaceAlias Ethernet0
更详细设置
Get-NetIPConfiguration -InterfaceAlias Ethernet0 -Detailed
在这种情况下,会显示接口分配的网络位置(配置文件) (NetProfile.NetworkCategory)、MTU 设置 (NetIPv4Interface.NlMTU)、是否启用从 DHCP 获取 IP 地址 (NetIPv4Interface.DHCP) 以及其他有用信息。
显示网络协议列表
Get-NetAdapterBinding -Name ethernet0 -IncludeHidden -AllBindings
设置静态IP地址
Get-NetAdapter -Name Ethernet0 | New-NetIPAddress -IPAddress 192.168.0.111 -DefaultGateway 192.168.0.1 -PrefixLength 24
添加第二个IP地址
New-NetIPAddress -IPAddress 192.168.1.100 -PrefixLength 24 -InterfaceAlias Ethernet0 -SkipAsSource $True
删除静态IP地址
Remove-NetIPAddress -IPAddress "192.168.1.100"
设置DNS服务器
Set-DnsClientServerAddress -InterfaceAlias "Ethernet0" -ServerAddresses ("192.168.0.1","223.5.5.5")
管理路由表
获取默认网关路由
Get-NetAdapter -Physical | ? {$_.Status -eq "Up"}| Get-netroute| where DestinationPrefix -eq "0.0.0.0/0"
添加新路由
New-NetRoute -DestinationPrefix "0.0.0.0/0" -NextHop "192.168.2.2" -InterfaceIndex 8
此命令将永久路由添加到路由表中(类似于route -p add
)。如果要添加临时路由,请添加该-PolicyStore "ActiveStore"
选项。重新启动 Windows 后该路由将被删除。
删除路由
Remove-NetRoute -NextHop 192.168.0.1 -Confirm:$False
静态更改为DHCP
Set-NetIPInterface -InterfaceAlias Ethernet0 -Dhcp Enabled
清除DNS服务器设置
Set-DnsClientServerAddress -InterfaceAlias Ethernet0 -ResetServerAddresses
并重新启动网络适配器从DHCP服务器获取地址
Restart-NetAdapter -InterfaceAlias Ethernet0
删除默认网关
Set-NetIPInterface -InterfaceAlias Ethernet0| Remove-NetRoute -Confirm:$false
重置所有接口为DHCP
如果需要重置计算机网络接口的所有 IPv4 设置并将其切换为从 DHCP 获取动态 IP 地址,请使用以下脚本
$IPType = "IPv4"
$adapter = Get-NetAdapter | ? {$_.Status -eq "up"}
$interface = $adapter | Get-NetIPInterface -AddressFamily $IPType
If ($interface.Dhcp -eq "Disabled") {
If (($interface | Get-NetIPConfiguration).Ipv4DefaultGateway) {
$interface | Remove-NetRoute -Confirm:$false
}
$interface | Set-NetIPInterface -DHCP Enabled
$interface | Set-DnsClientServerAddress -ResetServerAddresses
}