VMware Cloud Community
lark_90
Enthusiast
Enthusiast
Jump to solution

Cancel task by PowerCLI

How can i cancel Scheduled Hardware Upgrade by powercli?

1 Solution

Accepted Solutions
LucD
Leadership
Leadership
Jump to solution

Try like this

$spec = New-Object VMware.Vim.VirtualMachineConfigSpec

$spec.scheduledHardwareUpgradeInfo = New-Object VMware.Vim.ScheduledHardwareUpgradeInfo

$spec.scheduledHardwareUpgradeInfo.upgradePolicy = 'never'

Get-VM |

where{$_.ExtensionData.Config.ScheduledHardwareUpgradeInfo.ScheduledHardwareUpgradeStatus -eq [VMware.Vim.ScheduledHardwareUpgradeInfoHardwareUpgradeStatus]::pending } | %{

    $vm.ExtensionData.ReconfigVM($spec)

}


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

View solution in original post

4 Replies
lark_90
Enthusiast
Enthusiast
Jump to solution

The scheduled task is done by this code:

$spec = New-Object -TypeName VMware.Vim.VirtualMachineConfigSpec

$spec.ScheduledHardwareUpgradeInfo = New-Object -TypeName VMware.Vim.ScheduledHardwareUpgradeInfo

$spec.ScheduledHardwareUpgradeInfo.UpgradePolicy = "always"

$spec.ScheduledHardwareUpgradeInfo.VersionKey = "vmx-11"

#$vm.ExtensionData.ReconfigVM_Task($spec)

Import-Csv "C:\List.csv" | %{

     (Get-VM $_.Name).ExtensionData.ReconfigVM_Task($spec)

}

That's all working ok. But for some reason it requires to undo this upgrade.

Get-Task shows nothing:

Get-Task -Server <servername> -Status Queued

and im trying to understand to list perhaps all the scheduled tasks

(Get-View ScheduledTaskManager).ScheduledTask | %{ (Get-View $_).Info }

0 Kudos
lark_90
Enthusiast
Enthusiast
Jump to solution

Apparently ScheduledTaskRemovedEvent  only "records the removal of a scheduled task" rather than do an action!

$vm= get-vm -name <x>

$spec3 = New-Object -TypeName VMware.Vim.VirtualMachineConfigSpec

$spec3.ScheduledHardwareUpgradeInfo = New-Object -TypeName VMware.Vim.ScheduledTaskRemovedEvent

....

$vm.ExtensionData.ReconfigVM_Task($spec)

Trying to find a suitable action in doted line if there is any!

0 Kudos
LucD
Leadership
Leadership
Jump to solution

Try like this

$spec = New-Object VMware.Vim.VirtualMachineConfigSpec

$spec.scheduledHardwareUpgradeInfo = New-Object VMware.Vim.ScheduledHardwareUpgradeInfo

$spec.scheduledHardwareUpgradeInfo.upgradePolicy = 'never'

Get-VM |

where{$_.ExtensionData.Config.ScheduledHardwareUpgradeInfo.ScheduledHardwareUpgradeStatus -eq [VMware.Vim.ScheduledHardwareUpgradeInfoHardwareUpgradeStatus]::pending } | %{

    $vm.ExtensionData.ReconfigVM($spec)

}


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

lark_90
Enthusiast
Enthusiast
Jump to solution

Appreciated!

0 Kudos