UAC (ユーザーアクセスコントロール) と管理権限の昇格 (elevating)

Windows Vista 以降、UAC (User Access Control、ユーザーアクセスコントロール) が有効になっていると、 管理者ユーザーであっても管理コマンドを実行すると、実行権限が無いため失敗します。

例えば、IIS のバックアップ作業を試みても次のようにアクセス拒否されます。

この記事では詳細は省きますが、簡単に言うと UAC が有効な場合管理者グループに属しているユーザーでも、 その権限が有効にならないのです。

デフォルトの権限は、次のようにアクセスが拒否されるように設定されます。

Group Name: BUILTIN\Administrators
Type:       Alias
SID:        S-1-5-32-544
Attributes: Group used for deny only

管理者として実行 (Elevating to Administrator)

では管理者としてのタスクを実行するためには、どのようにしたら良いでしょうか。

Vista 以降では次のようなオプションが用意されています。メニューを右クリックすると、 "Run as administrator" (管理者として実行) というオプションがあります。

これを選択すると、次のように権限を昇格 (elevation) することをたずねる UAC のダイアログボックスが表示されます。

Continue をクリックして処理を継続すると、コマンドプロンプトが立ち上がり、そのコマンドプロンプトでは確かに管理タスクが実行できるようになります。

試しに権限をもう一度見てみると、先ほど見られた Group used for deny only という拒否 SID は無くなり、 確かに管理者としての権限が設定されていることが分かります。

Group Name: BUILTIN\Administrators
Type:       Alias
SID:        S-1-5-32-544
Attributes: Mandatory group, Enabled by default, Enabled group, Group owner

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Web/DB プログラミング徹底解説