タスクスケジューラでスリープ解除タイマが動作しない場合の改善方法

タスクスケジューラのタスクを登録する際、条件タブで"タスクを実行するためにスリープを解除する"にチェックした場合、コンピュータがスリープ状態であっても復帰してタスクを実行できます。ですが、Windows10では、うまく動作しなくなったようです。

そこで解決方法がないか探した結果、下記の条件をクリアすれば、スリープ解除できることが分かりました。 スリープ解除タイマ 動作しない スリープ解除しない

条件

 トリガー時の操作として"プログラムの開始"を選択し、その際実行されるプログラムは、即座に終了するのもを指定する。

下記設定のようにプログラムを指定すると、スリープ解除できました。わずかな時間でプログラムを終了しないとスリープ解除が始まらないのかもしれません。下記、英語のサイトの記述を参考にしました。

superuser.com

f:id:russianble:20200116213038j:plain

 設定の補足

条件タブは、スリープ解除できるようにチェックをつける必要があります。

f:id:russianble:20200116214010j:plain

一般タブは、下記のようにしています。"ユーザーがログオンしているかどうかにかかわらず実行する"を選ばなくても解除されました。こちらを選ぶ場合は、"バッチジョブとしてログオン"の権利が必要になります。システム管理者であれば、この権限を持っています。また、この自動ログオンでタスクが起動される場合、バックグラウンドジョブとして動作するため、UI画面が表示することはできません。session0で起動されます。この場合も、上記のようにすぐ終了するプログラムを指定しなければ、スリープ解除できません。一旦スリープ解除したあとに別のタスクを動作させれば、起動時間の長いタスクも処理できると思います。

f:id:russianble:20200116214006j:plain

トリガー条件は、テスト環境では、下記のようにしています。

f:id:russianble:20200116213041j:plain

 その他の注意点として、コントロールパネルで下記を有効にする設定も必要です。

電源オプション⇒詳細な電源設定の変更⇒スリープのスリープ解除タイマの許可