Scheduled Task does not run after being re-enabled again

I have a lot of scheduled tasks that run, say, every 5 minutes. The trigger is defined as follows.

At 10:35 every day - After triggered, repeat every 1 hour indefinitely

Recently I disabled and enabled them again. However, I noticed that the tasks weren't running anymore after I enabled them again. The column Next Run Time is correct, but nothing happens at that time. After Next Run Time passes, the task does not run and the column Last Run Time isn't updated, because (apparently) the task did not run.

The only way I can get the tasks to run is that I go into its properties and update the schedule time to some time in the (near) future:

enter image description here

So my hunch is that the issue lies in the fact that the time lies in the past when I enable them. This hasn't been an issue in the past though. Only after migrating to this new Windows Server 2019 Standard (10.0.17763) server, this issue started to arise.

FWIW, these Scheduled Tasks where migrated from another server and I imported them via the XML-file import. I took a look at these XML files and nothing seems suspicious. The weird thing is really that setting the start time to something in the future solves this issue. However, this is no feasible solution for me, because I have many tasks and I need to disable and re-enable them monthly. As I said, this hasn't been an issue on the server where I migrated from.

There is also no error code shown as Last Run Result after a missed start:

enter image description here

I share the exported and redacted XML here: https://pastebin.com/CGgsjwza

I have seen people having similar issues, but I am not sure if these apply to my case:

  • Task Scheduler: Disabled task not running after being re-enabled

  • Scheduled tasks in Windows Server 2016 don't run after being disabled then enabled


Your solution that you think is incorrect, is actually exactly what you need to do.

You have to set the next execution time for the next moment you want the cycle to start (so usually you want to change the date to tomorrow) and then wait for that moment to pass, optionally running the task on demand earlier one or more times as desired.

The reason for this is as follows: Every time a task is executed, it will plan a new (hidden) task for its next occurrence. Given that currently no task is planned, nothing happens. By executing the task at least once, it can then plan its hidden successor.