Windows10のタスクスケジューラは、何かしらの処理を自動的に行える便利な機能ですが、なぜか登録したタスクが正常に実行されないことがあります。
設定ミスや動作環境によってタスクスケジューラに登録したタスクがそもそも実行されないことも多く、知っておかないと気づきにくいトラブルです。
Windows10のタスクスケジューラが正常に実行されない場合の対処法
タスクスケジュールが正常に実行されない原因はいくつかあります。
原因によって対処法が異なるので、それぞれ見ていきましょう。
実行するファイルを移動させた
いわゆる、タスクスケジューラに登録した実行ファイルのパスで、バッチやスクリプトなどの実行ファイルにアクセスできなくなった状態です。
この場合は、タスクスケジューラが実行ファイルを見つけることができないので、必ずタスクの実行に失敗します。
ですので、ファイル整理時に移動させた心当たりがある方や、フォルダ構成は全く変えていなくてもドライブを変更した場合などは1回タスクスケジューラに設定しているファイルパスをチェックしてみましょう。
トリガー設定を間違えている
Windows10のタスクスケジューラーはとても細かく実行トリガーを設定することが可能です。
特定のユーザーがログインした時
特定の曜日のみ
特定の日付のみ
というようにかなり細かく設定可能な特徴があります。
ですが、そのトリガー設定の中に有効期限という項目があります。
有効期限を過ぎたタスクはたとえほかの実行条件を満たしていたとしても一切実行されないようになります。
この場合、タスク設定には何も間違いではないのでバグというわけではなく、登録した実行ファイルにも全く問題ありません。
ある日突然実行されなくなったという場合は、トリガー設定の有効期限を見直してみるようにしましょう
アイドル状態のみタスクを実行する設定になっている
アイドル状態とは、Windows10を一切操作していない状態のことを言います。
Windows10使用中にタスクを実行したときに負荷が大きくなってしまわないように、アイドル時のみタスクを実行する設定もあります。
この状態でWindows10を使い続けていると一向にタスクが実行されないので注意が必要です。
「最上位の特権で実行する」にチェックが入っていない
管理者権限を必要とする処理をタスクスケジューラで行う場合、タスク設定時に「最上位の特権で実行する」にチェックを入れる必要があります。
チェックを入れ忘れると、設定したタスクのプログラムがエラーで起動しないので、必ずチェックを入れておきましょう。
PowerShellで作成したスクリプトを登録している
タスクスケジューラーにPowerShellで作成したスクリプトを登録していると、なぜかメモ帳が起動してしまう症状が発生してはいないと思いますか?
現状のタスクスケジューラは、PowerShellで作成したスクリプト(拡張子がps1のファイル)を登録するとなぜかメモ帳(notepad、exe)で開かれてしまい、正常に実行されません。
この問題を回避するには、実行するプログラムはPowerShell本体のexeファイルを指定し、引数に実行したいPowerShellスクリプトのファイルパスを指定します。
PowerShell本体のパスは
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
です。
引数に「-c スクリプトのフルパス」を指定するようにしてください。
半角の()を使っている
フォルダ名やファイル名に半角のカッコ()を使用している人はそれなりにいるはずです。
コピーしたファイルなどは(1)、(2)のようにナンバリングされていると思います。
ですが、この半角カッコが問題でタスクスケジューラーではエラーになります。
バグなのか、回避するには半角カッコを使わないようにする以外ありませんので、全角カッコや別のカッコで代用するようにしてください。
AC電源接続を実行条件にしている(デスクトップ以外)
タスクの実行条件に「コンピューターをAC電源で使用している場合のみタスクを開始する」という項目があります。
AC電源とは、簡単に言うと電源ケーブルです。この設定が有効になっていると電源ケーブルが接続されていない状態(バッテリーで動作している状態)では実行されないようになります。
デスクトップパソコンの場合は常にAC電源に接続しておくので関係ない話ですが、ノートパソコンはバッテリーで動作させることがあるので、この設定が有効になっているとバッテリー操作時にはタスクが実行されません。
電源の接続の有無に関わらずタスクを実行したい場合は、AC電源接続関係の条件設定を外しておきましょう。