Windows Server 2016 计划任务计划必须在未来

Windows Server 2016 计划任务计划必须在未来

我们有一台 2012 服务器,上面有大约 20 个用于监控的计划任务。我们构建了一台 2016 服务器来替换它,当我将任务移至新服务器时,我遇到了一个问题。我们的大多数任务每隔几分钟运行一次。

在 Server 2012 中,我们会安排任务在当天凌晨 12:00 开始(即过去的某个时间),并每隔 X 分钟重复一次。任务将在下一个安排的时间开始。完美。

在 Server 2016 中,过去启动的计划不会运行。所以我们必须将其安排在将来启动。这在重新启动之前都是可以的。现在启动时间是过去的时间,它不会运行。它甚至没有记录失败的运行。下次运行时间列显示它应该运行,但没有运行。

当前时间表示例

除了创建两个触发器,一个在将来启动,另一个在重启时启动(我们不想这样做,因为有些任务应该只在指定的时间运行),还有更好的方法吗?这似乎是一个错误。2012 版本运行良好。

更新

有一个解决方法。创建一个无限期运行的一次性计划。这在重新启动后会像您期望的那样工作。我知道这对于“奇怪”的计划来说并不好,但对于我们想要每 3 分钟或其他时间运行一次的事情来说却很好。

答案1

仅供参考 - 我已通过昨天开具的支持单向 Microsoft 确认这是一个错误。支持技术人员确认它已被内部归类为错误,并且正在开发补丁。我被告知补丁的发布日期为 7 月/8 月。

这会影响 Windows 10 和 Server 2016。我的测试系统已打上昨天的累积更新补丁。Server 2012 R2 和 Windows 7 中没有出现此问题。

编辑 - 截至可能是 2017 年 8 月,但肯定是 2017 年 9 月,该问题已在我测试过的系统上得到修复。

答案2

该问题似乎只影响Repeat task every: ...设置了选项的任务。

到目前为止,我的印象是,这只是一种在任务计划程序中trigger at X, then repeat every 10 minutes编写的不必要的复杂方式。trigger at every xx:x0

显然不是。显然,它的意思正是它所说的:任务是在X 然后,只有那时它重复了。没有初始触发器,没有重复。我似乎没有简单的方法可以trigger at every xx:x0在任务计划程序中进行安排(或者有吗?这可能是一个很好的单独的 Serverfault 问题。)“下次运行时间”列显示不同内容这一事实并没有多大帮助。

我们通过安排任务在 12:00 运行来“解决”这个问题每一个天(而不是一天),然后每...分钟重复一次,持续 1 天。这意味着如果重新启动,则在 12:00,任务将恢复。这不是理想的,但在这里是可以接受的折衷方案。

我想您可以通过每小时创建一个触发器并让任务在之后的...1 小时内每分钟重复一次来将“任务停机时间”降低到 1 小时。

令人惊讶的是,似乎一直都是这样(见第一条评论对此答案),我们直到现在才注意到。根据链接答案的其他评论,解决此问题的规范方法是激活该Run task as soon as possible after a scheduled start is missed选项。

所以,是的,这是一个错误,但有错误的地方是“下次运行时间”列,而不是实际的调度。

答案3

1。Windows 2016 Server 在您的工作中必然需要这些选项:

  • 错过计划启动后尽快运行任务或
  • 如果任务失败,则重新启动每个

我在截图中记下了这些选项

2. 添加附加触发器。如:

  • 创建或编辑任务时
  • 你几时开始

等的含义:将任务移动到所需的时间开始

3. 在 Windows 2016 的某些任务中 — — 实现了这种方法。

相关内容