#!/usr/bin/env pwsh . /opt/idssys/powerwall/conf/settings.ps1 Connect-VIServer -Force -Server $args[0] -Protocol https -User $ESXiUsername -Password $ESXiPassword | Out-Null $vms=Get-VM | Where {$_.PowerState -like '*On*' -and $_.Name -notlike '*CLS*' -and $_.Name -notlike '*iSCSI*'} Foreach ($vm in $vms) { $migrating=Get-Task | ?{$_.ObjectId -match 'VirtualMachine'} | Select @{N='VM';E={(Get-View -Id $_.ObjectId).Name }},State,Description | where {$_.VM -eq $vm -and $_.Description -like '*Migrate*' -and $_.State -eq 'Running'} if ([string]::IsNullOrEmpty($migrating)) { Get-VM $vm | Shutdown-VMGuest -Confirm:$false } } Disconnect-VIServer -Server $args[0] -Force –Confirm:$false