以前の記事で紹介した自動再起動防止方法ですが、タスク スケジューラに繰り返し実行するタスクを設定することで実現していました。
ところがWindows 11や最近のWindows 10で同じ設定をしても繰り返して実行されないという奇妙な現象が発生していることが分かりました。
以前のタスクの設定
こちらの記事はWindows 10 バージョン1607以降で、アクティブ時間を定期的にずらすことで自動再起動を阻止するものでした。
定期的にずらすためにはタスクを利用しました。タスクとはタスク スケジューラに登録することで特定のイベントをトリガーとして指定したプログラムを自動的に実行させる機能です。
記事での方法は、ログオンしたときにタスクを実行し、その後6時間おきに同じタスクを繰り返し実行するというものでした。
記事を公開するにあたり何台かのパソコンで動作確認を行い、定期的に実行されることも確認していました。
今は「サインイン」という言葉が一般的ですが、タスク スケジューラでは「ログオン」という言葉を使っています。そのため以下では「ログオン」に統一しますが、意味としては「サインイン」と同義です。
最近のWindows 11/10でのタスク スケジューラの動作
ところが、最近のWindows 11/10では正しく実行されないことが分かりました。
タスクが起動されるトリガーとして「スタートアップ時」と「ログオン時」を指定すると、その後に繰り返しの処理を指定しても無視されます。
以前の記事ではこのように「ログオン時」をトリガーとして、合わせてその後6時間ごとに繰り返しを指定しています。
しかし、タスク スケジューラを見ると「次回の実行時刻」が空欄となっており、繰り返し処理が有効でないことが分かります。
検索してみると同じような問題を抱えている方が多いことが分かりました。皆さんは何かしらの方法で回避していました。繰り返すことと同じ意味になるように複数のトリガーを設定する力技や、「スタートアップ時」や「ログオン時」というトリガーの利用をやめて、「スケジュールに従う」というトリガーを使い時刻を指定するように変更するなどです。
繰り返しタスクが実行されない問題の本質
検索して見つかる記事の中で気になることがありました。トリガーの起点となる「開始」日時に関することです。「開始」日時が正しく指定されていないと繰り返し処理が実行されないようなのです。
したがって、この問題は原因は次のように推測できます。
以前のWindows 10ではトリガーに「スタートアップ時」や「ログオン時」を指定した場合、タスクの実行が完了するとその日時を「開始」日時として自動的に設定していたのでしょう。繰り返しで次に実行すべき日時は設定された「開始」日時からを計算できるため、繰り返しのタスクが想定通りに実行されていたと考えられます。
しかし、最近のWindows 11/10では、トリガーとして「スタートアップ時」や「ログオン時」を指定した場合にタスクの実行が完了してもその日時が自動的に「開始」日時として設定されないため、繰り返しで次に実行すべき日時を計算できなくなり、繰り返し処理が実行されなくなったと考えられます。
昔のWindows 10ではタスクの完了時点を「開始」日時に自動的に設定していたのに、最近のWindows 11/10では設定されないというのはバグのように思えます。しかし、何かしらのセキュリティリスクを回避するために仕様を変更した可能性もあります。
どちらにしろ、以前動作していたタスクが最近のWindows 11/10では動作しないという事実は、ユーザーにとっては迷惑な話です。
繰り返しタスクを実行させるための打開策
この仮定で、他のタスクを調べてみると、「スタートアップ時」や「ログオン時」をトリガーにしているタスクは、繰り返しが設定されておらず「次回の実行時刻」の欄も空白となっています。
そして「次回の実行時刻」が表示されているタスクは、どれもトリガーとして「スケジュールに従う」が指定されています。
これらの中でひとつ変わり種のタスクがありました。「Adobe Acrobat Update Task」というタスクです。
このタスクでは「ログオン時」と「スケジュールに従う」の2つをトリガーとしており、「次回の開始時刻」も表示されていることから繰り返しが有効だということが分かります。
トリガーを調べてみると、このような2つのトリガーが設定されていました。
2つのトリガーは、
- 任意のユーザーのログオン時-トリガーされた後、03:30ごとに無期限で繰り返す
- 毎日1:00に起動-トリガーの有効期限は2027/05/02 12:05
というものです。
ただし、タスクの「履歴」を見てみると、指定通りには実行されていません。「ログオン時」のトリガーは実行されますが、その後の繰り返しは無視されています。「次回の実行時刻」に表示されている日時は。「毎日1:00に起動」で指定されたトリガーです。
これを参考に設定したタスクです。
設定した2つのトリガーは、
- 任意のユーザーのログオン時
- 毎日0:10に起動-トリガーされた後、06:00:00ごとに無期限に繰り返す
というものです。
このように設定したタスクは「次回の実行時刻」が表示されており、繰り返し実行されることを確認しています。
結局、ログオン時から指定時間ごとに繰り返すというタスクではありませんが、
- ログオン直後にアクティブ時間をログオン時刻から18時間に設定する
- 18時間以上作業を続ける場合も考慮して、定期的にアクティブ時間をずらし続ける
という2つの目的は満たしています。
実際のタスクはこちらの記事で紹介しました。
まとめ
タスク スケジューラでWindows 11や最新のWindows 10で繰り返しタスクが実行されない問題は、タスク スケジューラの仕様変更と思われる非常に迷惑なものです。
動作しないものは仕方ないので、どういう指定にすれば実行されないのかを把握して、回避する指定方法を考えるしかないでしょう。
コメント
質問です
録画専用PCを購入したのが今年である2024年の1月で、その月にWindows Updateをして最新の状態にしたのも今年で、下記の記事を見て再起動防止の設定をしたのも今年のことなのですが、未だに自動再起動されずにいるのはなぜでしょうか?
記事の投稿日時に気づいて疑問に思いました
Windows 11/10が勝手に再起動されるのを止める方法(追記:24時間稼働対応)
https://solomon-review.net/windows11-prevent-restart-v2/
コメントを頂きありがとうございます。
自動再起動を防止する手順については、元々こちらの記事で説明していました。
Windows 10 バージョン1607以降で自動再起動を止める方法(一般向け)
https://solomon-review.net/windows10-v1607-prevent-restart/
しかし、最近のWindows 11/10で自動再起動を防止できていないことが分かり、タスクスケジューラーの仕様が変わっていることに気づきました。
そのため、対策をとった改良版が下記の記事ですが、細かな動作説明を必要としない人が多いと思い、タスクスケジューラの動作説明は別途行いました。
Windows 11/10が勝手に再起動されるのを止める方法(追記:24時間稼働対応)
https://solomon-review.net/windows11-prevent-restart-v2/
コメントを頂いたように疑問に思われる方への対応として、記事に対策済みと明記しました。
ご返信頂きありがとうございます
ということは、つまり、その記事にある再起動防止パック ver.2の「”ver.2”」という意味は「”既に対策をとった改良版”」という意味の認識で間違いないでしょうか?
もしそうであれば今のところは自動再起動の心配をする必要はなさそうですね
コメントを頂きありがとうございます。
> つまり、その記事にある再起動防止パック ver.2の「”ver.2”」という意味は「”既に対策をとった改良版”」という意味の認識で間違いないでしょうか?
ご指摘の通り、改良版という意味での「ver.2」です。
今後もWindowsの仕様変更は無いとは言い切れませんが、現状では機能し続けているようです。
Windows 12も控えていますので注意しておきます。
よかったです
とても助かってます
ありがとうございます
コメントを頂きありがとうございます。
お役に立っているようでよかったです。
お久しぶりです
先ほどのことなのですが、このような画面が表示されていました↓
この処理を終わらせましょう(推定:4分)
次の更新プログラムは、Windowsをスムーズに実行し続ける準備ができました。再起動して更新プログラムをインストールする時間を選択するか、アクティブ時間外に再起動が試行されます。
【今すぐ再起動】【時刻を選択】【明日通知する】
↑再起動防止パック ver.2は機能しなくなってしまったのでしょうか?
そちらでも確認できますか?
ご返信お待ちしております
コメントを頂きありがとうございます。
検索すると自動再起動を防止する方法としてよく表示されるのは、Windowsの更新チェックを止めてしまうものです。
この方法はゼロデイ攻撃などの脆弱性を放置することとなり大変危険ですので、当サイトでは行わないよう推奨しています。
再起動防止パックもWindowsの更新を止めるのではなく、利用者の都合に関係なく勝手に再起動されるのを防止することが目的で、更新プログラムの適用を妨げるものではありません。
そのため更新プログラムは時々確認して配信されていた場合は、再起動できるタイミングを見計らって適用して頂くようお願いしております。
累積更新プログラムは日本時間では毎月第2火曜日の次の日に定期更新が配信され、その他にも不定期での更新プログラムが配信されます。
再起動できるタイミングが全く無く、更新プログラムの適用指示も表示させたくない場合は、リスクを承知の上で更新のチェックを止めるしか方法はありません。