web-dev-qa-db-ja.com

Windows Server 2016のスケジュールされたタスクスケジュールは将来のものである必要があります

監視に使用される約20のスケジュールされたタスクがある2012サーバーがあります。それを置き換えるために2016年のサーバーを構築しました。新しいサーバーにタスクを移動すると、問題が発生しました。ほとんどのタスクは数分ごとに実行されます。

Server 2012では、当日の1200AM(つまり過去の時間)にタスクを開始し、X分ごとに再実行するようにスケジュールします。タスクは次の予定時刻に開始されます。完璧です。

Server 2016では、過去に開始されたスケジュールは実行されません。そのため、将来的に開始するようにスケジュールする必要がありました。再起動するまでこれで問題ありません。現在、開始時刻は過去であり、実行されません。失敗した実行も登録されません。次回の実行時間の列は、実行する必要があるが実行されないことを示しています。

Example Current Schedule

2つのトリガーを作成する以外に、1つは将来開始するトリガー、もう1つは再起動時に開始するトリガー(一部のタスクは指定した時間にのみ実行する必要があるため、実行しない)の方が良い方法はありますか?これはバグのようです。 2012年版はうまくいきました。

更新

これには回避策があります。無期限に実行される1回限りのスケジュールを作成します。これは、再起動後に期待どおりに機能します。これは、「奇妙な」スケジュールには適していませんが、3分おきに実行したいものには適しています。

21
SteveB

参考までに-昨日開いたサポートチケットを通じて、これがバグであることをマイクロソフトに確認しました。サポート技術者は、内部的にバグとして分類されており、パッチが開発中であることを確認しました。 7月/ 8月のパッチのリリース予定日が与えられました。

これは、Windows 10とServer 2016の両方に影響します。私のテストシステムには、昨日の累積的な更新プログラムがパッチされています。この問題は、Server 2012 R2およびWindows 7では発生しませんでした。

編集-2017年8月の可能性がありますが、2017年9月は間違いなく、この問題は私がテストしたシステムで修正されています。

5
Tom Collins

この問題は、Repeat task every: ...オプションが設定されているタスクにのみ影響するようです。

これまでのところ、trigger at X, then repeat every 10 minutesはタスクスケジューラでtrigger at every xx:x0を記述するための不必要に複雑な方法であるという印象を受けました。

どうやらそうではありません。明らかに、それはまさにそれが言っていることを意味します:タスクはXでトリガーされ、その後、それだけが繰り返されます。初期トリガーなし、繰り返しなし。タスクスケジューラでtrigger at every xx:x0をスケジュールする簡単な方法はないようです(またはありますか?それは別のServerfaultの質問になるかもしれません)。 。

この問題を「解決」するには、タスクを12:00every日(1日だけではなく)に実行するようにスケジュールし、... 1日分。つまり、12:00に再起動すると、タスクが再開されます。これは理想的ではありませんが、許容できる妥協点です。

1時間ごとに1つのトリガーを作成することにより、「タスクダウンタイム」を1時間に短縮し、その後、タスクを...分ごとに1時間繰り返すことができると思います。

驚いたことに、それはいつもそうであったようです(最初のコメント (この回答に対して を参照)を参照してください)。リンクされた回答の他のコメントによると、この問題を解決する標準的な方法は、Run task as soon as possible after a scheduled start is missedオプションをアクティブにすることです。

だから、はい、それはバグですが、実際のスケジュールではなく、バグがあるのは「次回の実行時間」列です。

3
Heinzi