Do you have the VMware Tools installed on each guest ? And are they up-to-date ?
If yes, this could be used as an indication if the guestOS is up and running
$vm = Get-VM <VM-name> | Get-View
if ($vm.Summary.Guest.ToolsStatus -eq "toolsOK"){
Write-Host "GuestOS running"
}
If your guests only run Windows OS then you could also use the Get-WMIObject cmdlet.