vSphere 電源ONのVMの数を数える、再起動


リソースプール別、ホスト別に数える


$vm = Get-VM -Location (Get-resourcepool test07) | Where { $_.PowerState -eq "PoweredOn" } ; $vm.count
$vm = Get-VM -Location (Get-VMHost esxi04.vsphere.local) | Where { $_.PowerState -eq "PoweredOn" } ; $vm.count

ループを回す方法 PoweredOnのみをカウント


$respool   = Get-ResourcePool test07
$vmlist    = Get-VM -Location $respool
$guestlist = Get-VMGuest $vmlist

$PoweredOn=0
for ($i=0; $i -lt $guestlist.count ; $i++){
  if( $vmlist[$i].PowerState -eq "PoweredOn" ){
    $poweredOn++
  }
}
echo $PoweredOn

電源ONのVMをリストアップ リソースプール別 ホスト別


Get-VM -Location (Get-resourcepool test07 ) | Where { $_.PowerState -eq "PoweredOn" } | foreach { echo $_.name}
Get-VM -Location (Get-VMHost esxi01.vsphere.local) | Where { $_.PowerState -eq "PoweredOn" } | foreach { echo $_.name}
Get-VM -Location (Get-VMHost esxi01.vsphere.local) | Where { $_.PowerState -eq "PoweredOn" } | Get-vm

ついでに、電源ONのVMをリスタート


Get-VM -Location (Get-resourcepool test09) | Where { $_.PowerState -eq "PoweredOn" } | Restart-VMGuest
電源に関係なくリスタート
Get-VM -Location (Get-VMHost esxi01.vsphere.local ) | Restart-VMGuest

filterを使って数える 時間かかる(未テスト)


$vm = get-view -viewtype virtualmachine -filter @{"name"="test07"} ; $vm.count