21 lines
812 B
PowerShell
Executable File
21 lines
812 B
PowerShell
Executable File
#!/usr/bin/env pwsh
|
||
. /opt/idssys/powerwall/conf/settings.ps1
|
||
|
||
Connect-VIServer -Server $VCENTERHOST -Protocol https -User $VCENTERUSER -Password $VCENTERPASS | Out-Null
|
||
|
||
$vmhosts=$args[0].Split(",")
|
||
Foreach ($vmhost in $vmhosts)
|
||
{
|
||
$vms=Get-VMHost | Where {$_.Name -eq $vmhost} | 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 $VCENTERHOST -Force –Confirm:$false
|
||
|