注:批量添加内存或CPU必须在虚拟机关闭的情况下才能完成
假设这样一个场景,DEV集群新部署的几套环境因主机内存不足,需要临时来将部分虚拟机内存降低,在部署完后再将内存调回去,如何处理?
$vms = get-vm DEV01* # 获取虚拟机名以DEV01开头的所有虚拟机 foreach($vm in $vms) { # 遍历这些虚拟机 stop-vm $vm -confirm:$false # 关闭该虚拟机 $vmem = $vm | select -expandproperty memorygb # 获取该虚拟机当前内存值,-expandproperty用于直接获取值,否则的获取的是一个键值对,无法直接做运算 #$vcpu = $vm | select -expandproperty numcpu # 获取该虚拟机CPU数 $new_vmem = $vmem /2 # 将内存数降低到一半并赋值给new_vmem set-vm $vm -memorygb $new_vmem -confirm:$false # 修改该虚拟机内存值到最新 start-vm $vm -confirm:$false # 开启该虚拟机 }
如上脚本,cpu也可以相应批量修改
注:-confirm:$false这个参数经常使用,作用是不需要再次点击确认,相对应的是-confirm:$true