「バッチジョブとしてログオンの権利が必要」…タスクスケジューラ警告の対処方法

Windows全般
スポンサーリンク

Windowsのタスクスケジューラーで、実行管理者権限のないユーザーアカウントでタスクを実行させる方法を紹介します。デフォルトのポリシーでは、一般ユーザーを指定すると警告が表示され、タスクが実行できません。そのため、①別ユーザーを使うか、②ユーザーに権限を与えるか、③ポリシーを変更するか、いずれかを行う必要があります。

問題

Windowsのタスクスケジューラでタスクを設定する際、セキュリティオプションで「ユーザーがログオンしているかどうかにかかわらず実行する」を設定し、Administratorsの権限を持たない一般ユーザーを指定したところ、下の警告が表示されました。

このタスクでは、指定されたユーザー アカウントに “バッチ ジョブとしてログオン” の権利が必要です。このポリシーの設定の詳細については、ヘルプの「タスクのセキュリティ コンテキスト」を参照してください。

警告は無視できますが、右クリックから「実行する」で手動実行してみてもタスクは実行されず、下のように前回の実行結果が「タスクはまだ実行されていません。(0x41303)」と表示されます。

あるいは別のケースとして、手動実行時に下のように「ユーザーアカウントにこのタスクを実行するアクセス権がありません」というエラーが表示される場合もあります。

原因

デフォルトでは、「ユーザーがログオンしているかどうかにかかわらず実行する 」場合、Administratorsグループに属さない一般ユーザーを指定しても正しく動作しません

これは、後述する ローカルグループポリシー(またはグループポリシー) において、デフォルトでそのように定義されているためです(詳しくは方法③を参照)。

解決方法

解決方法は次の3通り考えられます。ハードルが低いと思う順に記載しています。どれでも良いのですが、お使いの環境や要件に合うものを選んで下さい。

方法① 実行ユーザーを変更する

「タスクの実行時に使うユーザーアカウント」を、別のユーザーに変える方法です。管理者ユーザー(Administratorなど)を使えるのであれば、ポリシーやユーザーの権限を変更せずに済みます。

設定方法は、該当タスクのプロパティの「ユーザーまたはグループの変更」から、ユーザーアカウントを変更します。

ユーザーはAdministratorなどの管理者ユーザーでも可能ですが、ローカルシステムアカウントである「SYSTEM」を選ぶと、パスワードを指定する必要がありません(管理者ユーザーのパスワード変更の影響も受けません)。ただし、別コンピューターへの認証など、ユーザー環境に依存する部分で動作が変わることがあるので、正しく動作するか確認は必要です。

方法② 実行ユーザーに権限を追加する

実行ユーザーを変えられない場合は、ユーザーに対して権限を追加します。スタートメニューから「コンピューターの管理」を起動 (起動方法) し、[ローカルユーザーとグループ]>[ユーザー]を開きます。該当のユーザーを右クリックし「プロパティ」を選びます。

プロパティ画面で[所属するグループ]タブで、「追加」ボタンから下のように「Administrators」グループを追加します。その後、「OK」ボタンから確定します。

Administratorsを与えるのが適当でない場合、「Performance Log Users」でも可能です。こちらの方が、権限が限定的ですので適当かもしれません。また、「Backup Operators」も同様ですが、こちらは特殊な権限を持っているようなので前述のグループの方がよさそうです。

方法③ ポリシーを変更する

上記の2つの方法が不可能な場合は、ポリシーを変更します。変更対象は、ローカルグループポリシーかドメイングループポリシー のいずれかになりますが、ここでは前者のローカルグループポリシーの変更手順を紹介します。なお、Homeエディション(Windows 10 Homeなど)では不可となります。

まずはローカルグループポリシーエディターを起動します(起動方法)。下のように、ツリーを[コンピューターの構成]> [Windowsの設定]> [セキュリティの設定]> [ローカルポリシー]>[ユーザー権利の割り当て]と辿ります。 次に右側から「バッチジョブとしてログオン」という項目をダブルクリックします。

開いた下の画面で、「ユーザーまたはグループの追加」から、タスクの実行ユーザー(もしくはグループ)を指定します。

この後、タスクスケジューラで動作を確認してみます。該当タスクを右クリックして「実行する」を選択して、問題なく実行されればOKです。もし実行できないようであれば、一度タスクを削除して再作成する必要があるようです。(この場合、右クリックから「エクスポート」→「削除」→「タスクのインポート」を行うと楽です)

上記のポリシーがグレーアウトされて編集できない場合や、ドメインコントローラーの場合は、Active Directory 環境のグループポリシーを変更する必要があります。これはドメインの管理者に相談する必要があるでしょう。

終わりに

フィードバック

コメント

タイトルとURLをコピーしました