タスクスケジューラの注意事項

上記のようなよくある環境でタスクスケジューラに関連にた注意事項ついて記載します。

1.タスクスケジューラへの新規登録手順

タスクスケジューラを起動

タスクを作成したい位置に[基本タスクの作成]か[タスクの作成]で開始する。
[タスクの作成]の方が、詳細な設定についてウィザードで設定できるが、[基本タスクの作成]でも後から変更は可能なので、慣れた方を使いのが良いと思います。

タスクの[名前]を入力します。

タスクを動作させるスケジュールを設定します。

操作内容を選択します。ほとんどが[プログラムの開始]になるかと思います。

タスクスケジューラで実行したいファイルを指定します。

[完了]を選択するとタスクは作成されます。

以上が、タスクスケジューラに新規タスクを設定する方法になります。
この操作で実際に運用することは少ないと思いますので、以下に注意点を記載いたします。

ユーザがログインしていない状態でタスクを実行させる

ユーザがログインしている状態なら、スタートアップ設定等の他の手段があるため、基本的にタスクスケジューラに登録されるタスクはOSが起動していれば実行するタスクになると仮定しておきます。この場合、該当タスクを右クリックしてプロパティを起動し、[ユーザが実行しているときに実行する]を[ユーザがログオンしているかどうかにかかわらず実行する]に変更します。この時に動作しないバッチファイルがありますので、注意してください。検索すると解決方法が出てきますので、参照してください。
大抵はログインすることを前提に記載されている(例えばウィンドウが表示される)ようなコードが記載されていると思います。

タスクを実行させるユーザに注意する

ウィザードに従い作成したタスクは、作成時のユーザアカウントで実行するように作成されます。これの問題点は、ユーザアカウントが削除やパスワードの変更などアカウント属性が変更された時点でタスクの実行ができなくなります。
下図はドメインユーザのアカウントで実行されるように設定されていますが、適切なのか考慮する必要があります。

また、タスクを実行するアカウントが削除されたり、パスワードが変更された場合には設定を変更することで、回復は可能ですが、その際にも注意が必要です
下図の[ユーザまたはグループの変更]を選択するとユーザ設定を変更する画面が起動します。

[オブジェクトの種類]と[場所]をクリックすると管理者権限のアカウントの入力を求められることがあります。つまり管理者権限に準じるアカウント(ドメイン管理者やローカル管理者)のIDとパスワードを知らないと検索登録はできません。また、[名前の確認ボタン]でのアカウント検証は必須ではありませんが、例えばBatUserに変更しようとした場合では、[OK]後に戻る下記の画面の[OK]ボタンをクリックしようとすると、パスワードの入力を求められます。

当然ですが、パスワード認証が成功するまで完了しません。

タスクを実行するための権限について

システム管理者の個人アカウントはリモートデスクトップを利用する等、ローカルサーバ(またはPC)の管理者グループに登録されていることが多いのですが、タスクスケジューラでタスクを実行させるためには、ローカルポリシー(ローカルセキュリティポリシーかドメインのグループポリシー)で[バッチジョブとしてログオン]が許可されていなければなりません。また[バッチジョブとしてのログオンを拒否]にアカウントが登録されていると[バッチジョブとしてログオン]が許可されていてもタスクは実行しません。

タスクスケジューラのエラーログが見当たらない

これまで紹介した問題等でタスクが動作していない問題の原因を探すにはログが必要ですが、タスクスケジューラはイベントビューアの主要な項目には記載されず、以下のような深い場所にあります。
[イベントビューア(ローカル)]→[アプリケーションとサービス]→[Windows]→[TaskScheduler]→[Operational]
エラー:2147943726は「不明なユーザー名または間違ったパスワード」に該当しますので、タスクの実行アカウントが削除されたかパスワードが変更されたことが理由と推測できます。

タスクマネージャで実行するアカウントはパスワードを無期限にして、リモートデスクトップでのログインとローカルログインを拒否するにアカウントを設定することをお勧めします。

関連記事

TOP