
我遇到 Windows Server 2016 上的任務排程器在停用並重新啟用重複任務後無法執行的問題。
我創建了一個「觸發器->開始」為未來五分鐘的任務,並將該任務設定為每五分鐘運行一次。勾選「設定->錯過計畫啟動後儘快執行任務」選項。
一切正常 - 任務在計劃的開始時間運行,然後每五分鐘運行一次。
停用該任務並等待五分鐘以上。
啟用該任務,它不會再次運行。
下次運行時間繼續每五分鐘更新一次,但任務不會運行,上次運行時間永遠不會更新。
重新啟用任務後,任務記錄中不會有任何條目,Windows 事件日誌中也不會出現任何事件。
當第二天達到開始時間時,任務再次開始運行,但這並不可取,因為任務重新啟用和開始時間再次到來之間可能存在很長的延遲。
答案1
此任務設定為每天運行並無限期或每天重複。我將其更改為運行一次並無限期重複,並且當任務在停用後啟用時它會恢復執行。
我認為這是有效的,因為以這種方式設定時,調度程序會顯示「觸發後,每 5 分鐘無限期地重複一次」。因此,一旦任務被觸發,即使停用,它也會保持在「已觸發」狀態,因此一旦再次啟用,它就會恢復按計劃運行。
注意:首次設定任務時,需要將開始時間設定為將來的時間,以便第一次觸發任務。
答案2
這是預期的行為。任務僅在滿足其觸發條件之一時啟動。禁用任務的行為與停止任務具有相同的效果。一旦發生這種情況,它不會再次運行,直到滿足觸發條件。不幸的是,創建新觸發器的最小間隔是日常的,這在您的場景中有點不靈活。
我想到了兩個選擇:
- 無需禁用任務來停止其執行,只需停止它即可。如果您只需要短暫停止執行,這可能是您需要做的全部。但是,如果您需要完全控制任務啟動或停止的時間,請不要定義任何觸發條件,然後手動啟動/停止任務。
- 建立多個觸發器,以便在啟用任務後觸發觸發器。這顯然並不理想,特別是考慮到您需要每 5 分鐘運行一次任務。