Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】What Is UAC in Windows? User Account Control Explained for Beginners

2026年10月12日に「Dev.to」が公開したITニュース「What Is UAC in Windows? User Account Control Explained for Beginners」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

UACはWindowsのセキュリティ機能で、管理者アカウントでもプログラムが勝手に管理者権限を使うのを防ぐ。実行前に承認を求めることで、マルウェアからの保護やPCの安全性を高める。画面が暗くなるのは不正操作を防ぐためで、UACを無効化することは推奨されない。

ITニュース解説

Windowsを使っていると、システムに何か変更が加えられる際に「このアプリがデバイスに変更を加えることを許可しますか?」というメッセージと共に、画面全体が暗くなる場面に遭遇するだろう。これは、Windowsに標準搭載されている「UAC(ユーザーアカウント制御)」という重要なセキュリティ機能が動作している証拠である。システムエンジニアを目指す上で、このUACの役割と仕組みを理解することは、安全なシステム環境を構築・運用するために非常に重要だ。

UACの最も基本的な目的は、オペレーティングシステムを不正な変更から保護することにある。たとえあなたが管理者権限を持つアカウントでWindowsにサインインしていても、UACはほとんどのプログラムを、より制限された「標準ユーザー」の権限で実行させる。そして、プログラムがシステムに大きな影響を与える変更を加えようとする時、UACが介入し、ユーザーにその変更を承認するかどうかを尋ねるのだ。この考え方は「最小権限の原則」に基づいている。これは、プログラムには必要最小限の権限しか与えず、ユーザーが明確に許可した場合にのみ、より高い権限を与えるべきだ、というセキュリティの基本原則だ。

UACが存在しないシステムでは、管理者アカウントから起動されたプログラムは、何の制限もなくシステム全体を完全に制御できてしまう。もし悪意のあるプログラムや、インターネットからダウンロードしたウイルスが混入したファイルが実行された場合、ユーザーに気づかれることなく、重要なシステムファイルを変更したり、セキュリティソフトウェアを無効にしたり、システム設定を書き換えたりといった、深刻な被害をもたらす可能性がある。UACは、このような悪意のある活動が管理者権限をひそかに取得するのを防ぐための「防御壁」として機能する。プログラムがシステムに影響を与える変更を試みる際に、必ずユーザーの明示的な「はい」という承認を要求することで、マルウェアが勝手に暴走するのを防ぐのだ。さらに、UAC自身も巧妙に保護されており、悪意のあるソフトウェアがUACの設定を無効化したり妨害したりすることは、管理者権限なしにはできないようになっている。

UACの仕組みを理解する上で鍵となるのが「アクセストークン」の概念だ。あなたがWindowsにサインインすると、Windowsはあなたの身元、所属グループ、そしてあなたが持っている権限を示す「アクセストークン」という小さなデータのかたまりを作成する。管理者アカウントでサインインした場合、実はWindowsは二つの異なるアクセストークンを作成している。一つは、管理者権限が削除された「標準ユーザーアクセストークン」。もう一つは、全ての権限を持つ「管理者アクセストークン」だ。

Windowsは、デスクトップシェルであるexplorer.exeを起動する際に、この制限された「標準ユーザーアクセストークン」を使用する。そして、あなたが普段起動するほとんどのプログラムは、このexplorer.exeの子プロセスとして起動するため、これらのプログラムも自動的に標準ユーザーの権限で実行されることになる。つまり、あなたのWebブラウザやメールクライアント、そして新しくインストールするソフトウェアなども、通常は管理者権限を持たない状態で起動するのだ。プログラムが管理者権限を必要とすると判断した場合にのみ、UACが介入し、承認を求めるプロンプトを表示する。もしあなたが「はい」と承認すれば、その特定のプログラムだけが、完全な「管理者アクセストークン」を使って起動を許可される。この動作モードを「管理者承認モード」と呼ぶ。

さらに、Windowsは各プロセスに「整合性レベル」という信頼度を示すタグを付けている。例えば、システムデータを変更するような重要なツールは「高整合性レベル」で実行される一方、信頼できないインターネットコンテンツを扱うことが多いWebブラウザなどは「低整合性レベル」で実行される。この仕組みにより、低い整合性レベルのプロセスが、より高い整合性レベルのプロセスを勝手に変更することはできない。これは、もしWebブラウザのタブが何らかの理由で侵害されたとしても、それが直接、管理者権限で実行されている別のツールに干渉できないようにするための重要な保護策となる。

UACのプロンプトには、ユーザーアカウントの種類によって「同意プロンプト」と「資格情報プロンプト」の二種類がある。管理者グループのメンバーが目にするのは「同意プロンプト」で、これは単に「はい」か「いいえ」をクリックするだけでアプリが管理者権限で実行される。一方、標準ユーザーが目にするのが「資格情報プロンプト」で、この場合は管理者アカウントのユーザー名とパスワードを入力する必要がある。Microsoftは、日常的に使用するアカウントを「標準ユーザーアカウント」にすることを推奨している。これは、標準ユーザーアカウントでは、悪意のあるプログラムが「はい」をクリックするだけで昇格する可能性がなくなり、さらにパスワードという明確な認証ステップが必要となるため、セキュリティがより一層強化されるからだ。

