PowerCLI

 View Only
  • 1.  Creating a scheduled task to shutdown and reboot a VM

    Posted Jun 22, 2017 03:23 PM

    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



  • 2.  RE: Creating a scheduled task to shutdown and reboot a VM

    Posted Jun 22, 2017 03:30 PM

    connect-viserver vcenterName

    shutdown-vmguest -vm ServerName

    start-sleep -m 20

    start-vm -vm ServerName

    Put this in a task schedule?



  • 3.  RE: Creating a scheduled task to shutdown and reboot a VM

    Posted Jun 22, 2017 06:36 PM

    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)