Windows Server 2016 中的排程任務在停用然後啟用後不會執行

Windows Server 2016 中的排程任務在停用然後啟用後不會執行

我遇到 Windows Server 2016 上的任務排程器在停用並重新啟用重複任務後無法執行的問題。

我創建了一個「觸發器->開始」為未來五分鐘的任務,並將該任務設定為每五分鐘運行一次。勾選「設定->錯過計畫啟動後儘快執行任務」選項。

一切正常 - 任務在計劃的開始時間運行,然後每五分鐘運行一次。

停用該任務並等待五分鐘以上。

啟用該任務,它不會再次運行。

下次運行時間繼續每五分鐘更新一次,但任務不會運行,上次運行時間永遠不會更新。

重新啟用任務後,任務記錄中不會有任何條目,Windows 事件日誌中也不會出現任何事件。

當第二天達到開始時間時,任務再次開始運行,但這並不可取,因為任務重新啟用和開始時間再次到來之間可能存在很長的延遲。

答案1

此任務設定為每天運行並無限期或每天重複。我將其更改為運行一次並無限期重複,並且當任務在停用後啟用時它會恢復執行。

我認為這是有效的,因為以這種方式設定時,調度程序會顯示「觸發後,每 5 分鐘無限期地重複一次」。因此,一旦任務被觸發,即使停用,它也會保持在「已觸發」狀態,因此一旦再次啟用,它就會恢復按計劃運行。

注意:首次設定任務時,需要將開始時間設定為將來的時間,以便第一次觸發任務。

答案2

這是預期的行為。任務僅在滿足其觸發條件之一時啟動。禁用任務的行為與停止任務具有相同的效果。一旦發生這種情況,它不會再次運行,直到滿足觸發條件。不幸的是,創建新觸發器的最小間隔是日常的,這在您的場景中有點不靈活。

我想到了兩個選擇:

  • 無需禁用任務來停止其執行,只需停止它即可。如果您只需要短暫停止執行,這可能是您需要做的全部。但是,如果您需要完全控制任務啟動或停止的時間,請不要定義任何觸發條件,然後手動啟動/停止任務。
  • 建立多個觸發器,以便在啟用任務後觸發觸發器。這顯然並不理想,特別是考慮到您需要每 5 分鐘運行一次任務。

答案3

這突顯了「每日」任務和「一次性」任務之間的行為差異。這有點違反直覺,但如果您希望能夠停用某個任務,然後讓它在重新啟用它後立即自動啟動,您需要將其設為「一次性」任務而不是「每日」任務。

以下是它們在任務清單中的外觀(特意命名以突出日程安排差異):

任務清單

當每日任務被停用並重新啟用時,它將在其開始時間恢復(因此,當天晚些時候或第二天):

每日任務

如果一次性任務已停用並重新啟用,則一旦再經過重複間隔(相對於其開始時間),該任務就會恢復。

一次性任務

相關內容