为克隆的虚拟机编写脚本来更改 vSphere 中的 vNIC

为克隆的虚拟机编写脚本来更改 vSphere 中的 vNIC

从模板部署 Windows VM 克隆后,如何编写脚本来更改 vNIC 所在的网络(VM 设置窗口中的“网络标签”)并启用 NIC?

我正在使用在一个环境中构建的模板,这些模板需要以自动方式部署到许多环境中,并且需要为部署虚拟机的 vSphere 集群自动重新分配网络。

答案1

我为部署脚本编写了这个函数,它获取 IP 地址并在外部文件中进行查找。以下是代码...

Function Get-NetworkName
{
param($vmip)

$ip      = $vmip
$ipArray = $ip.Split(".")
$subnet  = $ipArray[0] + "." + $ipArray[1] + "." + $ipArray[2]

$path     = "vlanmapping.txt"
$vlanhash = ConvertFrom-StringData -StringData ([io.file]::ReadAllText($path))

$networkname = $vlanhash.Get_Item($subnet)

return $networkname
}

$vmname = "my_vm"
$vmip = "10.10.1.100"
Get-VM -name $vmname | Get-NetworkAdapter | Set-NetworkAdapter -NetworkName (Get-NetworkName($vmip)) -confirm:$false


#Contents of vlanmapping.txt
#10.10.10=VLAN1
#10.10.20=VLAN2
#10.10.30=VLAN3

小心!这适用于只有 1 个 NIC 的虚拟机。Get-NetworkAdapter cmdlet 返回所有 NIC,因此所有 NIC 都将设置其网络。希望没问题。

相关内容