Я пытаюсь найти способ настроить постоянный статический IP-адрес на устройствах Windows 10 IOT с отключенным Nic. У меня есть сценарий, который нужно запустить на устройствах, прежде чем они будут установлены, и часть его - настройка сетевых адаптеров. Когда я использую следующее: New-NetIpAddress -InterfaceIndex 10 -IpAddress 192.168.9.10 -PrefixLength 24 -DefaultGateway 192.168.9.1 -AddressFamily IPv4
Я получаю ошибку New-NetIpAddress : Inconsistent parameters PolicyStore PersistentStore and Dhcp Enabled
Я попытался явно отключить DHCP с помощью Set-NetIPInterface -InterfaceIndex 10 -Dhcp Disabled
перед использованием команды New-NetIpAddress, но я получаю ту же ошибку.
Какие-либо предложения?
Вам необходимо удалить существующий IP-адрес DHCP, уже назначенный адаптеру. Вы также должны установить DNS-сервер для интерфейса. Я привел пример ниже, но заменил xxx.xxx.xxx.xxx на IP-адрес вашего DNS-сервера.
Вам нужно будет отключить DHCP в реестре для этого интерфейса в PersistentStore, прежде чем вы сможете установить IP-адрес.
Set-ItemProperty -Path “HKLM:\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces\$((Get-NetAdapter -InterfaceIndex 10).InterfaceGuid)” -Name EnableDHCP -Value 0
Remove-NetIpAddress -InterfaceIndex 10 -AddressFamily IPv4
Remove-NetRoute -InterfaceIndex 10 -AddressFamily IPv4 -Confirm:$false
New-NetIpAddress -InterfaceIndex 10 -IpAddress 192.168.9.10 -PrefixLength 24 -DefaultGateway 192.168.9.1 -AddressFamily IPv4
Set-DnsClientServerAddress -InterfaceIndex 10 -ServerAddresses "xxx.xxx.xxx.xxx"
На этом веб-сайте есть хороший пример и объяснение процесса: https://www.pdq.com/blog/using-powershell-to-set-static-and-dhcp-ip-addresses-part-1/
На этом сайте рассказывается о той же проблеме, что и у вас, и их решении: http://www.darrylvanderpeijl.com/inconsistent-parameters-policystore-persistentstore-and-dhcp-enabled/
У меня были проблемы с Windows 10 1909 со всем кодом, который я нашел, он казался непоследовательным. Приведенный ниже код работает для меня, выберите эксклюзивный код netsh или powershell:
$IP = $builddata.templateIP
$SubnetMaskBits = $builddata.Subnetmaskbits
$SubnetMask = $builddata.Subnetmask
$Gateway = $builddata.gateway
$Dns = $builddata.DNS1,$builddata.DNS2
$IPType = "IPv4"
$adapter = Get-NetAdapter | Where-Object {$_.InterfaceDescription -like "vmx*"} #looking for vmxnet3
# you can use either at this point
# via netsh
netsh interface ipv4 set interface $adapter.InterfaceIndex dadtransmits=0 store=persistent
netsh interface ip set address name="$($adapter.name)" static $IP $SubnetMask $Gateway 1
# via PowerShell
$adapter | Get-NetIPInterface | ? {$_.addressfamily -eq $IPType} | % {Get-NetIPAddress | Remove-NetIPAddress -Confirm:$false}
$adapter | Get-NetIPInterface | New-NetIPAddress `
-AddressFamily $IPType `
-IPAddress $IP `
-PrefixLength $SubnetMaskBits `
-DefaultGateway $Gateway -Confirm:$false