UACプロンプトのバナーの色にも意味がある。灰色のバナーは、それがWindowsの管理アプリか、信頼できる発行元によってデジタル署名されたプログラムであることを示す。一方、黄色のバナーは、プログラムが署名されていないか、署名されているが信頼できないことを示唆している。黄色のプロンプトだからといって必ずしも悪質なプログラムというわけではないが、より一層の注意を払い、心当たりのない場合は「いいえ」をクリックすることが賢明だ。Windowsのボタン上に表示される青と黄色の小さな盾のアイコンは、その操作に管理者権限が必要であることを示す目印である。

UACプロンプトが表示される際に、画面全体が暗くなり、他の操作ができなくなるのは単なる視覚効果ではない。Windowsはこの時、「セキュアデスクトップ」と呼ばれる、Windowsのプロセスだけがアクセスできる特別なデスクトップに切り替わっている。この目的は、悪意のあるプログラムがプロンプトを改ざんするのを防ぐためだ。通常のデスクトップでは、マルウェアが「はい」ボタンを偽装クリックしたり、プロンプトの上に偽の情報を重ねてユーザーを騙したりする可能性がある。しかし、セキュアデスクトップ上では、一般のプログラムはプロンプトにアクセスできないため、このような不正な操作を防ぐことができる。

UACの設定は、コントロールパネルからアクセスできるスライダーで四つのレベルに調整できる。最も厳格な「常に通知する」レベルでは、アプリの変更だけでなく、Windows設定の変更時にもプロンプトが表示される。通常推奨されるデフォルト設定は「アプリがコンピューターに変更を加えようとする場合のみ通知する」で、これはアプリがシステムに影響を与える変更を試みる場合にのみプロンプトを表示し、セキュアデスクトップも使用する。セキュリティ保護が失われるため推奨されないが、「デスクトップを暗くしない」という選択肢もある。そして、最も危険なのは「通知しない」という設定だ。この設定はUACを完全に無効にするわけではないが、管理者からの昇格要求はプロンプトなしで自動承認され、標準ユーザーからの要求は自動拒否される。Microsoftはセキュリティ上の懸念から、この設定を推奨していない。

UACを無効にすることは、基本的に推奨されない。古いゲームやツールが頻繁にプロンプトを表示して煩わしいと感じるかもしれないが、UACをオフにすると、管理者アカウントから起動された全てのプログラムが何の制限もなく完全な管理者権限で実行される状態に戻ってしまう。これはUACが防ごうとしているまさにその状況であり、システムのセキュリティが大幅に低下する。MicrosoftもWindowsセキュリティからの警告が表示され、一部のUniversal Windows Platform(UWP)アプリが動作しなくなる可能性もある。煩わしいプロンプトへの対処法としては、必要なツールだけを「管理者として実行」する、古いソフトウェアを更新する、日常使いには標準アカウントを使用する、開発ツールをユーザーごとにインストールする、といった方法がある。

システムエンジニアとして、UACが「セキュリティ境界」ではないという概念も理解しておくべきだ。「UACバイパス」と呼ばれる、プロンプトなしで管理者権限を取得する技術が存在する。MicrosoftはUACを「セキュリティ機能」と位置づけているが、「セキュリティ境界」とはみなしていないため、UACバイパスの全てをセキュリティ脆弱性として修正するとは限らない。だからこそ、日常的に標準ユーザーアカウントを使用することの重要性がさらに高まる。攻撃者が管理者パスワードを知らない限り、標準アカウントからバイパスできるものはないからだ。UACはリスクを大きく減らすが、最終的にはユーザーの判断に依存する。何の確認もなしに「はい」をクリックし続けていれば、UACの保護は意味をなさなくなる。プログラムの名前と発行元を確認し、心当たりのない場合は迷わず「いいえ」をクリックする習慣を身につけることが大切だ。

最後に、UACがあなたのPCで適切に機能しているか簡単に確認する方法を紹介する。まず、UAC設定のスライダーがデフォルトレベル以上になっていることを確認する。次に、コマンドプロンプトやターミナルを右クリックして「管理者として実行」を選択し、画面が暗転してプロンプトが表示されるか確認する。また、通常の(昇格されていない)コマンドプロンプトでwhoami /groupsと入力し、「Mandatory Label\Medium Mandatory Level」という行があるかを確認する。管理者として実行したコマンドプロンプトで同じコマンドを実行し、「High Mandatory Level」が表示されれば、UACのスプリットトークンが正しく機能している証拠だ。さらに、普段使っているアカウントが管理者アカウントであれば、セキュリティ向上のためにも標準アカウントをメインに使うことを検討してみよう。

関連コンテンツ

関連IT用語

関連ITニュース