タスク スケジューラにWindows 11でタスクを繰り返すように設定しても実行されない問題

全バージョン共通
記事内のリンクには広告が含まれいる場合があります

以前の記事で紹介した自動再起動防止方法ですが、タスク スケジューラに繰り返し実行するタスクを設定することで実現していました。

ところがWindows 11や最近のWindows 10で同じ設定をしても繰り返して実行されないという奇妙な現象が発生していることが分かりました。

以前のタスクの設定

こちらの記事はWindows 10 バージョン1607以降で、アクティブ時間を定期的にずらすことで自動再起動を阻止するものでした。

Windows 10 バージョン1607以降で自動再起動を止める方法(一般向け)
Windows 10 バージョン1607からWindows Updateでの更新の適用後、自動再起動を止められなくなりました。 阻止する方法は幾つかあるのですが、ここで紹介するのはシステムへの影響が少なく、一般ユーザーでも比較的簡単に設定で...

定期的にずらすためにはタスクを利用しました。タスクとはタスク スケジューラに登録することで特定のイベントをトリガーとして指定したプログラムを自動的に実行させる機能です。

記事での方法は、ログオンしたときにタスクを実行し、その後6時間おきに同じタスクを繰り返し実行するというものでした。

記事を公開するにあたり何台かのパソコンで動作確認を行い、定期的に実行されることも確認していました。

今は「サインイン」という言葉が一般的ですが、タスク スケジューラでは「ログオン」という言葉を使っています。そのため以下では「ログオン」に統一しますが、意味としては「サインイン」と同義です。

最近のWindows 11/10でのタスク スケジューラの動作

ところが、最近のWindows 11/10では正しく実行されないことが分かりました。

タスクが起動されるトリガーとして「スタートアップ時」と「ログオン時」を指定すると、その後に繰り返しの処理を指定しても無視されます。

以前の記事ではこのように「ログオン時」をトリガーとして、合わせてその後6時間ごとに繰り返しを指定しています。

Windows11-Task-Scheduler-task-repeat-problem-012

しかし、タスク スケジューラを見ると「次回の実行時刻」が空欄となっており、繰り返し処理が有効でないことが分かります。

Windows11-Task-Scheduler-task-repeat-problem-011

検索してみると同じような問題を抱えている方が多いことが分かりました。皆さんは何かしらの方法で回避していました。繰り返すことと同じ意味になるように複数のトリガーを設定する力技や、「スタートアップ時」や「ログオン時」というトリガーの利用をやめて、「スケジュールに従う」というトリガーを使い時刻を指定するように変更するなどです。

繰り返しタスクが実行されない問題の本質

検索して見つかる記事の中で気になることがありました。トリガーの起点となる「開始」日時に関することです。「開始」日時が正しく指定されていないと繰り返し処理が実行されないようなのです。

したがって、この問題は原因は次のように推測できます。

以前のWindows 10ではトリガーに「スタートアップ時」や「ログオン時」を指定した場合、タスクの実行が完了するとその日時を「開始」日時として自動的に設定していたのでしょう。繰り返しで次に実行すべき日時は設定された「開始」日時からを計算できるため、繰り返しのタスクが想定通りに実行されていたと考えられます。

しかし、最近のWindows 11/10では、トリガーとして「スタートアップ時」や「ログオン時」を指定した場合にタスクの実行が完了してもその日時が自動的に「開始」日時として設定されないため、繰り返しで次に実行すべき日時を計算できなくなり、繰り返し処理が実行されなくなったと考えられます。

昔のWindows 10ではタスクの完了時点を「開始」日時に自動的に設定していたのに、最近のWindows 11/10では設定されないというのはバグのように思えます。しかし、何かしらのセキュリティリスクを回避するために仕様を変更した可能性もあります。

どちらにしろ、以前動作していたタスクが最近のWindows 11/10では動作しないという事実は、ユーザーにとっては迷惑な話です。

繰り返しタスクを実行させるための打開策

この仮定で、他のタスクを調べてみると、「スタートアップ時」や「ログオン時」をトリガーにしているタスクは、繰り返しが設定されておらず「次回の実行時刻」の欄も空白となっています。

そして「次回の実行時刻」が表示されているタスクは、どれもトリガーとして「スケジュールに従う」が指定されています。

これらの中でひとつ変わり種のタスクがありました。「Adobe Acrobat Update Task」というタスクです。

このタスクでは「ログオン時」と「スケジュールに従う」の2つをトリガーとしており、「次回の開始時刻」も表示されていることから繰り返しが有効だということが分かります。

Windows11-Task-Scheduler-task-repeat-problem-013

トリガーを調べてみると、このような2つのトリガーが設定されていました。

Windows11-Task-Scheduler-task-repeat-problem-014

2つのトリガーは、

  • 任意のユーザーのログオン時-トリガーされた後、03:30ごとに無期限で繰り返す
  • 毎日1:00に起動-トリガーの有効期限は2027/05/02 12:05

というものです。

Windows11-Task-Scheduler-task-repeat-problem-015Windows11-Task-Scheduler-task-repeat-problem-016

ただし、タスクの「履歴」を見てみると、指定通りには実行されていません。「ログオン時」のトリガーは実行されますが、その後の繰り返しは無視されています。「次回の実行時刻」に表示されている日時は。「毎日1:00に起動」で指定されたトリガーです。

これを参考に設定したタスクです。

Windows11-Task-Scheduler-task-repeat-problem-021

設定した2つのトリガーは、

  • 任意のユーザーのログオン時
  • 毎日0:10に起動-トリガーされた後、06:00:00ごとに無期限に繰り返す

というものです。

Windows11-Task-Scheduler-task-repeat-problem-022Windows11-Task-Scheduler-task-repeat-problem-023

このように設定したタスクは「次回の実行時刻」が表示されており、繰り返し実行されることを確認しています。

Windows11-Task-Scheduler-task-repeat-problem-024

結局、ログオン時から指定時間ごとに繰り返すというタスクではありませんが、

  • ログオン直後にアクティブ時間をログオン時刻から18時間に設定する
  • 18時間以上作業を続ける場合も考慮して、定期的にアクティブ時間をずらし続ける

という2つの目的は満たしています。

実際のタスクはこちらの記事で紹介しました。

Windows 11/10が勝手に再起動されるのを止める方法(追記:24時間稼働対応)
Windows 11/10では自動更新を止めることが難しくなりました。もちろん検索すればグループポリシーなどで止めたりする方法は見つかります。しかし、それではWindowsセキュリティの更新など再起動が不要な更新まで止めてしまいます。 問題...

まとめ

タスク スケジューラでWindows 11や最新のWindows 10で繰り返しタスクが実行されない問題は、タスク スケジューラの仕様変更と思われる非常に迷惑なものです。

動作しないものは仕方ないので、どういう指定にすれば実行されないのかを把握して、回避する指定方法を考えるしかないでしょう。

Microsoft Public Affiliate Program (JP)(マイクロソフトアフィリエイトプログラム)

コメント

タイトルとURLをコピーしました