ファイルのバックアップなど、タスクスケジューラを使って自動化を試みようと考えている人も多いのではないだろうか。しかし、タスクスケジューラにタスクを登録しても、なぜか思った通り実行されないことがある。これには幾つか原因がある。その原因と対策を紹介しよう。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
対象:Windows 10
ファイルのバックアップなどの作業は、タスクスケジューラを使った自動化を行うと定期的に繰り返し実行できて便利だ。しかし、タスクスケジューラにタスク(コマンド)を登録しても、なぜか設定時間に実行されない、というトラブルもよく聞く。原因が分からず、タスクスケジューラの利用を諦めてしまった人もいるのではないだろうか。
そこで本Tech TIPSでは、タスクスケジューラでタスクが実行できない、よくありがちな問題とその対応策を取り上げる。
タスクスケジューラでタスクが実行できない場合、「履歴」を見ると原因を追求しやすい。ただ、「履歴」はデフォルトでは無効になっているので、[操作]ペインの[すべてのタスク履歴を有効にする]をクリックして「履歴」を有効化しよう。これで、何が原因でエラーになっているかなどが分かるようになる。
正しく動作するようになり、「タスク履歴」が不要になったら、[操作]ペインの[すべてのタスク履歴を無効にする]をクリックして、無効化すればよい。
比較的多いと思われるのが、コマンド名の間違いや、パスが正しく記述されていないことで、タスクスケジューラがタスクを実行できないケースだ。
タスクを作成する際、[基本タスクの作成]ウィザードの[プログラムの開始]画面でコマンドやスクリプトのファイル名を手動で入力すると、ミスを起こしやすい(タスクスケジューラにタスクを登録する方法は、Tech TIPS「【Windows 10対応】タスクスケジューラで定期的な作業を自動化する」参照のこと)。
また、Windows 10標準ではないコマンドを実行する場合は、そのコマンドが置かれているフォルダへのパスをpath環境変数に追加しておくか、パス付きでコマンドを指定する必要がある(パスをpath環境変数に追加する方法は、Tech TIPS「Windows 10でPath環境変数を設定/編集する」参照のこと)。パス付きでコマンドを指定する場合は、[参照]ボタンをクリックして、選択するとよい。そうすることでパスを指定するのを忘れることを防げる。
タスクスケジューラの[基本タスクの作成]ウィザードを使うと、ウィザードの指示に従うだけで簡単にタスクが作成できる。ただ、[基本タスクの作成]ウィザードで作成されるタスクは、「セキュリティオプション」で「ユーザーがログオンしているときのみ実行する」が選択された状態となっている。これでは、Windows 10をサインアウトした状態では、実行されない。また、「最上位の特権で実行する」のチェックも付けられていないため、タスクで実行するコマンドの種類によっては権限が足りず、実行できないことがある。
タスクスケジューラの左ペインで[タスクスケジューラライブラリ]を選択し、中央の[タスクスケジューラライブラリ]ペインから作成したタスクを見つけてダブルクリックする。[<タスク>のプロパティ]ダイアログが表示されるので、[全般]タブの「セキュリティオプション」欄で、「ユーザーがログオンしているかどうかにかかわらず実行する」を選択し、「最上位の特権で実行する」にチェックを入れよう。
タスクを実行するタイミングや回数などを決める「トリガー」の設定にも注意が必要だ。毎日や毎週実行するタスクを作成する際、テスト用に「1回限り」を選択しておいて、うっかりそのままにしてしまうことがある。
テストが成功したら、タスクの[プロパティ]ダイアログを開いて、[トリガー]タブを確認しよう。トリガーが何も指定されていない場合は、タスクが実行されないので、[新規]ボタンをクリックして、[新しいトリガー]ダイアログでトリガーの条件を設定する。なお、ここのトリガーの条件は、[基本タスクの作成]ウィザードで選択できる項目よりも細かい設定が可能だ。
トリガーの細かい設定については、次の記事が参考になるだろう。
PowerShellで作成したスクリプト(ps1ファイル)を[操作の編集]ダイアログの「プログラム/スクリプト」の入力ボックスに直接指定すると、スクリプトは実行されずにps1ファイルが「メモ帳」アプリで開かれてしまう。
Copyright© Digital Advantage Corp. All Rights Reserved.