コンピューターシステム株式会社

技術BLOG

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

セキュリティ 2019/08/30 東京担当

Windowsのセキュリティ機能の一つであるユーザーアカウント制御(UAC)の紹介。

■0:初めに

こんにちは。東京本社のNGTです。今回は、Windowsのセキュリティ機能の一つであるユーザーアカウント制御(UAC)について紹介したいと思います。

■1.UACの概要

ユーザーアカウント制御 (UAC; User Account Control) は、Windows Vista以降より実装されたセキュリティ機能で、ユーザーの意図しない操作が勝手に実行されたり、許可していないプログラムが起動するのを防ぐ機能です。

PCを操作しているユーザーアカウントの権限に応じて、ソフトウェアのインストールやプログラムの実行など、PCに影響を与える操作が行われる際に、許可を求めるメッセージが表示されたり、管理者権限を持つアカウントのパスワードの入力を求められます。

ユーザーアカウントの権限は、アカウントをグループに所属させるという形式で設定されます。主なグループですが以下があります。

管理者(Administrator)
PCに対してすべての操作を許可する管理者権限を持つグループです。

標準
管理者(Administrator)に比べて一部の管理機能が制限されたグループです。
Guestアカウントも標準に含まれます。

■2.UACが考慮できていないと起こりうる問題

ユーザーアカウント制御はWindows Vista以降より実装された為、それ以前の古いプログラムだと一部の機能が正しく動作しないといった問題が発生する可能性があります。

例として、ユーザーアカウント制御の操作制限対象であるフォルダに対して、何らかの操作を行うアプリケーションは、特定の機能が正しく動作しない可能性があります。

・プログラムファイルフォルダ(「C:\Program Files」など)
・システムルートフォルダ(「C:\Windows」など)
・システムドライブルートフォルダ(「C:\」など)
・プログラムデータフォルダ(「C:\ProgramData」など)

以上のような場所に対して、ファイル及びフォルダの作成、変更、削除の操作は、エラーが発生したり意図しない動作が発生する可能性があります。

■3.VirtualStore機能について

先ほどのユーザーアカウント制御の操作制限対象であるフォルダに対しての操作ではエラー自体は起きないことがほとんどです。というのも、そういったケースを想定したVirtualStoreという機能が、ユーザーアカウント制御とあわせて用意されているからです。

VirtualStoreとは、フォルダやファイルの操作を仮想化することで、システムを保護する機能です。Windows XPでは管理者権限であればC:\Program File以下やC:\Windows以下などの場所でもファイルを書き込むことが可能でした。

ですが、VirtualStore機能が実装されたWindows Vista以後では、管理者権限でも上記のような重要なフォルダでのファイルの操作は原則不可能となっています。

制限対象となるフォルダへの操作を行う場合、OSは代理に以下の場所に対して操作を行います。

C:\Users\<ユーザ名>\AppData\Local\VirtualStore

■4.VirtualStore機能で起こる問題

VirtualStore機能による仮想化は、それを知らないユーザーからすると、以下のような問題にぶつかる場合があります。

・作成されているはずのファイルまたはフォルダーが見つからない 。
・設定ファイルが更新されていないが、アプリケーションは更新された設定ファイルに準じた動作をしている。

こういった問題にぶつかった場合は、C:\Users\<ユーザ名>\AppData\Local\VirtualStoreに関連するフォルダやファイルが作成されていないか確認してみると解決するかもしれません。

■5.最後に

ユーザーアカウント制御、VirtualStore機能どちらも仕組みが理解できれば、上手く付き合うのは難しくないと思います。

アプリ開発やサーバーへの新規アプリ導入時など、後々の無駄な調査や対応が減らせるかもしれませんので考慮してみてはいかがでしょうか。