当我通过观看视频开始学习如何做到这一点时,我了解了IP地址接口索引。我了解到,如果不首先知道IP地址的接口索引,我就无法设置IP地址。这似乎在我查看的每台计算机上都不一样,而且似乎是随机的。然后,我了解到,您可以使用IP地址别名。在全新安装Windows时,IP地址别名Ethernet0似乎将成为一个我可以信赖的常量。因此,凭借我的原始PowerShell技能,我认为我可以伸手获取PC的IP地址,并检查它是否与预期匹配。如果不匹配,则清除Ethernet0,并创建一个别名为Ethernet0的新IP地址。当然,我第一次这样做时,它工作得很好,我继续前进。我有一个名为Ethernet0的静态IP地址,具有指定的IP地址。我只是进去查看,我有2个可用的NIC。一个名为“Ethernet”,另一个名为“Ethernet2”。它们都没有静态IP地址。我“我假设PC想在重新启动时设置随机别名?我对发生的事情有点困惑。当然,当我再次运行我的方法时,我得到一个错误,说“没有接口别名等于以太网0”,所以我的代码不起作用。很明显我不知道该如何处理这个问题。我想做一个全新的安装,并运行配置脚本,以设置一切没有任何图形用户界面交互。我不工作在一个企业域类型的环境,并创建自己的过程。请帮助进一步我的PowerShell智慧,因为我只是一个学徒。
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"
}
}
1条答案
按热度按时间n3schb8v1#
您可以使用
Get-NetIPInterface | Select * -First 1
查看有关NetIPInterface
对象的所有可用信息。一些有用的属性包括ConnectionState
、AddressFamily
或Dhcp
。例如,尝试执行以下操作以查找有效属性:不过,您可能会遇到各种各样的问题,因此这取决于您的环境控制程度:
如果你需要用户输入,你可以使用gridview:
也就是说,仅仅设置DHCP来处理这个问题几乎总是比较容易的。DHCP预留通常和用户机器的静态IP一样好