I need to chreate a scheduled task to shutdown a given VM at a given time and another one to power on the same VM twenty minutes later.
Is there any sample I can start from?
Regards
marius
connect-viserver vcenterName
shutdown-vmguest -vm ServerName
start-sleep -m 20
start-vm -vm ServerName
Put this in a task schedule?
Try something like this
$vmName = 'MyVM'
$time = Get-Date "23/06/17 18:00"
$si = Get-View ServiceInstance
$scheduledTaskManager = Get-View $si.Content.ScheduledTaskManager
$vm = Get-View -ViewType VirtualMachine -Filter @{"Name"=$vmName}
$spec = New-Object VMware.Vim.ScheduledTaskSpec
$spec.Name = "Shutdown $($vmName)"
$spec.Description = "Shutdown $($vmName)"
$spec.Enabled = $true
$spec.Scheduler = New-Object VMware.Vim.OnceTaskScheduler
$spec.Scheduler.runat = $time
$spec.Action = New-Object VMware.Vim.MethodAction
$spec.Action.Name = "ShutdownGuest"
$scheduledTaskManager.CreateScheduledTask($vm.MoRef, $spec)
$spec = New-Object VMware.Vim.ScheduledTaskSpec
$spec.Name = "Power on $($vmName)"
$spec.Description = "Power on $($vmName)"
$spec.Enabled = $true
$spec.Scheduler = New-Object VMware.Vim.OnceTaskScheduler
$spec.Scheduler.runat = $time.AddMinutes(20)
$spec.Action = New-Object VMware.Vim.MethodAction
$spec.Action.Name = "PowerOnVM_Task"
$scheduledTaskManager.CreateScheduledTask($vm.MoRef, $spec)
Blog: lucd.info Twitter: @LucD22 Co-author PowerCLI Reference