本記事はマイクロソフト社員によって公開されております。
皆さん、こんにちは。Windows サポート チームの須藤です。
今回は、タスク スケジューラの動作についてご所望の動作とは異なる振る舞いに繋がる設定についてご紹介します。
概要
タスク スケジューラのトリガーの設定が下記の条件の場合、”有効期限” を過ぎても繰り返しタスクが実行されてしまう場合がございます。
条件
- トリガーがスケジュール実行の「毎日」「毎週」「毎月」のいずれか。
- “繰り返し間隔” が設定されている。
- “有効期限” が設定されている。
事象発生環境
Server OS
Windows Server 2016 以降で事象が発生することを確認しています。
※ Windows Server 2016 は、すでにメインストリーム サポートが終了しておりますため、当該事象に対する修正が配布される予定はございません。
Client OS
Windows 10 以降で事象が発生していることを確認しています。
今後の修正対応
現時点では修正予定はないため、本ブログ記載の回避策を実施いただけますと幸いです。
事象が発生するシナリオ
以下の 2 つのシナリオで事象の再現を確認しております。
- 設定した「有効期限」を過ぎた後、継続して「繰り返し」が実行される。
- 設定した「有効期限」を過ぎた後、特定の操作後に「繰り返し」が実行される。
シナリオ 2 の特定の操作は以下の操作を指します。
- Windows OS の再起動
- タスクの作成
- タスクの保存
- タスクの有効化
例えば、前述の <条件> に記載の画面キャプチャの通りのタスクを作成した場合、本来では有効期限に設定されている“2023/01/31 0:00:00” 以降のタスクについては実行されないことが想定されますが、当該事象に合致している状況では、有効期限である “2023/01/31 0:00:00” 以降にタスクが実行されます。
回避策
トリガー設定「1 回」を使用
例えばトリガー設定「毎日」に繰り返し間隔を設定されており、かつ繰り返しの継続時間が 1 日間となっている場合には、トリガー設定を「1 回」に変更し、繰り返しの継続時間を無期限に変更することで同じタイミングでのタスク実行が可能となる可能性があります。
例
トリガー設定 : 毎日 –> 1 回
繰り返し間隔 : 5 分 –> 5 分
継続期間 : 1 日間 –> 無期限
タスク スケジューラで無期限に繰り返しを行うタスクを作成する際の注意点がございますため、以下の弊社ブログをご参考にいただけますと幸いでございます。
参考: タスク スケジューラで無期限に繰り返しを行うタスクを作成する際の注意点
https://jpwinsup.github.io/blog/2023/02/07/UserInterfaceAndApps/Repeat-task-indefinitely-issues/
繰り返しの解除
繰り返しの回数が少ない場合には、繰り返し設定を行わず、それぞれを個別のトリガーとして登録することで、複数回のタスク実行を行いながら事象を回避できる可能性があります。
※ トリガー設定を変更できず、また繰り返しを解除することができない場合には、以下の方法をご検討ください。
事象に合致しているタスクを任意のタイミングで無効化していただく
事象に合致しているタスクを無効化いただくことで事象を回避できる可能性があります。
一例ではございますが、別のタスクから事象に合致しているタスクを無効化することが可能でございます。
上記の詳細な内容については弊社サポートまでお問い合わせくださいませ。
事象発生タスクにて実行しているスクリプト内で有効期限を考慮して処理する方法
有効期限に指定したい日時が来た場合に、スクリプト内で条件判定を行い、実行日時が有効期限を超えている場合は、スクリプト内でタスクを無効化する対応や実際の処理をスキップする対応をご検討くださいませ。
本情報が少しでもご利用者様の運用の一助となりますと幸いでございます。
※本記事につきましては予告なく内容が変更される場合がございますことをご了承くださいませ。