3

I am having a problem with the Task Scheduler on Windows Server 2016 not running repetitive tasks after they are disabled and re-enabled.

I create a task with a “Triggers->Start” of five minutes in the future and set the task to run every five minutes. The “Settings->Run task as soon as possible after scheduled start is missed” option is checked.

Everything works fine – task runs at the scheduled Start time and then runs every five minutes.

Disable the task and wait more than five minutes.

Enable the task, it does not run again.

The Next Run time continues to update every five minutes but the task does not run and the Last Run Time is never updated.

There are no entries in the Task History once the task is re-enabled and no events in the Windows event logs.

When the start time is hit on the next day the task starts running again but this is not desirable as there can be a long delay between when the task is re-enabled and the start time comes again.

3
  • 1
    Welcome to Super User! I believe the start trigger "At task creation/modificiation" will do the trick. I presume that manually enabling/disabling the task counts as a modification for these purposes. Otherwise, you could simply manually start the task whenever you re-enable it.
    – jpaugh
    Commented Jan 5, 2018 at 22:48
  • 1
    @jpaugh Great idea, but I've tried this and that Trigger does not seem to fire when a task is enabled/disabled. Commented Jan 5, 2018 at 22:51
  • Here are some alternatives which may be appropriate (in particular, the PowerShell option). I've never tried any of these, so YMMV.
    – jpaugh
    Commented Jan 5, 2018 at 23:26

3 Answers 3

5

The task was set to run every day and repeat either indefinitely or daily. I changed it to Run Once and repeat indefinitely and it resumes execution when the task is enabled after having been disabled.

I think this works because When set up this way the scheduler displays "After triggered, repeat every 5 minutes indefinitely." So once the task is triggered it remains in the "triggered" state even when disabled so once enabled again it resumes running on the schedule.

NOTE: when first setting up the task the start time needs to be set in the future so that the task is triggered for the first time.

0
3

This is expected behavior. A task only starts when one of its Trigger conditions is met. The act of disabling the task has the same effect as stopping the task. Once that happens, it won't run again until a Trigger condition is met. Unfortunately the minimum interval when creating a new trigger is Daily, which is somewhat inflexible in your scenario.

Two options come to mind:

  • Instead of disabling the task to halt its execution, simply stop it. If you only need to stop execution for a short period of time, this may be all you need to do. However, if you need complete control over when the task starts or stops, don't define any Trigger conditions, then start/stop the task manually.
  • Create multiple Triggers such that a trigger will fire after the task is enabled. This is obviously not ideal, especially given your need to run the task every 5 minutes.
0
0

This highlights the difference in behavior between a “Daily” task and a “One time” task. This is a bit counterintuitive, but if you want to be able to disable a task, then have it start firing automatically again right after you re-enable it, you need to make it a “One time” task rather than “Daily.”

Here is how they look in the task list (deliberately named to highlight the schedule differences):

List of tasks

When a Daily task is disabled and re-enabled, it will resume at its Start time (so, later that day or the next day):

Daily task

If a One time task is disabled and re-enabled, it will resume as soon as one more repeat interval elapses, relative to its Start time.

One time task

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .