我在 Windows Server 2016 上遇到一个问题,即在禁用并重新启用重复任务后,任务计划程序无法运行。
我创建了一个任务,其“触发器->开始”为五分钟后,并将任务设置为每五分钟运行一次。“设置->在错过计划启动后尽快运行任务”选项已选中。
一切正常 - 任务在预定的开始时间运行,然后每五分钟运行一次。
禁用该任务并等待五分钟以上。
启用该任务,它不会再次运行。
下次运行时间继续每五分钟更新一次,但任务不会运行,并且上次运行时间从未更新。
重新启用任务后,任务历史记录中将没有任何条目,并且 Windows 事件日志中也将没有任何事件。
当第二天到达开始时间时,任务将再次开始运行,但这并不可取,因为重新启用任务和再次到达开始时间之间可能会有较长的延迟。
答案1
该任务设置为每天运行,并无限期或每天重复。我将其更改为运行一次并无限期重复,当禁用任务后再启用时,它会恢复执行。
我认为这是可行的,因为当以这种方式设置时,调度程序会显示“触发后,无限期地每 5 分钟重复一次。”因此,一旦任务被触发,即使被禁用,它仍处于“已触发”状态,因此一旦再次启用,它就会按照计划恢复运行。
注意:首次设置任务时,需要将开始时间设置为将来的时间,以便首次触发任务。
答案2
这是预期行为。任务仅在满足其触发条件之一时启动。禁用任务的行为与停止任务具有相同的效果。一旦发生这种情况,它将不会再次运行,直到满足触发条件。不幸的是,创建新触发器的最小间隔是日常的,这在您的场景中有些不灵活。
我想到两个选择:
- 无需禁用任务来停止其执行,只需停止它即可。如果您只需要在短时间内停止执行,这可能就是您需要做的全部事情。但是,如果您需要完全控制任务的启动或停止时间,请不要定义任何触发条件,然后手动启动/停止任务。
- 创建多个触发器,这样在启用任务后触发器就会触发。这显然不是理想的选择,尤其是考虑到您需要每 5 分钟运行一次任务。