我有一个PowerCLI脚本,可以关闭虚拟机,更改其内存和CPU,然后重新启动。我已经改编了该脚本以利用变量。这一切都完美地运行。
现在,我正在尝试修改脚本以利用数组,以便循环遍历多个虚拟机。关闭和打开虚拟机的脚本部分完美地工作。
我遇到的问题是在foreach循环中使用两个数组中的变量。
对于$vm_name中的每个VM,我需要设置在$memory_gb中找到的相应内存量。
这就是我所拥有的(它目前为所有VM设置相同的内存量(“1”))...
现在,我正在尝试修改脚本以利用数组,以便循环遍历多个虚拟机。关闭和打开虚拟机的脚本部分完美地工作。
我遇到的问题是在foreach循环中使用两个数组中的变量。
对于$vm_name中的每个VM,我需要设置在$memory_gb中找到的相应内存量。
这就是我所拥有的(它目前为所有VM设置相同的内存量(“1”))...
$vm_name = @("OMAC-SBXWIN7AJM", "OMAC-SBXWIN2012R2AJM", "OMAC-SBXWIN2008R2AJM")
$memory_gb = 2,4,4
# SET THE VM MEMORY
Write-Host 'NOW SETTING THE VM MEMORY'
foreach ($objItem in $vm_name)
{Set-VM -VM $vm_name -MemoryGB 1 -confirm:$false
Break
}
http://i.stack.imgur.com/E9hfY.png
...我已经尝试在第一个循环中嵌套第二个循环,但没有成功。
如何编写脚本,使$vm_name中的每个虚拟机都获得$memory_gb中相应的内存量?
$x, $a1 = $a1
的语法是用于解包数组的下一个成员,而不是保留手动迭代器$i
或类似的东西。 - Maximilian Burszley