首页 > 解决方案 > IPv4 属性 UI 中“使用以下 IP 地址”的 Powershell 等效项是什么?

问题描述

我正在寻找一个禁用 DHCP 并将机器的私有 IP 设置为静态 IP 的 Powershell 命令;基本上,我正在寻找与 UI 中的以下操作等效的 Powershell。

控制面板 -> 网络和共享中心 -> 以太网 -> 属性 -> IPv4 -> 属性 -> 关闭“自动获取 IP 地址”并打开“使用以下 IP 地址” -> 填写 IPv4 地址,默认网关和子网掩码。

我想对这个窗口进行 Powershell

以下来自本指南的命令似乎描述了我所追求的,但Remove-NetIPAddress导致我被踢出服务器并将我锁定在外面。

$IP = "10.10.10.10"
$MaskBits = 24 # This means subnet mask = 255.255.255.0
$Gateway = "10.10.10.1"
$Dns = "10.10.10.100"
$IPType = "IPv4"
# Retrieve the network adapter that you want to configure
$adapter = Get-NetAdapter | ? {$_.Status -eq "up"}
# Remove any existing IP, gateway from our ipv4 adapter
If (($adapter | Get-NetIPConfiguration).IPv4Address.IPAddress) {
 $adapter | Remove-NetIPAddress -AddressFamily $IPType -Confirm:$false
}
If (($adapter | Get-NetIPConfiguration).Ipv4DefaultGateway) {
 $adapter | Remove-NetRoute -AddressFamily $IPType -Confirm:$false
}
 # Configure the IP address and default gateway
$adapter | New-NetIPAddress `
 -AddressFamily $IPType `
 -IPAddress $IP `
 -PrefixLength $MaskBits `
 -DefaultGateway $Gateway

只要现有的 IPv4 地址还在,我就无法创建新的 IPv4 地址,但删除现有的地址会破坏与服务器的连接。

标签: windowsazurepowershell

解决方案


这是不正确的。您可以在同一接口上设置多个 IP。因此,您只需添加新的New-NetIPAddress,然后删除前一个。

在此处输入图像描述

$currentIP = Get-NetIPAddress | where ipaddress -eq '192.168.43.96'

New-NetIPAddress -InterfaceAlias $currentIP.InterfaceAlias -IPAddress 192.168.43.20 -PrefixLength 24

Remove-NetIPAddress -InterfaceAlias $currentIP.InterfaceAlias -IPAddress $currentIP.IPAddress

在此处输入图像描述

DNS 和网关是不同的东西。如果您不需要,请不要更改这些。要避免确认提示,只需添加-Confirm:$falseRemove-NetIPAddress命令中。


推荐阅读