
Windows Server 2016 のタスク スケジューラで、繰り返しタスクを無効にして再度有効にした後、そのタスクが実行されないという問題が発生しています。
「トリガー->開始」で 5 分後のタスクを作成し、5 分ごとにタスクが実行されるように設定します。「設定->スケジュールされた開始を逃した後、できるだけ早くタスクを実行する」オプションがオンになっています。
すべて正常に動作します。タスクはスケジュールされた開始時間に実行され、その後 5 分ごとに実行されます。
タスクを無効にして 5 分以上待機します。
タスクを有効にすると、再度実行されなくなります。
次回実行時間は 5 分ごとに更新され続けますが、タスクは実行されず、最終実行時間は更新されません。
タスクが再度有効になると、タスク履歴にエントリは表示されなくなり、Windows イベント ログにもイベントは記録されなくなります。
翌日の開始時刻になるとタスクは再び実行を開始しますが、タスクが再度有効になってから開始時刻になるまでに長い遅延が発生する可能性があるため、これは望ましくありません。
答え1
タスクは毎日実行され、無期限または毎日繰り返されるように設定されていました。これを「一度実行し、無期限に繰り返す」に変更し、タスクが無効になった後に有効になったときに実行を再開します。
この方法で設定すると、スケジューラに「トリガー後、5 分ごとに無期限に繰り返します」と表示されるので、これが機能すると思います。したがって、タスクがトリガーされると、無効になっていても「トリガー済み」状態のままになり、再度有効にすると、スケジュールに従って実行が再開されます。
注意: タスクを初めて設定するときは、タスクが初めてトリガーされるように、開始時刻を将来の時刻に設定する必要があります。
答え2
これは想定された動作です。タスクは、トリガー条件の1つが満たされたときにのみ開始されます。タスクを無効にすると、タスクを停止するのと同じ効果があります。タスクが停止すると、トリガー条件が満たされるまでタスクは再実行されません。残念ながら、新しいトリガーを作成するときの最小間隔は毎日、これはあなたのシナリオではやや柔軟性に欠けます。
2つの選択肢が思い浮かびます:
- タスクを無効にして実行を停止するのではなく、単に停止します。実行を短時間だけ停止する必要がある場合は、これだけで十分です。ただし、タスクの開始または停止を完全に制御する必要がある場合は、トリガー条件を定義せず、タスクを手動で開始/停止します。
- タスクが有効になった後にトリガーが起動するように、複数のトリガーを作成します。特に 5 分ごとにタスクを実行する必要があることを考えると、これは明らかに理想的ではありません。