Skip to content
nishi_74322014 edited this page Aug 3, 2026 · 1 revision

UAC

概要

  • ユーザー・アカウント制御(UAC : User Account Control)
  • Windows Vista以降のWindowsに搭載されているセキュリティ機能。
  • 管理者のユーザとしてログオンするとアクセストークンが2つ用意される。
    • 1つは標準ユーザと同じ権限
    • もう1つは完全な管理者の権限
  • 管理者としてログオンしてプログラムを実行しても通常は標準ユーザと同じ権限しかなく、
    セキュリティもしくはOSの安定性に関わる操作を行おうとすると、
    「昇格のプロンプト」と呼ばれる、実行を許可するか確認を取るダイアログが表示される。
    ここでユーザが許可すると、権限が「昇格」されてはじめてプログラムは管理者権限で実行される。

詳細

補足: 元 Wiki の「詳細」節は見出しのみで未記載だった。以下は補足として追記した内容。

昇格の仕組み

  • 上記の 2 つのトークンは、フィルタされたトークン(標準ユーザ相当)と
    完全なトークン(管理者)と呼ばれる。
  • 「管理者として実行」を選ぶと、consent.exe が同意 UI を出し、
    承認後に完全なトークンで新しいプロセスが起動される。
  • 既に起動しているプロセスの権限を後から昇格することはできない
    (必ず別プロセスとして起動し直す)。
  • 昇格プロンプトは セキュリティで保護されたデスクトップ(Secure Desktop)に表示され、
    通常デスクトップのアプリから操作・偽装できないようになっている
    デスクトップ / ウィンドウステーションを参照)。

アプリ側の指定

実行に管理者権限が要るアプリは、マニフェストの requestedExecutionLevel で宣言する。

意味
asInvoker 呼び出し元と同じ権限(既定)。昇格しない。
highestAvailable ユーザが取りうる最大の権限。管理者なら昇格を要求。
requireAdministrator 常に管理者権限を要求(昇格プロンプトが出る)

副作用として知っておくこと

  • ファイル/レジストリの仮想化
    マニフェストを持たない古い32bitアプリが Program FilesHKLM に書き込むと、
    %LOCALAPPDATA%\VirtualStore 等へ透過的にリダイレクトされる(互換のための機能)。
  • ネットワーク ドライブが昇格プロセスから見えない
    昇格前後でトークンが異なるため、標準ユーザ側で割り当てたドライブが
    管理者プロセスから参照できない(EnableLinkedConnections で緩和可能)。
  • UAC はセキュリティ境界ではない
    Microsoft の公式見解として、UAC は「利便性の機能であって信頼境界ではない」。
    同一デスクトップの管理者ユーザ間の分離を保証するものではない。

参考

内部リンク

管理者として実行

UACの無効化

※ UAC の完全な無効化(EnableLUA=0)は、 ストア アプリ/保護モード等が動作しなくなるため推奨されない。
運用上どうしても必要なら、スライダーの段階(通知レベル)調整に留める。

その他


Tags: セキュリティ, Windows

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally