[英]How do I permanently set a static IP Address in Windows 10 using PowerShell for my automated OS build process?
当我开始通过观看视频学习如何执行此操作时,我了解了 IP 地址 InterfaceIndexes。 我了解到,如果不知道 IP 地址的 InterfaceIndex,我就无法设置 IP 地址。 这似乎在我看过的每台计算机上都不一样,而且似乎是随机的。 然后,我了解到您可以使用 IP 地址别名。 在全新的 Windows 安装中,IP 地址别名 Ethernet0 似乎将成为我可以依赖的常量。 因此,凭借我原始的 PowerShell 技能,我认为我可以伸出手并获取 PC 的 IP 地址并检查它是否与预期相符。 如果不是,则清除 Ethernet0 的所有内容,并创建别名为 Ethernet0 的新 IP 地址。 当然,我第一次这样做时效果很好,我继续前进。 我有一个名为 Ethernet0 的静态 IP 地址,具有指定的 IP 地址。 我刚进去看了看,我有 2 个可用的 NIC。 一个叫做“Ethernet”,另一个是“Ethernet2”。 它们都没有静态 IP 地址。 我假设 PC 想要在重新启动时设置随机别名? 我对发生的事情有点困惑。 当然,当我再次运行我的方法时,我收到一条错误消息“没有 InterfaceAlias 等于 ethernet0”,所以我的代码不起作用。 我显然离我应该如何处理这个问题还差得很远。 我想进行全新安装并运行配置脚本来设置所有内容,而无需任何 GUI 交互。 我不在企业域类型的环境中工作,必须创建自己的流程。 请帮助进一步提高我的 PowerShell 智慧,因为我只是一个 Padawan。
function SetIp {
$ipv4 = (Test-Connection -ComputerName $env:COMPUTERNAME -Count 1) .IPV4Address.IpAddressToString
if($ipv4 -eq "my.ip.add.res") {
Write-Host "Do Nothing as the IP has already been set"
}
else {
Remove-NetIPAddress -InterfaceAlias ethernet0
New-NetIPAddress -IPAddress my.ip.add.res -InterfaceAlias ethernet0 -PrefixLength 16
Write-Host "IP Address has been set"
}
}
您可以使用Get-NetIPInterface | Select * -First 1
查看有关NetIPInterface
对象的所有可用信息。 Get-NetIPInterface | Select * -First 1
。 一些有用的属性是ConnectionState
、 AddressFamily
或Dhcp
。 例如,尝试这样的事情来找到有效的:
Get-NetIPInterface | Where {
$_.ConnectionState -eq 'Connected' -and
$_.AddressFamily -eq 'IPV4' -and
$_.InterfaceAlias -like 'Eth*' -and
# check if in your local subnet
($_.DHCP -eq 'Enabled' -or ($_|Get-NetIPAddress).IPv4Address -like '1.2.3.*')
}
不过,您可能会遇到各种各样的事情,所以这取决于您的环境的控制程度:
如果您需要询问用户输入,您可以使用 gridview 来完成:
$Selected = Get-NetIPInterface |
? {$_.AddressFamily -eq 'IPV4' -and $_.InterfaceAlias -notlike 'Loopback*'} |
Select IFIndex,InterfaceAlias,ConnectionState |
# Ask the user to select the interface
Out-GridView -Title 'Please select the correct interface' -OutputMode Single
Set-NetIPInterface -InterfaceIndex $Selected.ifIndex -AddressFamily IPv4 ## etc...
也就是说,仅设置 DHCP 来处理此问题几乎总是更容易。 DHCP 预留通常与用户机器的静态 IP 一样好
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.