Windows 任务计划程序任务未运行

Windows 任务计划程序任务未运行

我有一个令人沮丧的问题。

我正在尝试使用 Windows 任务计划程序每小时运行一个 vbscript。Windows 10 Pro,不在域上,以 Windows 用户身份本地登录,而不是 Microsoft 帐户。我已将任务设置为在我的用户帐户下运行,仅在我登录时运行,如果任务失败,则每分钟重新启动最多三次,如果正在运行的任务在请求时未结束,则强制其停止,如果任务已在运行,则适用以下规则:并行运行新实例。触发器设置为每天早上 5:00,每 1 小时重复一次(或每 1 分钟重复一次,直到我可以让它工作),持续时间无限期,如果任务运行时间超过 1 分钟则停止任务。触发器已启用。

我可以从任务计划程序 UI 手动运行该任务,并且它会运行。但是它不会定期启动。使用上述设置,我看不出它为什么不会启动。

任务的历史记录似乎不稳定。在我设置它之后它没有立即运行,但它似乎在今天早上开始记录一些东西:我有一系列事件,都是在整分钟后的 31 秒内发生的,显示“错过任务启动被拒绝”。描述说“任务计划程序没有启动任务“saytime”,因为它错过了它的计划。如果错过了计划,请考虑使用配置选项在可用时启动任务。”我没有看到任何条目表明任务已启动,或者已尝试启动,除非我手动启动它。

我检查了 Windows 事件日志,但没有任何内容。

这似乎很愚蠢。任务计划程序,你为什么这么懒?为什么不按时运行任务,而是等待 31 秒然后告诉我现在太晚了?我从来没有指出该任务应该仅在 Windows 空闲时运行。

尽管有这么多花哨的功能,任务计划程序似乎完全不可靠。我打算寻找一个 cron 克隆,因为像这样的简单事情在 Linux 上很简单 - 它就可以正常工作,并且实际上可以进行故障排除。

在线搜索类似问题是没用的,它们只会导致 Windows 出现任何问题的典型结果:

  • 在微软论坛上,经过认证的专业人士告诉人们他们了解他们的问题,并提供帮助,然后引导人们去其他地方询问或寻找解决方案,但他们似乎什么都不知道。我希望这些东西不要出现在谷歌上。
  • 充斥广告的网页,比如一开始就给出明显的建议,比如“检查任务计划程序服务是否正在运行”,然后让你设置其他用户帐户,最后放弃并告诉你你的用户配置文件可能已损坏。随便吧。

谢谢你忍受我的抱怨。我感到很沮丧。

发生了什么事?为什么任务管理器没有执行所要求的操作?

谢谢。

答案1

尽管有这么多花哨的功能,任务计划程序似乎完全不可靠。我打算寻找一个 cron 克隆,因为像这样的简单事情在 Linux 上很简单 - 它就可以正常工作,并且实际上可以进行故障排除。

对我来说,它一直都不可靠。我尝试过几十次设置不同的启动脚本,但它甚至不能可靠地工作。它要么只工作了 2 或 3 次,然后就再也不工作了,要么就是永远都不起作用。在启动时、登录时、有或没有管理员权限时……任何事情。完全不可靠。

在微软论坛上,经过认证的专业人士告诉人们他们了解他们的问题,并提供帮助,然后引导人们去其他地方询问或寻找解决方案,但他们似乎什么都不知道。我希望这些东西不要出现在谷歌上。

我非常讨厌这些求助帖子。感谢您理解这个问题,尽管您实际上无法提供简单的步骤来解决我的问题!

答案2

我知道,对吧?我一直在尝试学习如何在没有 GUI 的情况下使用 Windows,但这非常困难。不是因为做不到,而是因为要完成任何任务,我需要了解所有内部复杂性。

无论如何,有两个问题。您的机器在凌晨 5 点开机吗?您是否选中了“在错过预定启动后尽快运行任务”?

如果您对这两个问题的回答都是肯定的,那么我的建议可能就没用了。这时候我建议尝试一些非常简单的方法,比如将日期回显到文件中。

但除此之外,这就是这位 Unix 极客对 Windows 任务调度服务的了解。

任务调度程序与 cron 不同。您可以获得的最精细级别的触发事件是每天一次。还有每周一次、每月一次或指定数量的事件(登录、注销、机器启动、远程连接到桌面或某些用户定义的事件 ID...)

但是,单个触发器可以重复运行,并且可以无限期地或在指定的持续时间内每分钟运行一次。使用 cron 后,此功能似乎毫无意义,但这是获取 cron 粒度的唯一方法。

如果错过了触发启动时间,您的任务将不会启动,也不会重复。因此,您需要使用选项尽快启动任务,这是在设置下而不是触发器下。立即启动似乎与触发器的启动边界时间和间隔一致。因此,如果您的开始时间是 12:00:00am,重复间隔是 1 小时,并且您的机器在 9:30am 启动,那么它会等到 10:00 才启动任务。

但是我不确定如果在日常工作开始后重新启动机器会发生什么,因为 Windows 会认为没有错过触发器。我需要重新启动才能测试这一点,并且会丢失到目前为止我在这里输入的内容,我必须将其留到下次评论中。

您可以为一个操作指定多个触发器。您可以指定每天 24 次触发器,而不必担心机器重新启动的极端情况。但您可能需要编写一些脚本来简化此操作。

重启后我会回复您。

答案3

我有一系列重大事件,全部发生在整分钟后的 31 秒,显示“错过任务启动被拒绝”

我在更新由调度程序调用的 exe 后遇到了这个问题。解决方案似乎是进入任务设置,进行更改,然后恢复,然后应用更改,这会导致任务重新授权并输入帐户密码。

说实话,如果 Windows 任务调度程序能够处理指定任务可以运行到下一个事件开始时间的设置,我会感到惊讶。正如之前的发帖者所说,最大粒度是 1 分钟。

Windows 任务计划程序不是一个强大的产品。即使在服务器 2019 中,它在小时更改后仍然无法运行任务。

相关内容