通过 powershell 设置静态 ip 不起作用

通过 powershell 设置静态 ip 不起作用

我正在尝试为 PC 的本地网络自动配置一个静态 IP 地址。

计算机使用的是 Windows 10,我想使用 PowerShell 脚本来自动化配置过程。

我尝试了以下指令序列

# We remove possible remaining configurations
Remove-NetIPAddress -InterfaceAlias Ethernet
Set-NetIPInterface -InterfaceAlias Ethernet -AddressFamily IPv4 -Dhcp Disable
New-NetIPAddress -InterfaceAlias Ethernet -AddressFamily IPv4 -IPAddress 10.168.1.3  -PrefixLength 24 \
   -DefaultGateway 10.168.1.1

当我这样做时,我收到以下错误消息:

new-NetIPAddress : Inconsistent parameters PolicyStore PersistentStore and Dhcp Enabled
At line:1 char:1

奇怪的是,如果我使用图形界面,更改适配器设置TCP/IPv4 设置已禁用 DHCP,即设置了静态 IP 设置,但 IP、网络掩码和网关未设置。

您是否知道这里到底发生了什么事情以及如何解决这个问题?

答案1

文章 使用 PowerShell 设置静态和 DHCP IP 地址 - 第 1 部分 有这个 PowerShell 脚本,您可以根据需要进行调整:

$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
# Configure the DNS client server IP addresses
$adapter | Set-DnsClientServerAddress -ServerAddresses $DNS

相关内容