It is hard for me to boil this down, so the title is ultimately the question I suppose I need answered. Still, here is the background of my question:
I am currently trying to create a Windows task that will automatically execute a program once a month on the computers here at the office. Hours here are somewhat flexible, though, and I can't expect that people will be logged in at their computers at any particular time.
This program occasionally requires user input and creates pop-up dialogs; I do not have the option to run it in the background. It is executed via batch script, as there is file manipulation that needs to follow after the program execution. To be clear, my task's only action is to start this batch file.
I've tried the two most obvious settings:
Run task as soon as possible after a scheduled start is missed
Appears to do nothing. I wish I could find a detailed explanation of when a task is considered "missed." Apparently it does not include tasks that require the user to be logged on but whose scheduled times pass while the user is not logged on.
If the task fails, restart every...
Also appears to do nothing. I was able to make my task produce a result of (0x4) in the Task Scheduler by changing the task configuration to run when the user was not logged on. I thought it would be considered a failure, but it did not trigger any further attempts at executing the task.
I need this task to execute (1) on the first Monday of each month at 8:50 AM or (2) as soon as possible afterwards. This seems like such a simple goal and I am totally frustrated by these settings not behaving as it seems they ought to.
Will I need to learn PowerShell just to make the task run after missed starts?