【ユーエーシー】

UAC(ユーザーアカウント制御) とは?

最終更新:
💡 管理者権限を使う前の『本当にいい?』確認係

Windowsで管理者権限が必要な操作の前に確認を求め、悪意のあるプログラムが勝手に管理者権限で動くリスクを減らすセキュリティ機能。

📌 このページのポイント
管理者権限を使う前に確認する アプリの起動 管理者権限が必要 セキュアデスクトップ UACの確認 この変更を許可する? はい いいえ 管理者権限で起動 起動を取り消す 管理者の同意を求める場合の例 標準ユーザーには管理者の資格情報を求める
確認の動作は設定やポリシーで異なる。セキュアデスクトップは既定の表示。
ひよこ ひよこ
UACって何?あの画面が暗くなるやつ?
ペンギン先生 ペンギン先生
そうそう、ソフトをインストールしようとすると画面が暗くなって『このアプリがデバイスに変更を加えることを許可しますか?』って聞いてくるあれだよ。管理者権限が必要な操作のときに『本当にいいの?』って確認してくれるんだ。標準ユーザーなら、管理者のパスワードを求められるよ
ひよこ ひよこ
なんでそんな確認が必要なの?
ペンギン先生 ペンギン先生
Windowsは管理者アカウントでも、普段は標準ユーザーの権限でアプリを動かしているんだ。管理者権限が必要なときだけ確認を出すから、プログラムが黙って管理者権限を手に入れにくくなる。完全に防げるわけではないけど、マルウェアに悪用されるリスクを減らせるよ
ひよこ ひよこ
正直、毎回出てくるのが面倒なんだけど…
ペンギン先生 ペンギン先生
気持ちは分かるけど、無効にするのはおすすめしないよ。通知レベルは4段階で変えられるけど、Microsoftも「通知しない」はセキュリティ上推奨していないんだ。Linuxのsudoに似ていて、『一瞬立ち止まって考える』ための仕組みだね
ひよこ ひよこ
画面が暗くなるのには意味があるの?
ペンギン先生 ペンギン先生
あの暗い画面は『セキュアデスクトップ』と呼ばれていて、Windowsのプロセスしか触れない特別な画面なんだ。だから普通のアプリが確認ダイアログを勝手に操作して『はい』を押すことはできない。偽物の確認画面を出されても、同意を求める設定なら、偽物で『はい』を押しても昇格はしないよ
ひよこ ひよこ
プログラマー視点ではどうなの?
ペンギン先生 ペンギン先生
アプリの『マニフェスト』で、必要な権限を宣言できるんだ。`requireAdministrator` を指定すると、起動元が管理者権限で動いていない場合にUACの確認が出る。Visual C++のリンカーが既定で埋め込む `asInvoker` なら、起動元と同じ権限で動くよ。本当に必要なときだけ管理者権限を求めるように設計するのが基本だね
もっと詳しく知りたい人へ

UACを「通知しない」にしたり無効にしたりすると、何が変わるの?

管理者権限を使う前の確認がなくなり、UACの保護も弱まるよ。設定画面の「通知しない」はMicrosoftのサポート情報でもセキュリティ上推奨されていない。さらにポリシーでAdmin Approval Mode自体を無効にすると、関連するUACの設定がすべて無効になり、Windowsセキュリティが安全性の低下を通知するんだ。確認が多くて困るときは、無効化ではなく既定の設定を保ち、普段使いのアカウントを標準ユーザーにする方法が推奨されているよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「UAC」って出てきたら「管理者権限が必要なとき確認を出すWindowsのセキュリティ機能」と思えればだいたいOK!
📖 おまけ:英語の意味
「User Account Control」 = ユーザーアカウント制御
💬 User Account(ユーザーアカウント)をControl(制御)する仕組みで、管理者権限を使う場面をユーザーに確認させるための機能だよ

参考資料

← 用語集にもどる