[PowerCli]如何通过select获取实际值,运算并批量添加内存和CPU

注:批量添加内存或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

原文地址:https://www.cnblogs.com/xddsq/p/11279260.html