PowerShell: Monitor Hyper-V VM Heartbeat


$hostname = “ServerName”

$service = gwmi -class “Msvm_VirtualSystemManagementService” -namespace “root\virtualization” -ComputerName $hostname

$VM = gwmi -ComputerName $hostname -namespace “root\virtualization” -query “Select * from Msvm_ComputerSystem where Caption=’Virtual Machine'”

Foreach ($_ in $VM)

{

Write-Host $_.ElementName

$settings = gwmi -ComputerName $hostname -namespace “root\virtualization” -query (“ASSOCIATORS OF {” + $_.__PATH + “} WHERE resultClass = Msvm_VirtualSystemsettingData”)

$HB = $service.GetSummaryInformation($settings.__PATH, 104)

Write-Host $HB.SummaryInformation[0].Heartbeat
#OK (2), #Error (6),No Contact (12), Lost Communication (13), Nothing means Saved or Off

}

Leave a comment