UAC プロンプトなしで UAC 制限プログラムを実行する - TechRepublic

UAC プロンプトなしで UAC 制限プログラムを実行する - TechRepublic

今年2月に、「タスクスケジューラを使ってVistaの起動時にUAC制限付きプログラムを起動させる方法」という記事を書きました。その中で、タスクスケジューラを使ってVistaの起動時にUAC制限付きプログラムを実行する方法を紹介しました。このテクニックの秘密は、タスクスケジューラを使うことで、起動時に実行されるタスクを最高の権限で実行するように設定し、UACを回避できることです。

これはUACの問題に対する優れた回避策ですが、当初はUAC制限のあるプログラムを起動時に実行する場合にのみ有効だと考えていました。しかし最近、この手法を使えば、特別に作成したショートカットを使ってUAC制限のあるプログラムをいつでも起動できることを発見しました。

タスク スケジューラで、利用可能な最高の権限でタスクを起動するタスクを作成する方法を示し、次に、いつでもタスクを実行するためのショートカットを作成する方法を示します。

このブログ エントリは、TechRepublic Microsoft Windows ブログのエントリとして PDF 形式でも入手できます。

タスクの作成

UAC を回避して実行したいプログラムがデバイス マネージャーだとしましょう。タスク スケジューラからデバイス マネージャーを実行するには、管理者権限を持つアカウントで Vista システムにログオンする必要があります。まず、「スタート」ボタンをクリックし、「検索の開始」ボックスに「タスク スケジューラ」と入力して Enter キーを押します。しばらくすると UAC が表示されます。適切な操作を行うと、図 Aに示すようなタスク スケジューラ ウィンドウが表示されます。

図A

タスク スケジューラが起動して実行されると、UAC 制限プログラム用の新しいタスクを作成できます。

デバイスマネージャーを実行するタスクを作成するには、まず「アクション」パネルの「タスクの作成」をクリックします。「タスクの作成」ダイアログボックスが表示されたら、「名前」ボックスにタスク名を入力し、「説明」ボックスに説明を入力します(図Bを参照)。

図B

「最高の権限で実行」チェックボックスが選択されていることを確認してください。

「セキュリティ オプション」パネルの上部に管理者ユーザーアカウントが表示されます。これは、タスクマネージャーがタスクを実行する際に使用するアカウントです。次に、「最上位の特権で実行する」チェックボックスをオンにし、その他の設定はすべてデフォルトのままにしておきます。

「アクション」タブを選択し、「新規」ボタンをクリックします。「新規アクション」ダイアログボックスが表示されたら、「参照」ボタンをクリックし、図Cに示すようにデバイスマネージャーのMSCファイルを選択します。その他の設定はすべてデフォルトのままにして、「OK」をクリックします。

図C

[参照] ボタンを使用して、ログオン時に自動的に実行するプログラムを検索して選択します。

「タスクの作成」ダイアログボックスに戻ったら、「設定」タブを選択し、「タスクをオンデマンドで実行できるようにする」チェックボックスが選択されていることを確認します。また、「タスクが既に実行されている場合は、次の規則が適用されます」ドロップダウンが「新しいインスタンスを開始しない」に設定されていることも確認してください(図Dを参照)。

図D

[設定]タブで[タスクをオンデマンドで実行できるようにする]チェックボックスが選択されていることを確認します。

操作を完了するには、[OK] をクリックして [タスクの作成] ダイアログ ボックスを閉じ、タスク スケジューラを閉じます。

ショートカットの作成

タスクスケジューラで「最上位の権限で実行」設定を使用してUAC制限付きプログラムを起動するように設定しているため、UACは実質的にバイパスされます。タスクを起動するための特別に設定されたショートカットを作成するだけで済みます。

デスクトップを右クリックし、コンテキストメニューから「新規 | ショートカット」を選択してショートカット作成ウィザードにアクセスします。次のように入力します。

schtasks /run /TN "デバイスマネージャーを起動"

図Eに示すように、「アイテムの場所を入力してください」テキストボックスに「」と入力します。このコマンド ラインでは、先ほど作成したスケジュール タスクとまったく同じ名前が使用されていることに注意してください。次に、「次へ」をクリックします。

図E

スケジュールされたタスク名は必ず二重引用符で囲んでください。

[このショートカットの名前を入力] テキスト ボックスに「デバイス マネージャーの起動」と入力し、[完了] をクリックします。

試してみる

UACプロンプトを気にすることなく、いつでもデバイスマネージャーを起動できるようになりました。実際に確認するには、ショートカットをダブルクリックして、正しく動作するか確認してください。ショートカットをスタートメニューまたはクイック起動ツールバーにドラッグすることもできます。

Tagged: