管理者権限が必要な常駐アプリはタスクスケジューラでスタートアップさせる
Windows Vistaから導入されたUACに邪魔されて、使いたい常駐アプリがWindowsのスタートアップで起動できないという体験をした人もいるかと思います。これは管理者権限で起動できずに失敗するためです。この問題を回避するためには、タスクスケジューラを利用します。
- タスクスケジューラの呼び出し
- スタートメニューからアクセサリ内のシステムツールにあるタスクスケジューラを開きます。
- もしくは、スタートメニューを開き、プログラムとファイルの検索にtaskもしくはタスクと入力して、タスクのスケジュールを開いてください。
- タスクの作成
- 上部にあるメニューバーの操作からタスクの作成を選ぶか、右側のメニュー一覧からタスクの作成を選びます。すると次のような画面が表示されるはずです。
- まず全般タブでは、名前の欄には登録したいアプリケーションの名前など、実行するものがわかるようなものを記載します。タスクスケジューラに表示されるアプリケーション名となるので、ひと目でわかる名前にしておきましょう。そして、管理者権限で起動するために、最上位の特権で実行するにチェックをつけ、構成はWindows®7, Windows Server™ 2008 R2にします(Windows Vistaの場合はWindows Vista™, Windows Server™ 2008)。
- 続いてはトリガータブを選んで新規ボタンを押しましょう。
- タスクを開始する条件の設定画面が開きます。タスクの開始をログオン時に設定し、任意のユーザーで実行するようにしましょう。もし、特定のユーザーでのみ実行したいというのであれば、特定のユーザーを選択してユーザーを指定すればOKです。あとは有効以外をチェック解除しておけば問題ありません。
- 条件を設定したら、操作タブを選び、新規ボタンを押しましょう。操作をプログラムの開始として参照ボタンを押して実行したいアプリケーションを指定してOKボタンを押します。もし必要ならば、引数なども指定しておいてください。
- 次は条件タブですが、ここは実行させたい条件の指定なので登録するアプリケーション次第です。まあ、ノートPCならば電源まわりを設定するとよいかと思います。
- 最後の設定タブでは登録するアプリケーションの実行時設定となります。罠なのは初期状態だとタスクを停止するまでの時間にチェックがついていることでしょう。一定期間後に停止させたいなんて常駐アプリは希有だと思うので、たいていの場合はチェックを解除することになるはずです。常駐に失敗したときのことを考慮して、タスクが失敗した場合の再起動の間隔にチェックをつけて時間を指定しておくとよいかもしれません。
すべて設定を終えたらOKボタンを押してタスクスケジューラに登録します。あとは次回のログオン時に自動的に管理者権限で実行されるようになるため、常駐アプリケーションがWindowsXPまでと同様の動作をするはずです。
なお、スタートアップで常駐させるタイプのものでなくとも、ほかのアプリケーションを処理対象にするようなアプリケーションは、Windows Vista/7で思ったような動作をしないことがあります。これはUACが働いて、同一の権限を持っているか上位の権限を持っていないとアプリケーションの動作を阻止するためです。そのような場合はショートカットを作成しておき、ショートカットアイコンの詳細設定内にある管理者として実行にチェックをつけておくとよいかもしれません。