-
Notifications
You must be signed in to change notification settings - Fork 0
MS_UAC
nishi_74322014 edited this page Aug 3, 2026
·
1 revision
- 戻る(Windows OSの基礎的トピック、セキュリティ(
MS_Security.md))
- ユーザー・アカウント制御(UAC : User Account Control)
- Windows Vista以降のWindowsに搭載されているセキュリティ機能。
- 管理者のユーザとしてログオンするとアクセストークンが2つ用意される。
- 1つは標準ユーザと同じ権限
- もう1つは完全な管理者の権限
- 管理者としてログオンしてプログラムを実行しても通常は標準ユーザと同じ権限しかなく、
セキュリティもしくはOSの安定性に関わる操作を行おうとすると、
「昇格のプロンプト」と呼ばれる、実行を許可するか確認を取るダイアログが表示される。
ここでユーザが許可すると、権限が「昇格」されてはじめてプログラムは管理者権限で実行される。
補足: 元 Wiki の「詳細」節は見出しのみで未記載だった。以下は補足として追記した内容。
- 上記の 2 つのトークンは、フィルタされたトークン(標準ユーザ相当)と
完全なトークン(管理者)と呼ばれる。 - 「管理者として実行」を選ぶと、
consent.exeが同意 UI を出し、
承認後に完全なトークンで新しいプロセスが起動される。 -
既に起動しているプロセスの権限を後から昇格することはできない
(必ず別プロセスとして起動し直す)。 - 昇格プロンプトは セキュリティで保護されたデスクトップ(Secure Desktop)に表示され、
通常デスクトップのアプリから操作・偽装できないようになっている
(デスクトップ / ウィンドウステーションを参照)。
実行に管理者権限が要るアプリは、マニフェストの requestedExecutionLevel で宣言する。
| 値 | 意味 |
|---|---|
asInvoker |
呼び出し元と同じ権限(既定)。昇格しない。 |
highestAvailable |
ユーザが取りうる最大の権限。管理者なら昇格を要求。 |
requireAdministrator |
常に管理者権限を要求(昇格プロンプトが出る) |
-
ファイル/レジストリの仮想化
マニフェストを持たない古い32bitアプリがProgram FilesやHKLMに書き込むと、
%LOCALAPPDATA%\VirtualStore等へ透過的にリダイレクトされる(互換のための機能)。 -
ネットワーク ドライブが昇格プロセスから見えない
昇格前後でトークンが異なるため、標準ユーザ側で割り当てたドライブが
管理者プロセスから参照できない(EnableLinkedConnectionsで緩和可能)。 -
UAC はセキュリティ境界ではない
Microsoft の公式見解として、UAC は「利便性の機能であって信頼境界ではない」。
同一デスクトップの管理者ユーザ間の分離を保証するものではない。
- 権限 - UAC(サービス・タスク系のいろいろ:
MS_ServiceAndTaskTopics.md) - 管理特権が必要になる処理
※ UAC の完全な無効化(EnableLUA=0)は、
ストア アプリ/保護モード等が動作しなくなるため推奨されない。
運用上どうしても必要なら、スライダーの段階(通知レベル)調整に留める。
- ユーザーアカウント制御 - Wikipedia
- ユーザー アカウント制御 - Microsoft Learn
- Windows OS入門:第7回 特権的な操作を制限するUAC(ユーザーアクセス制御)- @IT
Tags: セキュリティ, Windows
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。