我正在尝试为 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