我需要安排运行几个任务,每个任务需要在不同城市的特定当地时间运行。例如,一个任务可能需要在纽约市 19:00 运行,另一个任务需要在柏林 08:00 运行。
问题不仅在于夏令时会改变这些作业运行的 UTC 时间,而且不同的城市会在不同的日期调整其时钟,因此不同城市之间的偏移量也在不断变化。
有没有办法在 Windows 中做到这一点而不编写自定义脚本? 有没有可以处理这个问题的商业软件包?
答案1
这个答案表示 Windows 任务计划程序“新触发器”窗口有一个复选框Synchronize across time zones
。选中后:
任务仅按 UTC 安排。(所有时间仍显示为本地时间,但存储为 UTC。)
基本上就是创建任务,创建触发器,勾选那个框,设置时间,务必减去运行任务的机器当前位置的时区差异。
例如:任务是在加利福尼亚的服务器上设置的,该服务器采用太平洋标准时间 (PST),即 UTC -8,因此我们需要在加利福尼亚/太平洋标准时间上添加 8 小时以获得 UTC 时间。假设我希望它在纽约下午 6 点运行,即 EST,它本身就是 UTC -5,这意味着在纽约/EST 上添加 5 小时以获得 UTC 时间;因此下午 6 点将是 UTC 晚上 11 点。因此,在加利福尼亚服务器任务上,我们希望它是 UTC 晚上 11 点,然而任务显示加利福尼亚时间,但我们知道加利福尼亚时间是 UTC -8,所以我们只需将任务设置为在下午 3 点开始。这一切都是提供该复选框,正如用户建议的那样。我似乎找不到关于它的官方 Microsoft 文档。这显然非常令人困惑
答案2
您看过 Windows 任务调度程序吗?它的调度功能相当复杂。
有一个相当不错的教程https://www.windowscentral.com/how-create-automated-task-using-task-scheduler-windows-10。如果该链接失效,只需谷歌搜索“windows 任务计划程序”。
我从未在时区上使用过它,但它看起来确实具有时区功能。
答案3
您可以在任务计划程序中在特定时间安排各种不同的任务。为此,请转到任务计划程序 >> 操作 >> 创建任务
您可以在那里尝试任务
任务计划程序有许多不同的操作可供您尝试。我不知道它们是否可以在不同的时区运行,但您可以让任务在您当地的时区运行。
答案4
为什么需要从一个特定主机运行任务?为什么不在每个系统上运行任务,如果需要,则在一个网络关联卷上托管脚本源。当脚本完成时,它可以设置任何通知并将它们写回到共享或每个主机已经维护了自己的时间同步以满足本地需求。
看起来,你通过添加不必要的限制使你的工作变得更加困难。