Windows Vista でのユーザー アカウント制御の理解と設定

企業は、現在、デスクトップの標準化という困難な作業に直面しています。この問題は、大多数のユーザーがローカル管理者として自身のコンピュータを実行することが原因で大きくなってきました。ローカル管理者として、ユーザーは任意にアプリケーションのインストールおよびアンインストール、システム設定およびセキュリティ設定の調整ができます。この結果、IT 部門は、環境の総合的な状態およびセキュリティを多くの場合把握できなくなっています。さらに、これらのユーザーが起動するアプリケーションはどれも、管理者権限を使用して、システム ファイルとレジストリへの書き込み、およびシステム全体のデータを変更ができる可能性があります。Web の閲覧、電子メールの確認などの一般的な作業が、このようなシナリオのために安全ではなくなる可能性があります。さらに、これらの要素はどれも、組織の総所有コスト (TCO) を増加させる原因となります。

IT 部門は、攻撃に対し抵抗でき、さらにデータの機密性、整合性、および可用性を保護できるソリューションを必要としています。このような理由により、Microsoft® Windows Vista® 開発チームは、Windows のコア セキュリティ インフラストラクチャとアプリケーションの対話方法を再設計することを選択しました。ユーザー アカウント制御 (UAC) は、この再設計プロセスの成果です。

*
トピック
なぜ UAC かなぜ UAC か
UAC のしくみUAC のしくみ
標準ユーザー用のアプリケーションの展開標準ユーザー用のアプリケーションの展開
UAC 展開のシナリオUAC 展開のシナリオ
UAC 設定の構成UAC 設定の構成
UAC サービスUAC サービス
UAC のセキュリティに関する考慮事項UAC のセキュリティに関する考慮事項
UAC を使用した Windows Vista 以前のアプリケーションの互換性の構成UAC を使用した Windows Vista 以前のアプリケーションの互換性の構成
Application Compatibility Toolkit 5.0 を使用した修正プログラムの作成Application Compatibility Toolkit 5.0 を使用した修正プログラムの作成
まとめまとめ
フィードバックフィードバック
UAC の詳細情報UAC の詳細情報

なぜ UAC か

Windows 管理者アカウントの歴史

既定では、Microsoft Windows® XP を初めてインストールすると、Windows XP セットアップ ウィザードによりすべてのユーザー アカウントがローカル管理者として作成されます。この種類のアカウント、つまり管理者アカウントには、システム全体へのアクセス権があるので、ユーザーはソフトウェアのインストール、更新、および実行ができます。ユーザーをローカル管理者グループに追加すると、そのユーザーにはすべての Windows 特権が自動的に付与されます。特権は、コンピュータ全体のポリシーに影響を与える承認属性です。たとえば、SeBackupPrivilege により、ユーザーはファイルおよびディレクトリをバックアップできます。特権とアクセス許可を混同しないでください。アクセス許可はオブジェクトに適用され、特権はユーザー アカウントにのみ適用されます。これらの特権は、ユーザーのアクセス トークンに集約され保持されます。アクセス トークンには、承認のためのユーザー固有のデータも格納されます。Windows は、アクセス トークンを使用して、ユーザーがアクセスできるリソースを追跡します。すべての Windows リソースには、アクセス制御リスト (ACL) が備わっています。このリストには、そのリソースにアクセスできるアクセス許可のあるユーザーおよびサービスが記録され、さらにそれらのユーザーおよびサービスが所持するアクセス許可のレベルも記録されます。Windows の承認モデルでは、ユーザーのアクセス トークン内に格納されているデータを使用して、リソースの ACL でユーザーに対し許可されているアクセス、および許可されていないアクセスを特定します。

管理者ユーザーには、自動的に以下が付与されます。

すべてのリソースに対する読み取り/書き込み/実行の各アクセス許可

すべての Windows 特権

  注 :

Windows Vista では、%systemroot% ファイルおよびフォルダは、Windows リソース保護 (WRP) 用に設計されたアクセス許可を使用して保護されます。これらのファイルおよびフォルダには、System サービスのみがアクセスできます。管理者は、システム ファイルおよびフォルダを読むことはできますが、それらのファイルおよびフォルダに書き込むことはできません。これは、Windows の以前のバージョンとは異なるので注意してください。

Windows リソースの読み取り、変更、および削除できる権限を、すべてのユーザーに与える必要がないのは明らかですが、企業の IT 部門の多くは、すべてのユーザーを管理者にする以外に選択肢がありません。

現在企業は、ユーザーが管理者として実行することを許可していますが、以下はその理由の一部です。

アプリケーションのインストール (Users グループのメンバはアプリケーションをインストールおよびアンインストールできません)。企業の多くは、Microsoft Systems Management Server® (SMS)、グループ ポリシー ソフトウェア インストール (GPSI)、その他の同様のアプリケーション配布テクノロジなど、中央からユーザーにアプリケーションを配布する方法を持ち合わせていません。ソフトウェア配布テクノロジを利用している企業も、ユーザーが管理者として実行するのを許可しています。これは、特定部門の特殊なアプリケーションを一時的にインストールできるようにするためです (たとえば、マーケティング部門のカスタム スプレッドシート アプリケーションなど)。

カスタム Web アプリケーション (ActiveX コントロール)。独立系ソフトウェア ベンダ (ISV) コミュニティの成長により、多くの企業は、特定のビジネス要件に合わせて設計されたカスタム アプリケーションを使用する傾向にあります。これらのカスタム アプリケーションの多くには、ActiveX コントロールのインストールを必要とする Web ブラウザ フロントエンドが含まれています。ActiveX コントロールは実行可能ファイルで、マルウェアを含んでいる可能性があるため、Windows では Users グループのメンバは ActiveX コントロールをインストールできないようになっています。

TCO の削減 (ヘルプ デスクへの問い合わせの削減と攻撃面の削減)。多くの企業は、ユーザーに対し任意のアプリケーションのインストールを許可することにより、ヘルプ デスクへの問い合わせの数とコストを削減できると認識しています。残念ながら、管理者として企業のワークステーションを実行することは、ネットワークを "マルウェア" に攻撃されやすくしていることにもなります。"マルウェア" とは、ウイルス、トロイの木馬、スパイウェア、一部のアドウェアなど、悪意のあるすべてのソフトウェアを表す包括的な用語です。マルウェアは、ローカル管理者アカウントのシステム レベルのアクセス権を悪用して、ファイルの破壊、システム設定の改ざん、およびネットワーク外部への機密データの転送などを行います。

すべてのユーザーが標準ユーザーになることが、マルウェアの影響を軽減できる第一の方法です。標準ユーザー アカウントは、基本的なデスクトップ タスクを実行するのに必要な最小限のユーザー権限および特権があるユーザー アカウントです。ただし、Windows XP には標準ユーザー アカウントが既定で存在しますが、Windows のタイム ゾーンの変更、プリンタのインストールなど、多くの日常業務でユーザーは管理者特権を使用する必要があります。また多くのアプリケーションが実行前に管理者グループのメンバシップをチェックすることからわかるように、多くのアプリケーションでは、既定でユーザーが管理者になる必要があります。Windows 95 と Windows 98 については、ユーザー セキュリティ モデルは存在しません。このため、アプリケーション開発者は、Windows 95 と Windows 98 用のアプリケーションを、管理者がインストールして実行するという前提で設計します。Windows NT では、ユーザー セキュリティ モデルが作られましたが、既定では、すべてのユーザーが管理者として作成されます。また、Windows XP のコンピュータで、標準ユーザーがアプリケーションをインストール、および他の管理タスクを実行するには、[別のユーザーとして実行] を使用するか、管理者アカウントを使用してログオンする必要があります。

Windows Vista が開発されるまで、ログオフ、またはユーザーの切り替えを行わずに、または [別のユーザーとして実行] を使用せずに、ユーザーが標準ユーザー アカウントから管理者アカウントに一連の流れとして "昇格" できる方法は、Windows オペレーティング システムには組み込まれていませんでした。このため、ほとんどのユーザーは、管理者としてそのまま Web を閲覧し、電子メールを読んでいました。

総所有コストの削減

UAC により、ユーザーは標準ユーザーとして簡単に実行できるため、IT 部門は、システム ファイル、監査ログ、システム全体の設定など、環境の整合性を確実に向上させることができます。さらに、管理者は、個々のコンピュータで実行されるタスクの承認に多くの時間を費やす必要がなくなります。これにより、IT スタッフの時間が節約され、システム全体の保守に時間を費やすことができるようになり、結果としてエンタープライズ ソフトウェア プラットフォームに関する組織の TCO が削減されます。また、IT 管理者は、承認したアプリケーションのみインストールされるようにできるので、ソフトウェアのライセンスをこれまでより適切に管理できます。この結果、IT 管理者は、ライセンス未取得のソフトウェアまたは不正なソフトウェアにより、ネットワークが危険にさらされること、システムのダウンタイムおよびデータ損失が発生すること、またはライセンスに関する賠償責任が発生することを心配する必要がなくなります。

ページのトップへページのトップへ

UAC のしくみ

標準ユーザーとして実行する場合に顧客が直面する問題に対し、Microsoft は、すべてのユーザーが標準ユーザーとして簡単に実行できる方法を調査し始めました。

Microsoft Windows Vista の開発チームは、二元的な方法を採用しました。

1.

Microsoft のソフトウェア開発者とサード パーティのソフトウェア開発者が共同作業して、Windows リソースへの過度な管理者レベル アクセスを不必要に要求することを排除する。

2.

アクセス制御セキュリティ ポリシーを有効にすることで、標準ユーザーが実行するアプリケーションがオペレーティング システムと対話する方法を根本的に変更する。

UAC は、Windows Vista の重要な部分であり、Microsoft のセキュリティ ビジョン全体の基本コンポーネントでもあります。

ユーザー モードの再定義

Windows Vista には、標準ユーザー アカウントと管理者アカウントという 2 種類のユーザー アカウントがあります。標準ユーザーは、Windows の前のバージョンの標準ユーザー アカウントと同等です。標準ユーザーは、制限された管理者特権とユーザー権限を持ちます。標準ユーザーは、%systemroot% フォルダへインストールされるアプリケーションをインストールまたはアンインストールすること、システム設定を変更すること、およびその他の管理者タスクを実行することはできません。ただし、標準ユーザーは、プロンプトが表示されたときに有効な管理者資格情報を指定すると、これらのタスクを実行できます。UAC が有効になっている場合、ローカル Administrators グループのメンバは、標準ユーザーと同じアクセス トークンを使用して実行します。ローカル Administrators グループのメンバが承認を与えた場合に限り、プロセスは管理者の完全なアクセス トークンを使用できます。このプロセスは、管理者承認モードの原則に基づきます。

次の表に、標準ユーザーが実行できるタスクの詳細と、管理者アカウントへの昇格が必要なタスクの詳細を示します。

標準ユーザー管理者

ローカル エリア ネットワーク接続を確立する。

アプリケーションをインストールおよびアンインストールする。

ワイヤレス接続を確立および設定する。

デバイス ドライバ (デジタル カメラのドライバなど) をインストールする。

表示設定を変更する。

Windows のアップデートモジュールをインストールする。

ユーザーはハードディスク ドライブのデフラグを実行できませんが、サービスが代わりにこれを実行できます。

保護者による制限を設定する。

CD/DVD メディアを再生する (グループ ポリシーで設定可能)。

ActiveX コントロールをインストールする。

CD/DVD メディアを作成する (グループ ポリシーで設定可能)。

コントロール パネルから [Windows ファイアウォール] を開く。

現在のユーザーのデスクトップの背景を変更する。

ユーザーのアカウントの種類を変更する。

[日付と時刻] コントロール パネルを開き、タイム ゾーンを変更する。

セキュリティ ポリシー エディタ スナップイン (secpol.msc) で UAC の設定を変更する。

リモート デスクトップを使用して他のコンピュータに接続する。

リモート デスクトップ アクセスを設定する。

ユーザー本人のアカウント パスワードを変更する。

ユーザー アカウントを追加または削除する。

バッテリ電源のオプションを設定する。

Program Files ディレクトリまたは Windows ディレクトリにファイルをコピーまたは移動する。

ユーザー補助オプションを設定する。

自動化タスクのスケジュールを設定する。

ユーザーのバックアップ ファイルを復元する。

システム バックアップ ファイルを復元する。

モバイル デバイス (スマート フォン、ラップトップ、または PDA) とコンピュータの同期を設定する。

自動更新を設定する。

Bluetooth デバイスを接続および設定する。

他のユーザーのディレクトリを閲覧する。

Power Users グループからの移行

Windows XP の Power Users グループの目的は、グループのメンバに完全な管理者権限を与えなくても、それらのメンバがアプリケーションのインストールなどのシステム タスクを実行できるようにすることです。Power Users は、通常は管理者のみがアクセスできるファイル システムおよびレジストリ領域への書き込み権限も与えられています。Power Users により、アプリケーションの互換性が特定のレベルまで有効になりました。残念ながら、これは、根本的な問題 (必要以上の特権およびユーザー権限がアプリケーションに必要なこと) を解決したことにはなりません。UAC は Power Users グループを活用しません。Windows XP で Power Users グループに付与されたアクセス許可は、Windows Vista で削除されました。UAC により、標準ユーザーはすべての一般的な設定タスクを実行できます。ただし、Power Users グループは、Windows の他のバージョンとの下位互換性のために現在でも使用できます。 Windows Vista で Power Users グループを使用するには、新しいセキュリティ テンプレートを適用して、システム フォルダおよびレジストリの既定のアクセス許可を変更し、Windows XP と同等のアクセス許可を Power Users グループに付与する必要があります。

管理者承認モード

管理者アカウントの管理者承認モードを有効にすると、標準ユーザー タスクと管理者タスクが区別されるので、ユーザーに管理者タスクを安全に実行させることができます。たとえば、システム レジストリの変更は常に管理者タスクとなり、インターネットの閲覧は常に標準ユーザー タスクとなります。UAC アクセス トークン モデルにより、この区別がさらに明確になります。管理者承認モードでは、完全な管理者アクセス トークンを要求するアプリケーションやコンポーネントによって、管理者アカウントに対して同意を求めるプロンプトが表示されます。

UAC のアーキテクチャ

Windows Vista のログオン プロセスは、表面的には Windows XP のログオン プロセスと同じに見えますが、内部のメカニズムは大幅に変更されています。次の図は、管理者のログオン プロセスと標準ユーザーのログオン プロセスの違いを表しています。

Windows Vista のログオン プロセス

Windows Vista のログオンプロセス

管理者がログオンすると、完全な管理者アクセス トークンと "フィルタ処理された" 標準ユーザー アクセス トークンの 2 つのアクセス トークンがそのユーザーに与えられます。既定では、ローカル Administrators グループのメンバがログオンすると、Windows の管理者特権が無効になり、昇格されたユーザー権限が削除され、結果として標準ユーザー アクセス トークンが適用されます。デスクトップ (Explorer.exe) の起動には、標準ユーザー アクセス トークンが使用されます。Explorer.exe は親プロセスで、ユーザーが開始するその他のすべてのプロセスは Explorer.exe からアクセス トークンを継承します。この結果、既定では、すべてのアプリケーションは標準ユーザーとして実行されます。ただし、アプリケーションが完全な管理者アクセス トークンを使用することを、ユーザーが同意し承認した場合は、この限りではありません。このプロセスとは対照的に、標準ユーザーがログオンした場合は、標準ユーザー アクセス トークンのみが作成されます。デスクトップの起動には、この標準ユーザー アクセス トークンが使用されます。

Administrators グループのメンバであるユーザーは、標準ユーザー アクセス トークンを使用しながら、ログイン、Web の閲覧、および電子メールの確認ができるようになりました。管理者アクセス トークンを必要とするタスクを管理者が実行する必要がある場合、Windows Vista では、承認を求めるプロンプトがユーザーに対し自動的に表示されます。このプロンプトを昇格のプロンプトと呼びます。このプロンプトの動作は、セキュリティ ポリシー エディタ (secpol.msc) スナップインとグループ ポリシーで設定できます。UAC のグループ ポリシー設定の調整方法については、このドキュメントの「UAC 設定の構成」セクションを参照してください。

  注 :

このドキュメント内で "昇格する" という用語を使用した場合、"昇格する" という用語が表すのは、Windows Vista が同意と資格情報を要求するプロンプトをユーザーに対し表示して、完全な管理者アクセス トークンを使用できるようにする一連のプロセスです。

管理者のアクセス トークンを必要とする各アプリケーションは、同意を求めるプロンプトを管理者に対し表示する必要があります。ただし、例外が 1 つあります。それは親プロセスと子プロセスの間に存在する関係です。子プロセスは、親プロセスからユーザーのアクセス トークンを継承します。ただし、親プロセスと子プロセスは同じ整合性レベルを持つ必要があります。

Windows Vista は、プロセスに整合性レベルをマーキングすることでプロセスを保護します。整合性レベルは信頼性の尺度です。"高い" 整合性レベルのアプリケーションは、ディスクのパーティションを設定するアプリケーションなど、システム データを変更するタスクを実行するアプリケーションです。一方、"低い" 整合性レベルのアプリケーションは、Web ブラウザなど、オペレーティング システムを危険な状態にする可能性があるタスクを実行するアプリケーションです。Windows Vista では、低い整合性レベルのアプリケーションは、高い整合性レベルのアプリケーションのデータを変更できません。

管理者アクセス トークンを必要とするアプリケーションを標準ユーザーが実行しようとすると、有効な管理者資格情報を指定するよう UAC により要求されます。このプロセスについては、このドキュメントの「UAC のユーザー エクスペリエンス」セクションで詳しく説明します。

次の図は、UAC のアーキテクチャを表しています。

ユーザー アカウント制御のアーキテクチャとプロセス フロー

ユーザーアカウント制御のアーキテクチャとプロセスフロー

アプリケーション情報サービス

アプリケーション情報サービス (AIS) はシステム サービスで、高い整合性レベルを必要とするアプリケーション、および管理者タスクなどを実行するための 1 つまたは複数の昇格された特権またはユーザー権限を必要とするアプリケーションを起動できるようにします。昇格が必要で、(グループ ポリシーに基づき) ユーザーが昇格する同意を指定した場合、AIS は、管理者ユーザーの完全アクセス トークンを使用してアプリケーションの新しいプロセスを作成し、このようなアプリケーションを起動できるようにします。これは、Windows Vista の新しいサービスです。

仮想化

企業環境では、長い間、システム管理者がシステムを保護してきたため、多くの基幹業務 (LOB) アプリケーションは完全な管理者アクセス トークンを必要としないように設計されました。このため、UAC を有効にして Windows Vista を実行する場合、IT 管理者は、大部分の Windows Vista 以前のアプリケーションを置き換える必要はありません。

Windows Vista には、UAC に対応していないアプリケーション、およびこれまで管理者のアクセストークンを使用して正しく実行されていたアプリケーションのために、ファイルとレジストリの仮想化テクノロジが組み込まれています。仮想化により、UAC に対応していないアプリケーションでも、Windows Vista との互換性が保持できます。UAC 非対応の管理者アプリケーションが、Program Files など、保護されたディレクトリに書き込みを行おうとすると、コピーオンライト (Copy-On-Write) により、変更しようとしているリソースのそれ自体の仮想化ビューがアプリケーションに与えられます。その仮想化されたコピーは、ユーザーのプロファイル下で管理されます。したがって、UAC 非対応のアプリケーションを実行する各ユーザーに対し、仮想化されたファイルの個別コピーが作成されます。

仮想化テクノロジにより、UAC 非対応のアプリケーションがメッセージを表示せずに実行を失敗すること、または原因不明で失敗することが防げます。また UAC では、保護領域に書き込む Windows Vista 以前のアプリケーションに対しても、ファイルとレジストリの仮想化およびログの生成が既定で提供されます。

  注 :

仮想化は、昇格するアプリケーション、および完全な管理者アクセス トークンを使用して実行されるアプリケーションには適用されません。

ほとんどのアプリケーション タスクは、仮想化機能を使用して適切に実行されます。仮想化により、多くのWindows Vista 以前のアプリケーションを実行できますが、仮想化は短期的な回避策であり、長期的なソリューションではありません。アプリケーション開発者は、ファイル、フォルダ、およびレジストリの仮想化に依存するのではなく、できるだけ速やかにアプリケーションを修正して Windows Vista ロゴ プログラムに適応する必要があります。

UAC 対応のアプリケーションを ISV が設計する方法のガイダンスについては、「Windows Vista application development requirements for User Account Control compatibility (ユーザー アカウント制御の互換性のための Windows Vista アプリケーション開発要件)」(英語) を参照してください。

  注 :

仮想化は、ネイティブの Windows 64 ビット アプリケーションではサポートされていません。これらのアプリケーションは、UAC に対応する必要があり、正しい場所にデータを書き込む必要があります。

  注 :

要求実行レベルの属性を持ったアプリケーション マニフェストがプログラムに含まれる場合、アプリケーションに対する仮想化は無効になります。

要求実行レベル

Windows Vista では、アプリケーション マニフェスト (アプリケーションが実行時にバインドする共有およびプライベートのサイド バイ サイドのモジュールを記述および指定する XML ファイル) に、UAC アプリケーションの互換性のためのエントリが含まれます。アプリケーション マニフェスト内にこのエントリを含む管理者アプリケーションは、ユーザーのアクセス トークンにアクセスするための許可を要求するプロンプトをユーザーに対して表示します。ただし、ほとんどの Windows Vista 以前の管理者アプリケーションは、アプリケーション マニフェスト内に、このエントリがなくても、アプリケーション互換フィックスを使用することで、変更せずにスムーズに実行できます。アプリケーション互換フィックスは、データベース エントリで、UAC 非対応のアプリケーションを Windows Vista で適切に実行できるようにします。

すべての UAC 対応アプリケーションは、アプリケーション マニフェストに要求実行レベルを追加している必要があります。アプリケーションでシステムへの管理者アクセスが必要な場合、"管理者権限が必要" という要求実行レベルをアプリケーションにマーキングすることで、システムは、このプログラムを管理者アプリケーションと認識し、必要な昇格手順を実行します。要求実行レベルにより、システムは、アプリケーションが必要とする特定の特権を認識できます。Windows Vista で既存のアプリケーションを正しく実行するために、管理者アクセスが必要な場合は、このドキュメントの「UAC を使用した Windows Vista 以前のアプリケーションの互換性の構成」というセクションを参照してください。

インストーラ検出テクノロジ

インストール プログラムは、ソフトウェアを展開し、システム ディレクトリおよびレジストリ キーに多くの書き込みを行うように設計されたアプリケーションです。これらの保護されたシステムの場所には、通常は管理者ユーザーのみが書き込みを行うことができます。したがって、標準ユーザーには、インストール プログラムを使用するための十分なアクセス権がないことになります。Windows Vista は、インストール プログラムを検出します。そして、そのプログラムをアクセス特権を使用して実行するために、管理者資格情報または管理者ユーザーからの承認を要求します。Windows Vista は、アップデート プログラムおよびアンインストール プログラムも検出します。インストールが実行されると、ファイル システムの保護領域およびレジストリに書き込みが行われます。そこで、ユーザーが知らないうちに、またはユーザーの同意がないままにインストールが実行されるのを防ぐために UAC が設計されました。

インストーラ検出は、以下の場合にのみ適用されます。

1.

32 ビットの実行可能ファイル

2.

requestedExecutionLevel のないアプリケーション

3.

LUA が有効な標準ユーザーとして実行される対話型プロセス

32 ビットのプロセスが作成される前に、インストーラかどうか判断するために次の属性がチェックされます。

ファイル名に含まれている "install"、"setup,"、"update" などのキーワード

バージョンのリソース フィールド (Vendor、Company Name、Product Name、File Description、Original Filename、Internal Name、および Export Name) 内のキーワード

実行可能ファイルに埋め込まれているサイド バイ サイド マニフェスト内のキーワード

実行可能ファイルでリンクされている特定の StringTable エントリ内のキーワード

実行可能ファイルでリンクされている RC データ内の主要属性

実行可能ファイル内の対象となるバイト シーケンス

  注 :

キーワードおよびバイト シーケンスは、さまざまなインストーラ テクノロジで見られる共通の特性から導出したものです。

「Step 6: Create and Embed an Application Manifest (UAC)」セクションなど、上記のドキュメント全体をよく読んでください。

  注 :

インストーラ検出でインストール プログラムを検出するには、[ユーザー アカウント制御: アプリケーションのインストールを検出し、昇格をプロンプトする] 設定を有効にする必要があります。この設定は既定で有効になり、セキュリティ ポリシー マネージャ スナップイン (secpol.msc) またはグループ ポリシー (gpedit.msc) を使用して設定できます。

Microsoft Windows インストーラの一般情報および概要については、MSDN (http://msdn2.microsoft.com/en-us/library/aa372866.aspx) (英語) を参照してください。

機能に関する主な変更

以下の更新は、Windows Vista でこれまで行われた、機能に関する主な累積的変更を反映したものです。

UAC が既定で有効になる

このため、Windows Vista の UAC コンポーネントに対応するように更新されていない各種のアプリケーションで互換性の問題が発生する場合があります。アプリケーションで管理者アクセス トークンが必要な場合 (つまり、アプリケーションを実行しようとして、"アクセスが拒否されました" というエラーが返された場合)、コンテキスト メニュー (右クリック) の [管理者として実行] オプションを使用することで、管理者としてプログラムを実行できます。これを行う方法については、このドキュメントの「管理者としてプログラムを実行する」セクションで説明します。

後続のすべてのユーザー アカウントが標準ユーザーとして作成される

標準ユーザー アカウントと管理者ユーザー アカウントはどちらも UAC により強化されたセキュリティを利用できます。新規インストールでは、既定で、最初に作成されるユーザー アカウントは、管理者承認モード (UAC が有効) のローカル管理者アカウントとなります。以降のすべてのアカウントは標準ユーザーとして作成されます。

新規インストールでは、組み込みの Administrator アカウントは既定では無効

Windows Vista では、組み込みの Administrator アカウントは既定では無効です。Windows XP から Windows Vista へのアップブレード中に、組み込み Administrator が唯一のアクティブなローカル管理者アカウントであることが確認された場合、Windows Vista はそのアカウントを有効のままとし、そのアカウントを管理者承認モードにします。組み込みの Administrator アカウントは、既定では、セーフ モードでコンピュータにログオンできません。詳細については、次のセクションを参照してください。

ドメインに参加していない場合
少なくとも 1 つ有効なローカル管理者アカウントがある場合、セーフ モードで無効な組み込み Administrator アカウントを使用してログオンすることはできません。代わりに、ローカル管理者アカウントを使用してログオンできます。唯一のローカル管理者アカウントが誤って降格、無効化、または削除された場合、障害復旧のために、セーフ モードで無効な組み込み Administrator アカウントを使用してログオンできます。

ドメインに参加している場合
無効な組み込み Administrator アカウントでは、どのような場合でもセーフ モードでログオンできません。ローカル管理者が存在しない場合、Domain Admins グループのメンバであるユーザー アカウントは、コンピュータにログオンしてローカル管理者を作成できます。

  重要 :

ドメイン管理者アカウントが以前にログオンしたことがない場合、資格情報がキャッシュされていないので、ネットワークを使用してセーフ モードでコンピュータを起動する必要があります。

  注 :

マシンがドメインから脱退すると、マシンは先に説明したドメイン不参加の動作に戻ります。

昇格のプロンプトがセキュリティで保護されたデスクトップに既定で表示

Windows Vista では、同意のプロンプトおよび資格情報のプロンプトは、セキュリティで保護されたデスクトップに既定で表示されます。

新しい UAC セキュリティ設定およびセキュリティ設定名の変更

このドキュメントの「UAC 設定の構成」セクションで、UAC セキュリティ ポリシーについて詳しく説明します。

Standard User Analyzer

UAC を使用してアプリケーションの互換性をテストする場合、IT 管理者とアプリケーション開発者は Standard User Analyzer を使用できます。このツールでは、標準ユーザーとして実行すると通常は失敗するアプリケーションの特権を要する操作のログが作成されます。このログによって、これらのタスクを調整したり UAC への準拠を実現したりするためのロードマップが提供されます。また、Windows Vista のプロセス追跡の監査の設定を使用すると、企業環境で標準ユーザー以外として実行されているアプリケーションを確認できます。Windows のユーザー エクスペリエンスが UAC によって低下しないように、Microsoft では、これらのツールを使用してすべてのコンポーネントおよびアプリケーションをテストすることを推奨しています。このドキュメントの「UAC を使用した Windows Vista 以前のアプリケーションの互換性の構成」で、構成情報と手順を含め、これらのツールの詳細について説明します。

UAC のユーザー エクスペリエンス

UAC を有効にしたときの、標準ユーザーと管理者承認モードの管理者ユーザーの エクスペリエンスは異なります。ここでは、これらの違いの詳細を示し、UAC ユーザー インターフェイスの設計について説明します。

Windows Vista を実行する場合に推奨されるより安全な方法は、主要なユーザー アカウントを標準ユーザー アカウントにすることです。標準ユーザーとして実行する方法は、管理された環境のセキュリティを最大限に強化するための要件にもなります。組み込みの UAC 昇格コンポーネントを使用すると、標準ユーザーはローカル管理者アカウント用の有効な資格情報を入力することで、管理タスクを簡単に実行できます。標準ユーザー用の既定の組み込み UAC 昇格コンポーネントは、資格情報の確認プロンプトと呼ばれています。

標準ユーザーとして実行する代わりに、管理者承認モードで管理者として実行する方法もあります。組み込みの UAC 昇格コンポーネントを使用すると、ローカルの Administrators グループのメンバは承認を得ることで、管理タスクを簡単に実行できます。管理者承認モードの管理者アカウント用の既定の組み込み UAC 昇格コンポーネントは、同意の確認プロンプトと呼ばれています。UAC の昇格時のプロンプト動作は、ローカルのセキュリティ ポリシー エディタ スナップイン (secpol.msc) およびグループ ポリシーを使用して構成できます。このドキュメントの「ローカルのセキュリティ ポリシー エディタおよびグループ ポリシーを使用して UAC を管理する」セクションで、UAC のセキュリティ設定とその値について説明します。

同意の確認プロンプトおよび資格情報の確認プロンプト

UAC を有効にすると、完全な管理者アクセス トークンが必要なプログラムやタスクを起動する前に、有効な管理者アカウントの同意または資格情報の確認が Windows Vista によって求められます。この確認プロンプトにより、悪意のあるアプリケーションがサイレント状態でインストールされるのを防止できます。

同意の確認プロンプト
同意の確認プロンプトは、ユーザーの管理者アクセス トークンが必要なタスクをユーザーが実行すると表示されます。ユーザー アカウント制御の同意の確認プロンプトのスクリーンショットを次に示します。

ユーザー アカウント制御の同意の確認プロンプト

ユーザーアカウント制御の同意の確認プロンプト

次の例で、管理操作を実行する前にどのように同意を行うかを示します。

同意の確認プロンプトを表示するには

1.

管理者承認モードで管理者アカウントを使用して、Windows Vista コンピュータにログオンします。

2.

[スタート] ボタンをクリックし、[コンピュータ] を右クリックして、メニューの [管理] をクリックします。

3.

ユーザー アカウント制御の同意の確認プロンプトで、[続行] をクリックします。

資格情報の確認プロンプト
資格情報の確認プロンプトは、ユーザーの管理者アクセス トークンが必要なタスクを標準ユーザーが実行すると表示されます。この標準ユーザーの既定のプロンプト動作は、セキュリティ ポリシー マネージャ スナップイン (secpol.msc) およびグループ ポリシーで構成できます。[ユーザー アカウント制御: 管理者承認モードでの管理者に対する昇格時のプロンプトの動作] の値を [資格情報を要求する] に設定することにより、管理者も資格情報の提供を必要にすることができます。

ユーザー アカウント制御の資格情報の確認プロンプトの例を、次のスクリーンショットに示します。

ユーザー アカウント制御の資格情報の確認プロンプト

ユーザーアカウント制御の資格情報の確認プロンプト

次の例で、標準ユーザーが管理タスクを実行するときに資格情報の確認プロンプトを表示する方法を示します。

資格情報の確認プロンプトを表示するには

1.

標準ユーザー アカウントを使用して、Windows Vista コンピュータにログオンします。

2.

[スタート] ボタンをクリックし、[コンピュータ] を右クリックして、メニューの [管理] をクリックします。

3.

ユーザー アカウント制御の資格情報の確認プロンプトで、適切な管理者のユーザー名をクリックし、そのユーザー アカウントのパスワードを入力して、[OK] をクリックします。

アプリケーション対応の昇格時のプロンプト

UAC の昇格時のプロンプトはアプリケーション固有の色分けが使用されているため、アプリケーションの潜在的なセキュリティ リスクを即座に識別できます。アプリケーションが管理者の完全なアクセス トークンを使用して実行を試みると、Windows Vista はまず、実行可能ファイルを分析してその発行元を確認します。最初に、実行可能ファイルの発行元に基づいて、アプリケーションが Windows Vista、確認済み発行元 (署名済み)、および未確認発行元 (未署名) の 3 つのカテゴリに分けられます。次の図に、Windows Vista での、ユーザーに表示する昇格時のプロンプトの色の決定方法を示します。次の図は、対応する信頼のレベルに対する昇格時のプロンプトのロジックを示しています。

アプリケーション対応の昇格時のプロンプト

アプリケーション対応の昇格時のプロンプト

昇格時のプロンプトの色分けについて、次に説明します。

赤い背景と赤い盾のアイコン : ブロックされた発行元のアプリケーション、またはグループ ポリシーによってブロックされたアプリケーションです。

青/緑の背景 : コントロール パネルなどの Windows Vista の管理アプリケーションです。

灰色の背景と金色の盾のアイコン : アプリケーションは Authenticode で署名され、ローカル コンピュータによって信頼されています。

黄色の背景と赤い盾のアイコン : アプリケーションは未署名か、署名されていてもローカル コンピュータによってまだ信頼されていません。

色分けされた昇格時のプロンプトは、Microsoft Internet Explorer の色分けされたダイアログ ボックスに対応しています。

盾のアイコン

[日付と時刻] コントロール パネルなど、一部のコントロール パネルは、管理者の操作と標準ユーザーの操作が混在しています。標準ユーザーは時計の表示とタイム ゾーンの変更は可能ですが、ローカル システムの時刻を変更するには完全な管理者アクセス トークンが必要です。[日付と時刻] コントロール パネルのスクリーンショットを、次の図に示します。

日付と時刻

日付と時刻

ユーザーは、時刻を変更する必要があるときに、盾のアイコンをクリックします。盾のアイコンは、完全な管理者アクセス トークンを使用して、ユーザー アカウント制御の昇格時のプロンプトが必要なプロセスを起動するようにシステムに通知します。

昇格時のプロンプトのセキュリティ保護

セキュリティで保護されたデスクトップにこのプロンプトを表示することにより、昇格のプロセスはさらにセキュリティで保護されます。

Windows Vista では、同意の確認プロンプトおよび資格情報の確認プロンプトは、セキュリティで保護されたデスクトップに既定で表示されます。Windows プロセスのみが、セキュリティで保護されたデスクトップにアクセスできます。管理者および標準ユーザーに対する推奨事項に加え、Microsoft は、[ユーザー アカウント制御: 昇格のプロンプト時にセキュリティで保護されたデスクトップに切り替える] 設定で、より高度なセキュリティ レベルを有効のまま維持することも強く推奨しています。

実行可能ファイルが昇格を要求すると、対話型デスクトップの (ユーザー デスクトップとも呼ばれます) が、セキュリティで保護されたデスクトップに切り替えられます。セキュリティで保護されたデスクトップにユーザー デスクトップのアルファ ブレンディングされたビットマップがレンダリングされ、強調表示された昇格時のプロンプトおよび対応する呼び出し側アプリケーションのウィンドウが表示されます。ユーザーが [続行] または [キャンセル] をクリックすると、デスクトップが元のユーザー デスクトップに切り替わります。

マルウェアが対話型デスクトップを書き換えて、偽のセキュリティで保護されたデスクトップを表示できることに注意する必要があります。ただし、承認のプロンプトを表示するように設定すると、たとえユーザーが騙されて、その偽の [続行] ボタンをクリックしても、マルウェアが昇格することはありません。この設定を資格情報のプロンプトに設定すると、資格情報の確認プロンプトを模倣するマルウェアが、ユーザーから資格情報を収集できる可能性があります。この場合も、マルウェアが昇格した特権を得ることはなく、また、システムには、マルウェアが収集したパスワードを使用して自動的にユーザー インターフェイスを操作する危険を軽減する他の保護方法が用意されています。

  重要 :

マルウェアは、偽のセキュリティで保護されたデスクトップを表示できますが、ユーザーのコンピュータに既にマルウェアがインストールされている場合を除き、この問題が発生する可能性はありません。UAC が有効になっていると、管理者アクセス トークンが必要なプロセスはサイレントなインストールを実行できないので、ユーザーは、[続行] をクリックするか管理者資格情報を入力することにより、明示的に同意する必要があります。UAC の昇格時のプロンプトにおける特定の動作は、グループ ポリシーによって異なります。

Windows Vista ではこの設定は既定で有効になり、ローカルのセキュリティ ポリシー エディタ スナップイン (secpol.msc) を使用するか、一元的にグループ ポリシーを使用して構成できます。このドキュメントの「ローカルのセキュリティ ポリシー エディタおよびグループ ポリシーを使用して UAC を管理する」セクションで、使用可能な設定と構成について説明します。

Windows Vista 以前のアプリケーションの管理

一部のアプリケーションは、さまざまな理由により再設計されることがありません。UAC には、要求実行レベルやファイル、フォルダ、およびレジストリの仮想化など、Windows Vista 以前のアプリケーション用に組み込みの保護機能が用意されています。

Windows Vista 用の UAC 準拠アプリケーションの開発

ソフトウェア開発の世界では、最小限の特権とユーザー権利でアプリケーションを実行するという概念が広く受け入れられていますが、ソフトウェアの使用方法を簡略化したりユーザー インターフェイスを洗練化することに重点を置くアプリケーション開発者は、この方法を軽視することがあります。

多くのアプリケーション開発者は、UAC が適切に機能するようにアプリケーションの変更が必要になります。管理者権限を必要としないアプリケーションは、UAC に準拠するように再設計する必要があります。このように再設計すると、標準ユーザーが、現在の Windows では実行できない多くのアプリケーションを Windows Vista 上で実行できるようになります。

Microsoft は、アプリケーション開発者が簡単にこの再設計を行うことができるガイダンスとツールを用意しています。詳細については、MSDN のアプリケーションの互換性のページ (http://msdn2.microsoft.com/en-us/library/aa286552.aspx) (英語) を参照してください。

これらの変更を行っても、完全な管理者アクセス トークンを必要とするタスクは引き続き存在します。このタスクの例には、ユーザー アカウントの管理、デバイス ドライバのインストール、エンタープライズ管理ソフトウェアの実行などがあります。Windows Vista では、アプリケーション開発者は、特定のタスクに対して 2 つのアクセス レベル (標準または管理者) のどちらがアプリケーションに必要かを決定する必要があります。アプリケーションにタスク用の完全な管理者アクセス トークンが不要の場合、標準ユーザー アクセスのチェックのみが必要となるようにアプリケーションを記述する必要があります。たとえば、UAC 準拠アプリケーションは、Program Files ディレクトリ ツリーではなく、ユーザーのプロファイルにデータ ファイルを書き込む必要があります。

Windows Vista ロゴプログラム
Windows Vista ロゴ プログラムは、UAC 準拠のアプリケーションを作成する場合に役立ちます。このプログラムは厳密な認証のガイドラインを示し、認証された製品が Windows Vista で適切に動作することを顧客に示します。
Windows Vista ロゴの認証により、独立系ソフトウェア ベンダ (ISV) は、競合上の差別化を実現したり信頼性を向上したりできます。顧客は、認証されたアプリケーションを購入するときに、そのアプリケーションが Windows Vista に完全に準拠していること、および ISV が顧客のデータの整合性とセキュリティの確保に努めていることがわかります。Microsoft は現在、ISV がマニフェストを生成および署名するワークフローの処理に使用するベータ ツールを作成中です。Windows Vista ロゴの認証プロセスの詳細については、Microsoft Windows ロゴのホーム ページを参照してください。

ページのトップへページのトップへ

標準ユーザー用のアプリケーションの展開

企業における最も困難な作業の 1 つは、アプリケーションのインストールの制御です。Microsoft Systems Management Server (SMS) のようなツールを展開すると、IT 部門はアプリケーションの展開を一元管理し、企業の全体的な TCO を削減できます。Windows Vista の UAC ユーザー モデルを導入すると、SMS で TCO がより大幅に削減され、簡単に管理できるようになります。

アプリケーション展開におけるセキュリティの最大化

IT 部門は、次の 3 つのセキュリティ レベルを使用して、アプリケーション展開のシナリオをモデル化できます。

高 : アプリケーションはすべて、SMS、GPSI、または他の同様のアプリケーション展開テクノロジを使用してパッケージ化および展開されます。

中 : アプリケーションは、IT 部門が状況に応じてインストールします。

低 : 標準ユーザー自身の判断でアプリケーションをインストールできます。

前の 3 つのセキュリティ レベルのシナリオを次に示します。

高 : SMS、GPSI、または他の同様のアプリケーション展開テクノロジを使用して、すべてのアプリケーションを展開する

このシナリオでは、すべてのアプリケーション、オペレーティング システム、およびセキュリティ更新プログラムが、アプリケーション展開テクノロジを使用してインストールされます。アプリケーションの展開に SMS や GPSI のようなテクノロジを使用すると、次の利点があります。

容易な管理 : アプリケーションを一元管理することにより、IT 部門はインストールしたアプリケーションのリストを簡単に保守して、不要なアプリケーションがインストールされるのを防止できます。

マルウェアのインストールの低減 : 正規のソフトウェアにマルウェアがバンドルされている場合があるため、ユーザーがこのようなソフトウェアをインストールできないようにすると、多くのマルウェアのインストールを防止できます。

全体的な TCO の削減 : マルウェアのインストールが減少し、マルウェアの影響が各ユーザーごとのリソースに限定されます。

このセキュリティレベルの要件

専用サーバーに Microsoft SMS 4.0 がインストールされている (アプリケーション展開テクノロジとして SMS を使用している場合。使用していない場合は、選択したテクノロジに応じてこの要件を変更します)。

すべてのユーザーが標準ユーザー アカウントを持ち、標準ユーザー アカウントを使用してコンピュータにログインする。

ドメイン管理者が、標準ユーザー アカウントと UAC が有効なドメイン管理者アカウントの 2 つのアカウントを持っている。

[ユーザー アカウント制御: 管理者承認モードですべての管理者を実行する] 設定を有効にして、グループ ポリシーを使用して一元的に管理する。

[ユーザー アカウント制御: 昇格のプロンプト時にセキュリティで保護されたデスクトップに切り替える] 設定を有効にして、グループ ポリシーを使用して一元的に管理する。

[ユーザー アカウント制御: 標準ユーザーに対する昇格時のプロンプトの動作] 設定を [資格情報を要求する] に構成し、グループ ポリシーを使用して一元的に管理する。

利点 : この方法で UAC を実装するといくつかの利点があります。グループ ポリシーを使用して UAC のセキュリティ設定を一元管理することにより、IT 部門は、部門のポリシーを回避するようなローカル コンピュータ ポリシーの変更を禁止できます。ユーザーは標準ユーザーとしてコンピュータにログオンし、ローカルの管理者アカウントのユーザー名またはパスワードは知らないので、システム設定の変更、ソフトウェアとマルウェアのインストール、および無意識にまたは意図的にコンピュータの改ざんを行うことはできません。ユーザーはすべて標準ユーザーですが、SMS を使用して引き続きアプリケーションのインストールと更新を行うことができます。SMS によるソフトウェア展開に固有の利点については、このセクションで前に説明されています。

中 : IT 部門が状況に応じてアプリケーションをインストールする

このレベルは "中程度" のセキュリティ レベルですが、管理はほとんど困難です。このシナリオでは、すべてのユーザーが、アプリケーションのインストールを行うたびにヘルプデスクに要求を送信する必要があります。ヘルプデスクは、リモート デスクトップを使用してアプリケーションをインストールするか、ユーザーのコンピュータで資格情報を物理的に入力する必要があります。理論上、IT 部門は各コンピュータにどのアプリケーションがインストールされているかを把握していますが、その追跡のプロセスは面倒な作業で、管理が困難になることがあります。また、ローカルの管理者アカウントの資格情報が一度でも標準ユーザーに漏えいした場合は、セキュリティ ポリシーが侵害されていると見なす必要があります。

低 : ユーザー自身の判断でアプリケーションをインストールできる

このシナリオでは、3 つの構成方法が可能です。以下の各構成では低いレベルのセキュリティが提供され、最初の構成が最も安全です。

1.

ユーザーは標準ユーザーですが、ローカル管理者のユーザー名とパスワードを知っています。

1.

[ユーザー アカウント制御: 管理者承認モードですべての管理者を実行する] 設定を有効にします。

2.

ユーザーは、標準ユーザー アカウントを使用してログインし、管理タスクを実行する場合は、ユーザー アカウント制御の資格情報の確認プロンプトでローカル管理者アカウントの資格情報を入力します。

3.

影響 : IT 部門がアプリケーションのインストールを追跡したり、コンピュータの状態を追跡するための有効な方法はありません。また、ユーザーは、マルウェアであることに気付かずに、ユーザー アカウント制御の資格情報の確認プロンプトに資格情報を入力することにより、マルウェアをインストールする可能性もあります。

2.

ユーザーがローカル管理者です。

1.

[ユーザー アカウント制御: 管理者承認モードですべての管理者を実行する] 設定を有効にします。

2.

ユーザーは、管理者アカウントを使用してログインし、管理タスクを実行する場合、ユーザー アカウント制御の同意の確認プロンプトで同意します。

3.

影響 : UAC は有効になっていますが、すべてのユーザーが管理者としてログオンするため、すべてのユーザーが、ソフトウェアのインストール、システム設定の操作、およびコンピュータのセキュリティ ポリシーの変更を簡単に行うことができます。また、IT 部門がアプリケーションのインストールを追跡したり、コンピュータの状態を追跡するための有効な方法はありません。

3.

UAC が無効に設定され、ユーザーがローカル管理者です。

1.

[ユーザー アカウント制御: 管理者承認モードですべての管理者を実行する] 設定を無効にします。

2.

ユーザーは、管理者アカウントを使用してログインし、管理タスクを実行します。

3.

影響 : UAC を無効にすると、管理アプリケーションがユーザーの管理者アクセス トークンを使用しようとしても、そのユーザーには通知されません。そのため、IT 部門がアプリケーションのインストールを追跡したり、コンピュータの状態を追跡するための有効な方法はありません。また、管理者アクセス トークンを使用する実行可能ファイルを実行する前に、承認または資格情報を確認するプロンプトがユーザーに表示されないため、マルウェアをサイレントにインストールできます。

標準ユーザー用のアプリケーションのテスト

より多くのアプリケーションを標準ユーザー対応にするために、アプリケーション開発者は、標準ユーザーとしてそれらのアプリケーションをテストする必要があります。Windows Vista 準拠アプリケーションのテストのガイダンスについては、「Windows Vista application development requirements for User Account Control compatibility (ユーザー アカウント制御の互換性のための Windows Vista アプリケーション開発要件)」(英語) を参照してください。

アプリケーションの再パッケージ化

Windows Installer 4.0 は、UAC に完全に対応および準拠するように設計されました。IT 環境用にアプリケーションをカスタマイズおよび再パッケージ化する必要のあるシステム管理者は、FLEXnet AdminStudio 7 SMS Edition を使用して、SMS 展開用に Windows インストーラと共にソフトウェアを再パッケージできます。FLEXnet AdminStudio 7 SMS Edition は、SMS サーバー コンソールを操作することなく、SMS 2003 を使用してソフトウェア パッケージの準備、発行、および配布する機能を提供し、アプリケーション管理作業の効率を大幅に改善します。

FLEXnet AdminStudio 7 SMS Edition には、ウィザードベースの再パッケージ コンポーネントが用意されています。このコンポーネントを使用すると、パッケージ化が困難な InstallScriptを使用したセットアップも含め、すべてのセットアップを完全な Windows インストーラ パッケージに簡単に変換できます。再パッケージ コンポーネントには、スナップショットのない再パッケージ用を行う InstallMonitor、Windows インストーラへの変換中に InstallScript セットアップから最大限の情報を抽出するための SmartScan、Windows インストーラで重要なファイルが失われないようにするための Setup Intent、および正しいパッケージ化プロセスをユーザーに示すための Packaging Process Assistant が含まれています。

FLEXnet AdminStudio 7 SMS Edition は、Microsoft Web サイトから無料でダウンロードできます。

ソフトウェアのパッケージ化の詳細については、次の資料を参照してください。

SMS の再パッケージ ウィザード (http://go.microsoft.com/fwlink/?LinkId=71350) (英語)

Windows 2000 Server 再パッケージ ガイド (http://go.microsoft.com/fwlink/?LinkId=71352) (英語)

Windows 2000 Server ステップバイステップ ガイド : 再パッケージ化 (http://go.microsoft.com/fwlink/?LinkId=71353) (英語)

アプリケーションの互換性のための再パッケージ化のパートナー (http://go.microsoft.com/fwlink/?LinkId=71354) (英語)

ページのトップへページのトップへ

UAC 展開のシナリオ

ここでは、中規模な組織である Litware 社における 1 つの UAC 展開のシナリオについて説明します。次のシナリオは、UAC が有効な Windows Vista で実行すると発生する可能性のある潜在的な問題を、IT 部門が詳細に調査できるようにすることを目的としています。

Litware 社 (中規模組織)

Litware 社の本社でコンピュータに Windows Vista をインストールした後、ユーザーが管理者承認モードで管理者としてログインし、部門固有の基幹業務 (LOB) アプリケーションが格納された共有フォルダを見ます。この共有フォルダには、各アプリケーション用のフォルダがあり、ソフトウェアは、Windows インストーラや、bootstrapper.exe、xcopy タイプのインストーラを含め、アプリケーションをインストールするための多くの異なるテクノロジを使用しています。

Litware 社には 2,500 台の Windows XP デスクトップがあり、UAC を利用するために Windows Vista にアップグレードすることを決定しました。IT 部門は、会社のさまざまな LOB アプリケーションを標準ユーザーとしてインストールする方法を見つける必要がありますが、次のような問題が見つかりました。

IT 部門に、グループ ポリシー ソフトウェア インストール (GPSI) または Microsoft Systems Management Server (SMS) を使用したことのある担当者がいない。そのため、会社はスタッフの 1 人をトレーニングするための費用が必要になる。

LOB アプリケーションを変換して Windows インストーラでインストールするには、そのプロセスを支援するツールがないため、コストがかかる可能性がある。たとえば、それらのすべてをパッケージ化できるが、インストール設定は簡単に設定できない。

IT 部門は、アプリケーションのインストールを実行するためにいくつかのログオン スクリプトを開発したので、その作成に投資した時間、リソース、および労力を無駄にしたくない。

管理者承認モード管理者のソリューション

これは、Windows Vista に固有の問題ではありません。各企業は、かなりの長期間にわたり、成功の程度に違いはあるものの、標準ユーザーとしてのアプリケーションのインストールに向けて作業を続けてきました。以下に、推奨のレベル順 (低、推奨、強く推奨)に、そのソリューションを示します。


既存の共有からのインストールをユーザーに許可し、インストーラの検出機能を使用して LOB アプリケーションをインストーラとして識別させ、昇格した要求実行レベルで起動します。サイレントな昇格はオフに設定されているため、同意の確認プロンプトまたは資格情報の確認プロンプトはユーザーに表示されず、これらの共有からアプリケーションを実行するときは、完全な管理者アクセス トークンを使用してサイレント状態で昇格が実行されます。
Windows Vista のインストーラ検出機能の詳細については、このドキュメントの「インストーラ検出テクノロジ」セクションを参照してください。
残念ながら、この方法には制限があります。Windows Vista インストーラ検出機能がアプリケーションをインストーラとして識別し、そのアプリケーションを自動的に昇格する状況は数多く発生する可能性があります。また、アプリケーションが Windows Vista 環境にインストールするように設計されていなかった場合、アプリケーションの互換性に関するいくつかの考慮すべき事項も存在します。

推奨
会社が企業環境をより制限するときに、IT 部門が最初に実行することの 1 つは、ユーザーのコンピュータで実行しているすべてのアプリケーションのカタログの作成です。このシナリオでは、IT 部門のメンバが、これらのアプリケーションを既にネットワーク共有という単一の場所に統合してあります。これらのアプリケーションが統合されているので、インストーラの要求実行レベルを明示的に設定し、管理者として実行することにより、前のセクションで説明した制限を簡単に解決できます。アプリケーションの要求実行レベルの設定では、そのアプリケーションのアプリケーション互換性データベースにエントリを追加します。また、アプリケーションが誤ってインストーラとして識別される場合は、アプリケーションをより低い要求実行レベルに設定することもできます。
スクリプトを作成して共有フォルダ内を走査し、すべてのアプリケーションの RunAsAdmin アプリケーション互換データベース レベルを設定することもできます。アプリケーションの要求実行レベルの設定の詳細については、このドキュメント内の「アプリケーションのアプリケーション互換性の要求実行レベルの設定」を参照してください。
アプリケーション データベースの設定は、グループ ポリシーを使用して企業全体に展開されるグループ ポリシー オブジェクト (GPO) に関連付けられています。このポリシーを展開すると、アプリケーションが、明示的に指定された要求実行レベルで実行されるように一貫性を保って設定されていることが、企業内のすべてのユーザーに保証されます。

強く推奨
IT スタッフが、ユーザーがインストールしているさまざまなアプリケーションの把握を完了したので、IT 部門は、これらのアプリケーションのインストールを制御し、その他のアプリケーションがインストールされるのを防止できるようになりました。最初のステップは、インストーラの検出機能をオフにして、製品をインストールする社内の各アプリケーションの明示的な要求実行レベルの設定を行うことです。IT 部門が、ユーザーがインストールするすべてのアプリケーションを把握し、それぞれのアプリケーションの要求実行レベルが設定されれば、インストーラの検出機能を使用する必要がなくなります。
アプリケーションのインストールがより厳密に制御されるようになったため、ユーザーは CD や他の外部メディアからインストールする必要がなくなり、すべての作業をネットワーク上で実行できます。Windows インストーラを使用するアプリケーションをユーザーが外部のリムーバブル メディアからインストールするのを防止するには、以下の手順を実行して、Windows Installer Administrative Template ファイルの [インストールでリムーバブル メディアを使えないようにする] 値を設定します。

インストールでリムーバブルメディアを使用できないようにするには

1.

[スタート] ボタンをクリックし、[コントロール パネル] をクリックします。次に、[管理ツール] をダブルクリックし、[Active Directory ユーザーとコンピュータ] をダブルクリックします。

2.

[コンソール] ペーンで、[ユーザーの構成]、[管理用テンプレート]、[Windows コンポーネント] を順に展開し、[Windows インストーラ] をクリックします。

3.

[詳細] ペーンで、[インストールでリムーバブル メディア ソースを使えないようにする] を右クリックし、[プロパティ] をクリックします。

4.

[プロパティ] で、[有効] を選択し、[OK] をクリックします。

  注 :

[インストールでリムーバブル メディア ソースを使えないようにする] 設定を有効にすると、ユーザーが、CD、フロッピー ディスク、DVD などの外部メディアからプログラムをインストールしようとしたときに、その機能が見つからないことを通知するメッセージが表示されます。

  注 :

[インストールでリムーバブル メディア ソースを使えないようにする] 設定は、ユーザーのセキュリティ コンテキストでインストールを実行している場合にも適用されます。

  重要 :

前述したように、エンド ユーザーが管理者として実行している場合、IT 部門が展開した設定がそのコンピュータに実際に設定されているという保証はありません。管理ユーザーには、さまざまな設定を変更できる方法がいくつもあります。それを実行するかどうかは、時間、経験、および判断にかかっています。

アプリケーションを単一のネットワーク共有フォルダに統合する方法の他の利点は、すべてのバイナリに署名できることです。バイナリへの署名が完了すると、[ユーザー アカウント制御: 署名され検証された実行ファイルのみを昇格する] 設定を有効にして、追加の安全なレイヤを企業に用意できます。

また、ソフトウェア制限のポリシー (SRP) を追加して、承認されていない実行可能ファイルを実行することを禁止できます。

標準ユーザーのソリューション

以下に、推奨のレベル順 (低、推奨、強く推奨)に、ソリューションを示します。

推奨
IT 部門は、標準ユーザーはいずれのアプリケーションもインストールできないこと、およびそのアクセス トークンにユーザー権利の最小限のセットを持つことを前提にする必要があります。標準ユーザーは、管理者として実行できなくなり、代わりに、管理者として実行しているサービスが、そのユーザーのためにシステムの状態を変更する必要があります。さいわい、Windows には、この操作を行う Windows Installer Server というインストール サービスが用意されています。また、インストールの実行にユーザー インターフェイスを使用しないで、ユーザーのコンピュータにアプリケーションを配布できる、Group Policy Software Installation 拡張というサービスも用意されています。
詳細については、「Group Policy Software Installation 拡張 テクニカル リファレンス」(http://go.microsoft.com/fwlink/?LinkId=71356) (英語) を参照してください。
別のオプションでは、SMS などのテクノロジを使用してアプリケーションを展開します。この基本概念は上記と同じように、標準ユーザーが実行の権限またはユーザー権利を持っていないタスクを実行するために、バックエンド サービスを必要とすることです。
SMS を使用してアプリケーションを展開する方法の詳細については、Systems Management Server のWeb サイトを参照してください。
GPSI 拡張を使用する場合の課題の 1 つは、Windows インストーラでアプリケーションを配布する必要があるということです。アプリケーションのインストーラ バイナリを Windows インストーラに変換するには、"再パッケージ化" と呼ばれるプロセスを実行する必要があります。このプロセスには、そのアプリケーションに固有の設定の確認、およびさまざまなイベントに対する適切な実行順序の把握が含まれます。このプロセスを支援する、InstallShield の DevStudio などのツールがあります。
アプリケーションの再パッケージ化は労力を要する作業で、多くの企業はチーム全体が専任でその作業を行います。アプリケーションの再パッケージ化の詳細については、このドキュメントの「アプリケーションの再パッケージ化」を参照してください。

強く推奨
このシナリオでは、ソフトウェアの展開における多くの考慮すべき事項を示しています。一般に、すべての企業ユーザーが、そのユーザーのコンピュータに必要となる LOB アプリケーションのコア セットがあります。これは、GPSI Publishing または Advertisement を使用して企業全体に展開するときの対象となるソフトウェアの便利なセットです。多くのコンピュータが展開されている企業では、既にインストールされているこれらのアプリケーションでイメージ ライブラリを作成すると役に立つことがあります。
Windows で配布されるシステム準備ツール (sysprep.exe) を使用すると、大規模な展開を行うためのイメージを作成できます。システム準備ツールを使用することにより、必要なコア アプリケーションのすべてが含まれたイメージを作成し、環境全体のすべてのコンピュータにイメージを展開できます。この種類の展開では、ネットワークを介して複数の大規模なインストールを行うことによるリソースへの影響を回避できます。最後に、各部門の組織単位 (OU) を使用して、GPSI で補足のパッケージをユーザーに提供します。

ページのトップへページのトップへ

UAC 設定の構成

UAC の動作原理と、環境内に Windows Vista を展開しているときに発生する可能性のあるいくつかの問題について理解したので、次に、UAC を構成して、セキュリティや使いやすさを最適化する方法を説明します。

ここでは、UAC を構成する次の 2 つの主要な方法について詳しく説明します。

ローカルのセキュリティ ポリシー エディタおよびグループ ポリシーを使用して UAC を管理する

アプリケーションの昇格およびプロセス作成を監査する

ローカルのセキュリティ ポリシー エディタおよびグループ ポリシーを使用して UAC を管理する

Windows Vista より前のバージョンでは、パーソナル コンピュータまたはネットワーク設定で作業を行う標準ユーザーに、アプリケーションをインストールするオプションが用意されていることがありました。その場合の重要な違いは、管理者がグループ ポリシー設定を作成してアプリケーションのインストールを制限しても、標準ユーザーの既定の設定にアクセスしてアプリケーションのインストールを制限する方法が管理者にはなかったことです。UAC 環境では、管理者は制限が可能で、さらにグループ ポリシーを使用して、承認済みのデバイスと展開のリストを定義できます。

UAC に構成できるグループ ポリシー オブジェクト (GPO) 設定は 8 つあります。次の表は、それらの設定と既定値を示したものです。

UAC 設定

設定説明既定値

ユーザー アカウント制御: ビルトイン Administrator アカウントのための管理者承認モード

次の 2 つの設定が可能です。

[有効] : ビルトイン Administrator は、管理者承認モードで管理者として実行します。

[無効] : 管理者は、完全な管理者アクセス トークンを使用して実行します。

ビルトイン Administrator がコンピュータ上で唯一のアクティブなローカル管理者ではない場合、新規インストールとアップグレードに対しては無効です。既定では、ドメインに参加しているコンピュータ上では、ビルトイン Administrator アカウントはインストールとアップグレードに対して無効になっています。

Windows Vista により、ビルトイン Administrator アカウントがコンピュータ上で唯一のアクティブなローカル管理者であると判断された場合、アップグレードに対して有効です。Windows Vista がこのように判断した場合、ビルトイン Administrator アカウントは次のアップグレードに対しても有効なままです。既定では、ドメインに参加しているコンピュータ上では、ビルトイン Administrator アカウントはインストールとアップグレードに対して無効になっています。

ユーザー アカウント制御: 管理者承認モードでの管理者に対する昇格時のプロンプトの動作

次の 3 つの値を設定できます。

[確認を要求しないで昇格する] : 昇格は自動的にサイレントに行われます。このオプションを使用すると、管理者承認モードの管理者は、昇格に同意または資格情報を必要とせずに操作を実行できます。注 : このシナリオは、制約が最も厳しい環境でのみ使用する必要があり、推奨されません。

[同意を要求する] : 完全な管理者アクセス トークンが必要な操作の場合、管理者承認モードの管理者に [続行] または [キャンセル] を選択するメッセージを表示します。管理者が [続行] をクリックした場合、その管理者のより高い特権で操作が続行されます。

[資格情報を要求する] : 完全な管理者アクセス トークンが必要な操作の場合、管理者承認モードの管理者に、ユーザー名とパスワードの入力を求めるメッセージを表示します。ユーザーが有効な資格情報を入力した場合、適用可能な特権で操作を続行します。

同意を要求する

ユーザー アカウント制御: 標準ユーザーに対する昇格時のプロンプトの動作

次の 2 つの値を設定できます。

[昇格の要求を自動的に拒否する] : 昇格時のプロンプトは表示されず、ユーザーは、[管理者として実行] を使用するか、管理者アカウントを使用してログインした場合にのみ、管理タスクを実行できます。デスクトップを標準ユーザーとして実行するほとんどの企業は、ヘルプデスクへの問い合わせを減らすために [昇格の要求を自動的に拒否する] ポリシーを構成します。

[資格情報を要求する] : 完全な管理者アクセス トークンが必要な操作の場合、ユーザーに、管理者のユーザー名とパスワードの入力を求めるメッセージを表示します。ユーザーが有効な資格情報を入力した場合、適用可能な特権で操作を続行します。

自宅 : 資格情報を要求する

会社 : 昇格の要求を自動的に拒否する

ユーザー アカウント制御: アプリケーションのインストールを検出し、昇格をプロンプトする

次の 2 つの値を設定できます。

[有効] : Windows Vista がインストーラを検出すると、同意の確認プロンプトまたは資格情報の確認プロンプトをユーザーに表示します。

[無効] : アプリケーションのインストールを、メッセージなしで中止するか、不明確な結果が生じる方法で中止します。GPSI や SMS のような委任インストール テクノロジを利用する標準ユーザー デスクトップを実行している企業は、この機能を無効にします。この場合、インストーラの検出は不要なため、この機能は必要ありません。

有効

ユーザー アカウント制御: 署名され検証された実行ファイルのみを昇格する

次の 2 つの値を設定できます。

[有効] : 署名された実行可能ファイルのみを実行します。このポリシーは、昇格を要求するすべての対話型アプリケーションに対して、PKI 署名チェックを強制します。エンタープライズ管理者は、ローカル コンピュータの信頼された発行元ストアに証明書を設定することにより、管理アプリケーション許可リストを制御できます。

[無効] : 署名済みおよび未署名の両方のコードを実行します。

無効

ユーザー アカウント制御: 安全な場所にインストールされている UIAccess アプリケーションの昇格のみ

次の 2 つの値を設定できます。

[有効] : システムは、%ProgramFiles% または %windir% から起動された実行可能ファイルに対して、UIAccess 特権およびユーザー権利のみを与えます。これらのディレクトリの ACL によって、ユーザーは実行可能ファイルを変更できなくなります (変更できると、特権の昇格が可能になります)。他の場所から起動された UIAccess実行可能ファイルは、追加の特権がない状態で起動します (つまり、"asInvoker" で起動します)。

[無効] : 場所のチェックを実行しません。そのため、すべての UIAccess アプリケーションが、ユーザーの承認を得た完全なユーザー アクセス トークンを使用して起動されます。

有効

ユーザー アカウント制御: 管理者承認モードですべての管理者を実行する

次の 2 つの値を設定できます。

[有効] : 管理操作を実行しようとすると、管理者と標準ユーザーの両方にメッセージが表示されます。メッセージのスタイルはポリシーによって異なります。

[無効] : UAC は基本的に "オフ" に設定され、AIS サービスは自動的に起動された時点から無効になります。Windows セキュリティ センターも、オペレーティング システムの全体的なセキュリティが低下したことをログオン ユーザーに通知し、ユーザーが UAC を自動的に有効にできるようにします。

注 : この設定を変更すると、システムの再起動が必要になります。

有効

ユーザー アカウント制御: 昇格のプロンプト時にセキュリティで保護されたデスクトップに切り替える

次の 2 つの値を設定できます。

[有効] : セキュリティで保護されたデスクトップに UAC 昇格時のプロンプトを表示します。セキュリティで保護されたデスクトップは、悪意のあるソフトウェアが送信元のメッセージは削除される、Windows プロセスからのメッセージのみを受信します。

[無効] : 対話型 (ユーザー) デスクトップに UAC 昇格時のプロンプトを表示します。

有効

ユーザー アカウント制御: 各ユーザーの場所へのファイルまたはレジストリの書き込みエラーを仮想化する

次の 2 つの値を設定できます。

[有効] : このポリシーで、Windows Vista 以前のアプリケーションの書き込みエラーを、レジストリとファイル システム両方の定義済みの場所にリダイレクトできます。この機能により、以前は管理者として実行され、実行時にアプリケーション データを %ProgramFiles%; %Windir%; %Windir%\system32 または HKLM\Software\.... に書き込んだアプリケーションが減ります。UAC に準拠しないソフトウェアを使用する環境では、この設定を有効のままにする必要があります。アプリケーション互換性データベース エントリがないか、アプリケーション マニフェストに要求実行レベルが設定されていないアプリケーションは、UAC に準拠していません。

[無効] : 仮想化は、標準ユーザーとして実行できなかった Windows Vista 以前の (レガシ) アプリケーションの動作を助けます。Windows Vista 準拠アプリケーションのみを実行する管理者は、不要な場合はこの機能を無効に設定できます。この設定を無効にした場合、UAC に準拠しないアプリケーションが %ProgramFiles%; %Windir%; %Windir%\system32 または HKLM\Software\.... に書き込みを実行しようとすると、メッセージなしで実行が中止されます。

有効

UAC グループ ポリシー設定を構成するには、次の手順を実行します。ローカル管理者グループのメンバとしてログインし、手順を実行する必要があります。また、ユーザー アカウント制御の資格情報の確認プロンプトで、管理者アカウントの有効な資格情報を入力できる場合は、標準ユーザーとしてこの手順を実行することもできます。

UAC グループポリシー設定を構成するには

1.

[スタート] ボタンをクリックし、[検索の開始] ボックスに「secpol.msc」と入力し、[OK] をクリックします。

2.

[セキュリティの設定] で、[ローカル ポリシー] を展開し、[セキュリティ オプション] をクリックします。

3.

[詳細] ペーン (右側のペーン) で、目的の UAC 設定を右クリックし、[プロパティ] をクリックします。

4.

ドロップダウン リスト ボックスを使用して、適切な設定値を選択します。

  注 :

[ユーザー アカウント制御: 管理者承認モードですべての管理者を実行する] 設定を変更すると、コンピュータを再起動して、設定を有効にする必要があります。他の UAC グループ ポリシー設定はすべてが動的に有効になり、再起動する必要はありません。

アプリケーションの昇格およびプロセス作成の監査

プロセス追跡の監査の設定を使用すると、プロセスの昇格をリアルタイムに監視できます。たとえば、IT 部門がグループ ポリシーを使用してプロセス追跡の監査を有効にして、管理者承認モードの管理者または標準ユーザーがプロセスを完全な管理者プロセスに昇格するたびに、その操作を追跡できます。

プロセス追跡を監査するには

1.

[スタート] ボタンをクリックし、[検索の開始] ボックスに「secpol.msc」と入力し、[OK] をクリックします。

2.

[コンソール] ウィンドウで、[ローカル ポリシー] を展開し、[監査ポリシー] を選択します。

3.

[詳細] ウィンドウで、[プロセス追跡の監査] を右クリックし、[プロパティ] をクリックします。

4.

[プロセス追跡の監査のプロパティ] で、[成功] を選択します。

[特権使用の監査] 設定により、昇格されたプロセスの作成をリアルタイムに監視できます。

特権使用を監査するには

1.

[スタート] ボタンをクリックし、[検索の開始] ボックスに「secpol.msc」と入力し、[OK] をクリックします。

2.

[コンソール] ウィンドウで、[ローカル ポリシー] を展開し、[監査ポリシー] を選択します。

3.

[詳細] ウィンドウで、[特権使用の監査] を右クリックし、[プロパティ] をクリックします。

4.

[特権使用の監査のプロパティ] で、[成功] を選択し、[OK] をクリックします。

ページのトップへページのトップへ

UAC サービス

次のサービスが UAC に関連付けられています。

サービス説明

アプリケーション情報サービス (AIS)

Windows Vista で完全な管理者アクセス トークンを使用して対話型アプリケーションを簡単に実行できるようにします。

このサービスが停止すると、ユーザーは、目的のユーザー タスクの実行に必要なことがある、追加の管理者特権を持つアプリケーションを起動できなくなります。したがって、アプリケーション情報サービスが実行されていない場合、完全な管理者アクセス トークンが必要なアプリケーションは正常に機能しなくなります。

ページのトップへページのトップへ

UAC のセキュリティに関する考慮事項

各 IT 部門は、UAC のセキュリティに関する考慮事項を慎重に検討する必要があります。UAC グループ ポリシー設定により IT 部門は UAC の構成方法を選択できますが、新しいセキュリティ ポリシーを作成する前に比較検討する必要があるいくつかの考慮事項があります。

昇格時のプロンプトの模倣

Windows Vista には、昇格時のプロンプトを模倣できないようにする新しいセキュリティ設定が用意されています。この新しい設定 (ユーザー アカウント制御 : 昇格のプロンプト時にセキュリティで保護されたデスクトップに切り替える) により、プロセスが昇格を要求したときに、アクティブなユーザー デスクトップがセキュリティで保護されたデスクトップに切り替わります。セキュリティで保護されたデスクトップにアクセスできるのはコア プロセスからのみです。マルウェアはセキュリティで保護されたデスクトップと通信することはできません。そのため、セキュリティで保護されたデスクトップ上の昇格時のプロンプトはすべて、ユーザー デスクトップ上のアプリケーションによって制御することはできません。Windows Vista では、既定ですべての昇格がセキュリティで保護されたデスクトップで行われます。

ビルトイン Administrator アカウントのパスワードの設定

Windows Vista でのビルトイン Administrator アカウントのステータスについて説明します。

ビルトイン Administrator がコンピュータ上で唯一のアクティブなローカル管理者ではない場合、新規インストールとアップグレードに対しては無効です。既定では、ドメインに参加しているコンピュータ上では、ビルトイン Administrator アカウントはインストールとアップグレードに対して無効になっています。

Windows Vista により、ビルトイン Administrator アカウントがコンピュータ上で唯一のアクティブなローカル管理者であると判断された場合、アップグレードに対して有効です。Windows Vista がこのように判断した場合、ビルトイン Administrator アカウントは次のアップグレードに対しても有効なままです。既定では、ドメインに参加しているコンピュータ上では、ビルトイン Administrator アカウントはインストールとアップグレードに対して無効になっています。

ビルトイン Administrator アカウントが無効な場合、アカウントに対するオフライン攻撃を無効にするためにアカウントのパスワードを設定することを強くお勧めします。

UAC の無効化

[ユーザー アカウント制御: 管理者承認モードですべての管理者を実行する] 設定を無効にすると、UAC が "オフ" になります。UAC に対応していないアプリケーションでは、ファイルおよびフォルダは各ユーザーの場所に仮想化されなくなります。また、すべてのローカル管理者は、完全な管理者アクセス トークンを使用して自動的にログインします。この設定を無効にすると、基本的に Windows Vista が Windows XP ユーザー モデルに戻ります。UAC に対応していないアプリケーションでは UAC をオフにすることを推奨しているものもありますが、Windows Vista は、Windows Vista 以前または UAC に対応していないアプリケーション用のフォルダとレジストリの仮想化機能を既定で備えているため、UAC をオフにする必要はありません。UAC をオフにすると、コンピュータのシステム全体にマルウェアがインストールされる可能性があります。この設定を変更した場合、変更を有効にするためにシステムを再起動する必要があります。

未使用の UAC グループ ポリシー設定の無効化

どのような場合に仮想化を無効にするか

仮想化はブリッジ テクノロジとしての使用を目的としており、UAC との互換性がないアプリケーションが Windows Vista で正常に機能できるようにします。企業内で実行されるのは UAC と互換性のあるアプリケーションのみであることが IT 部門で確認された場合、[ユーザー アカウント制御: 各ユーザーの場所へのファイルまたはレジストリの書き込みエラーを仮想化する] グループ ポリシー設定は無効にできます。

どのような場合にインストーラ検出を無効にするか

インストーラは、Program Files ディレクトリなどの保護された領域に書き込むため、Win32 モデルではインストーラを管理コンテキストで実行する必要があります。[ユーザー アカウント制御: アプリケーションのインストールを検出し、昇格をプロンプトする] 設定により、インストーラが検出されると昇格時のプロンプトが呼び出されます。ロックダウンされたデスクトップを使用している企業では、使用可能なアプリケーションはすべて SMS または別のテクノロジで展開され、SYSTEM として実行されるインストーラ サービスによって昇格が自動的に行われるわけではないため、インストール時の昇格は不要です。

リモート コンピュータでの管理作業

Domain Administrators グループのメンバであるユーザー、または同様の特権を持つ別のグループは、ユーザーが管理作業を実行するときにのみ、その管理者が有効になっているアカウントを使用する必要があります。次のシナリオでは、この点を詳しく説明します。

Carol Philips は Litware 社のヘルプ デスク担当者で、ドメイン管理者アカウントと標準のドメイン ユーザー アカウントの 2 つのドメイン ユーザー アカウントを持っています。ドメイン管理者アカウントは、彼女が使用するワークステーションのローカル管理者グループのメンバです。Carol は、完全な管理者アクセス トークンが必要な作業を実行するときにのみドメイン管理者アカウントを使用するように、上司から言われています。そのため、Carol は自分のワークステーションにログオンし、管理作業を実行する必要があるときに [別のユーザーとして実行] またはターミナル サービスを使用します。ある日、Carol はコンピュータのハード ディスクをしばらくバックアップしていなかったことに気付きます。彼女は [別のユーザーとして実行] を使用してコマンド プロンプトを開き、自分の管理者アカウントの資格情報を入力して、コマンド プロンプトに「secedit」と入力した後 Enter キーを押します。それと同時に、標準ユーザーとして Web を閲覧しているときに、Web から誤ってマルウェアをダウンロードしてしまいました。ただし、Carol は標準ユーザー アカウントを使用してインターネットを閲覧していたため、マルウェアがネットワーク上の他のコンピュータに影響を与えることはありません。

ページのトップへページのトップへ

UAC を使用した Windows Vista 以前のアプリケーションの互換性の構成

UAC を構成する際の最後の手順として最も重要なのは、ソフトウェアが UAC に準拠するように設計されているか、IT 部門が Windows Vista で正常に機能するように構成しているかどうかを確認することです。

Windows Vista ロゴに準拠した新しいアプリケーションでは、アプリケーションは、標準ユーザー アカウントで実行できるか、管理アプリケーションの場合はアプリケーション マニフェスト エントリが設定されています。ユーザーがアプリケーションを、そのマニフェストと共に起動しようとすると、Windows Vista により、管理アプリケーションを起動しようとしているため、承認が必要であることがユーザーに通知されます。Microsoft のロゴ プログラムの詳細については、Microsoft Windows ロゴのホーム ページを参照してください。

IT 部門は、Windows Vista を展開しているときに、既存の基幹業務 (LOB) アプリケーションが正常に機能しなくなったことに気付く場合があります。この問題は、おそらく、Windows Vista に組み込まれた拡張機能とそのアプリケーションの間に互換性がないことが原因です。Microsoft では、IT 部門が互換性の問題を識別し、アプリケーション互換性フィックスを作成できるように、Application Compatibility Toolkit を用意しています。この互換性フィックスは、アプリケーション互換性の問題を修正するために使用される短いコードです。

IT 部門は、一部のプログラムが Windows Vista で正常に機能するために、そのプログラムで管理操作を実行できるようにする必要があることに気付くことがあります。この場合、プログラムを完全な管理者アクセス トークンで実行する前にユーザーに承認を求めるように、プログラムを設定する必要があります。この方法でアプリケーションを設定するプロセスは、アプリケーションの要求実行レベルの設定と呼ばれます。Application Compatibility Toolkit 5.0 には、アプリケーション互換性データベース エントリを作成およびインストールする手段が用意されています。これにより、要求実行レベルを容易に設定できます。

アプリケーション互換性と Application Compatibility Toolkit 5.0 の詳細については、TechNet にアクセスしてください。

アプリケーション互換性の要求実行レベルの設定

アプリケーションに選択される要求実行レベルは、アプリケーションが実行するシステム レベルの操作の種類によって異なります。使用できる 3 つの要求実行レベルを次に示します。

RunAsInvoker: アプリケーションを親プロセスと同じ Windows 特権およびユーザー権限で実行します。この設定は、アプリケーションに対してアプリケーション互換性データベースを使用しないのと同じです。アプリケーションを起動した親プロセスと同じ特権を使用してアプリケーションが起動されるため、アプリケーションのセキュリティ上の危険が軽減されます。これは、ほとんどのアプリケーションの親が標準ユーザー アプリケーションとして実行される Explorer.exe であるためです。完全な管理者として実行される cmd.exe シェルから起動された RunAsInvoker アプリケーションは、完全な管理者アクセス トークンを使用して起動されます。

RunAsHighest

アプリケーションを現在のユーザーが取得できる最も高い Windows 特権およびユーザー権限で実行します。この場合、必ずしもユーザーが管理者である必要はありません。この設定は、2 つのクラスのアプリケーションに使用されます。

管理者と標準ユーザーの両方がアプリケーションを実行でき、その動作はユーザーの特権と権限に基づいて変化します。

アプリケーションには標準ユーザーよりも大きな特権とユーザー権限が必要ですが、ユーザーがローカル Administrators グループのメンバである必要はありません。一例としては、Backup Operators グループのメンバであるユーザーです。このクラスのユーザーは、完全な管理者アクセス トークンが必要なアプリケーションを実行できませんが、バックアップ アプリケーションを実行できます。この場合、Windows Vista 以前のバックアップ アプリケーションを RunAsHighest として設定する必要があります。

RunAsAdmin: 管理者しかアプリケーションを実行できません。アプリケーションは完全な管理者アクセス トークンで起動され、標準ユーザー コンテキストでは正常に動作しません。この要求実行レベル設定は、ユーザーがローカル Administrators グループのメンバである必要がある Windows Vista 以前のアプリケーション用に予約されています。Windows Vista と以前のバージョンの Windows (Windows XP など) の違いの 1 つは、アプリケーション互換性データベースで RunAsAdmin と設定されている場合、アプリケーションが完全な管理者アクセス トークンで実行されていることを確認するのはオペレーティング システムであるという点です。Windows Vista が管理者アクセス トークンを取得できない場合、アプリケーションが起動されることはありません。

仮想化マーキング

IT 部門は次の設定を使用してファイルとフォルダの仮想化を制御できます。

NoVirtualization : アプリケーションはファイルとフォルダの仮想化なしで実行されます。NoVirtualization は次の 2 つの理由で設定されます。

1.

攻撃対象の縮小 : 仮想化を許可するアプリケーションは、他の標準ユーザー アプリケーションから攻撃を受ける可能性があります。Windows Vista には、特定の仮想の場所に書き込みが可能なアプリケーションを区別するしくみはありません。標準ユーザーとして適切に実行されるアプリケーションの仮想化をオフにすることで、(標準ユーザーとして動作する) マルウェアがアプリケーションを攻撃するリスクが大幅に軽減されます。

2.

ヘルプデスクが仮想化されたデータをデバッグする際の時間とコストを削減します。アプリケーションが標準ユーザー アプリケーションとして適切に機能している場合、仮想化をオフにすると、ヘルプデスク担当者によるアプリケーションのデバッグに役立ちます。これは、ヘルプデスク担当者がアプリケーション構成データを調べるために実際の場所と仮想化された場所の両方を参照する必要がないためです。

アプリケーション互換性データベースのマーキングとアプリケーション起動時の動作

アプリケーションが、起動時に完全な管理者アクセス トークンを取得できるかどうかは、アプリケーション互換性データベースのアプリケーションの要求実行レベルと、アプリケーションを起動したユーザー アカウントで使用できる特権とユーザー権限の組み合わせによって異なります。次の表では、このような組み合わせに基づいた実行時動作を示します。

管理者承認モードでの管理者

親プロセスのアクセス トークン承認ポリシーなしまたは RunAsInvokerRunAsHighestRunAsAdmin

標準ユーザー

確認を要求しないで昇格する

アプリケーションは標準ユーザーで起動されます。

アプリケーションは完全な管理者アクセス トークンで起動され、確認は要求されません。

アプリケーションは完全な管理者アクセス トークンで起動され、確認は要求されません。

標準ユーザー

同意を要求する

アプリケーションは標準ユーザーで起動されます。

アプリケーションは完全な管理者アクセス トークンで起動され、同意が要求されます。

アプリケーションは完全な管理者アクセス トークンで起動され、同意が要求されます。

標準ユーザー

資格情報を要求する

アプリケーションは標準ユーザーで起動されます。

アプリケーションは完全な管理者アクセス トークンで起動され、資格情報が要求されます。

アプリケーションは完全な管理者アクセス トークンで起動され、資格情報が要求されます。

管理者 (UAC は無効)

NA

アプリケーションは完全な管理者アクセス トークンで起動され、確認は要求されません。

アプリケーションは完全な管理者アクセス トークンで起動され、確認は要求されません。

アプリケーションは完全な管理者アクセス トークンで起動され、確認は要求されません。

標準ユーザー アカウント

親プロセスのアクセス トークン承認ポリシーRunAsInvokerRunAsHighestRunAsAdmin

標準ユーザー

昇格の要求を自動的に拒否する

アプリケーションは標準ユーザーで起動されます。

アプリケーションは標準ユーザーで起動されます。

アプリケーションは起動されません。

標準ユーザー

資格情報を要求する

アプリケーションは標準ユーザーで起動されます。

アプリケーションは標準ユーザーで起動されます。

アプリケーションを実行する前に、管理者の資格情報を要求します。

標準ユーザー (UAC は無効)

NA

アプリケーションは標準ユーザーで起動されます。

アプリケーションは標準ユーザーで起動されます。

アプリケーションは起動されません。

追加特権 (バックアップ オペレータなど) を持つ標準ユーザー

親プロセスのアクセス トークン承認ポリシーRunAsInvokerRunAsHighestRunAsAdmin

標準ユーザー

昇格の要求を自動的に拒否する

アプリケーションは標準ユーザーで起動されます。

アプリケーションは標準ユーザーで起動されます。

アプリケーションは起動されません。

標準ユーザー

資格情報を要求する

アプリケーションは標準ユーザーで起動されます。

アプリケーションは標準ユーザーで起動されます。

アプリケーションを実行する前に、管理者の資格情報を要求します。

標準ユーザー (UAC は無効)

NA

アプリケーションは標準ユーザーで起動されます。

アプリケーションは標準ユーザーで起動されます。

アプリケーションは起動されません。

ページのトップへページのトップへ

Application Compatibility Toolkit 5.0 を使用した修正プログラムの作成

Application Compatibility Toolkit 5.0 は、IT 部門がアプリケーション互換性フィックスの作成に使用できる Microsoft の無料アプリケーションです。Windows Vista では、Application Compatibility Toolkit を拡張して、アプリケーション互換性フィックスデータベース エントリを作成できるようにしました。このようなエントリは、アプリケーションの要求実行レベルを設定する際に使用されます。

このセクションの手順では、Application Compatibility Toolkit 5.0 のダウンロードに含まれている次の 2 つのツールを使用します。

Compatibility Administrator: 企業管理者が Windows Vista 以前のアプリケーション用のプログラム互換性フィックスを作成する際に役立つグラフィカル ユーザー インターフェイス ツールです。

Sdbinst.exe: 管理者が Windows Vista 以前のアプリケーション用のアプリケーション互換性フィックスをインストールする際に役立つコマンド ライン ツールです。

Standard User Analyzer: 企業管理者がアプリケーション互換性の問題があるアプリケーションを識別する際に役立つグラフィカル ユーザー インターフェイス ツールです。

アプリケーションの管理の依存関係を識別し、アプリケーションの要求実行レベルを設定するには、次のワークフローを使用します。

手順 1: アプリケーション検証ツールをインストールする

手順 2: Application Compatibility Toolkit 5.0 をインストールする

手順 3: Standard User Analyzer を使用して Windows Vista で正常に動作していない Windows Vista 以前の管理アプリケーションを識別する

手順 4: 各管理アプリケーションの要求実行レベルを確認する

手順 5: Compatibility Administrator プログラムを実行してアプリケーション互換性フィックス データベースを作成する

手順 6: sdbinst.exe コマンドを使用してテスト用コンピュータにアプリケーション互換性フィックスをインストールする

  注 :

アプリケーションの適切な設定については、このドキュメント内の「アプリケーション互換性の要求実行レベルの設定」を参照してください。

手順 1: アプリケーション検証ツールをインストールする

アプリケーション検証ツール (Application Verifier) は、Microsoft Web サイト (http://go.microsoft.com/fwlink/?LinkId=41326) (英語) から無料でダウンロードできます。Microsoft Standard User Analyzer をインストールするには、アプリケーション検証ツール (Application Verifier) が必要です。Microsoft Standard User Analyzer は、Application Compatibility Toolkit に含まれています。

手順 2: Application Compatibility Toolkit 5.0 をインストールする

Application Compatibility Toolkit 5.0 は、Microsoft Web サイトから無料でダウンロードできます。

手順 3: Standard User Analyzer を使用して Windows Vista で正常に動作していない Windows Vista 以前の管理アプリケーションを識別する

次の手順は、Standard User Analyzer を使用して、Windows Vista で正常に動作していない Windows Vista 以前の管理アプリケーションを識別する方法を示しています。

Windows Vista 以前のアプリケーションのアプリケーション互換性の問題を識別するには

1.

標準ユーザーとして Windows Vista コンピュータにログオンします。

2.

[スタート] ボタン、[すべてのプログラム]、[Microsoft Application Compatibility Toolkit 5.0]、[Developer and Tester Tools]、[Standard User Analyzer] の順にクリックします。

3.

[Standard User Analyzer] の [Target Application] で、テストするアプリケーションの完全なディレクトリ パスを指定するか、[Browse] ボタンをクリックして Windows エクスプローラでプログラムの実行可能ファイルを探します。

4.

[Launch] をクリックし、[ユーザー アカウント制御] 資格情報の確認プロンプトで管理者の資格情報を指定します。

5.

テスト用アプリケーションの起動後、アプリケーションで標準的な管理作業を実行し、完了したらアプリケーションを閉じます。

6.

[Standard User Analyzer] で、各タブの出力を確認します。このデータを使用して、プログラムの互換性の問題を識別します。

特権が不足したために失敗した場合は、管理者ユーザーでアプリケーション検証ツールのテストを実行することもできます。たとえば、管理者以外でアプリケーションを実行しているときにアクセス違反が発生し、アプリケーションが終了した場合、テストしたことになるのはアクセス違反が発生するまでのコード パスのみです。同じアプリケーションを管理者として実行すると、場合によっては、アクセス違反を通過して残りのコード パスを実行できます。ログには、標準ユーザーの場合は失敗していた操作が引き続き表示されます。

手順 4: 各管理アプリケーションの要求実行レベルを確認する

手順 3. で収集したデータを使用して、アプリケーションの正しい要求実行レベルを確認します。

  注 :

アプリケーションに適した要求実行レベルを確認するには、「アプリケーション互換性の要求実行レベルの設定」を参照してください。

  重要 :

不必要に高い要求実行レベルを指定するのではなく、アプリケーションが Windows Vista で正常に動作する適切な要求実行レベルを指定してください。

アプリケーション検証ツールを使用してアプリケーションの互換性の問題を識別した後、次の手順を使用して、アプリケーションの要求実行レベルを設定します。

手順 5: Compatibility Administrator プログラムを実行してアプリケーション互換性フィックス データベースを作成する

この手順は、[同意を要求する] に設定された [ユーザー アカウント制御: 管理者承認モードでの管理者に対する昇格時のプロンプトの動作] を使用して記述されています。

Compatibility Administrator を使用して管理アプリケーションを設定するには

1.

管理者承認モードで管理者として Windows Vista コンピュータにログオンします。

2.

[スタート]、[すべてのプログラム]、[アクセサリ] の順にクリックし、[コマンド プロンプト] を右クリックします。次に、[管理者として実行] をクリックし、ユーザー アカウント制御の昇格時のプロンプトで [続行] をクリックします。

3.

[コマンド プロンプト] で「C:\program files\Microsoft Application Compatibility Toolkit 5\Compatibility Administrator\Compatadmin.exe」と入力し、Enter キーを押します。

4.

[Compatibility Administrator] で、[Fix] アイコンをクリックします。

5.

[Create new Application Fix] ページの [Program information] で、[Name of the program to be fixed] にプログラム名、[Name of the vendor for this program] にベンダ名、[Program file location] にプログラム ファイルの場所を入力し、[次へ] をクリックします。

6.

[Compatibility Modes] で [None] をクリックし、[次へ] をクリックします。

7.

[Compatibility Fixes] で目的の要求実行レベルをクリックし、[次へ] をクリックします。

8.

[Matching Information] で、アプリケーションのマッチング情報をクリックし、[完了] をクリックします。

9.

[File] メニューの [Save] をクリックします。

10.

Application Compatibility データベースの名前を入力し、[OK] をクリックします。

11.

[Save Database:] で、データベース ファイルの名前を入力して、[保存] をクリックします。

  注 :

[Create New Application Fix] ウィザードの [Matching Information] ページで SIZE と PE_CHECKSUM を選択すると、ターゲット アプリケーションと同じ名前を持つ可能性がある他のアプリケーションにアプリケーション フィックスが誤って適用されることがなくなります。

  注 :

アプリケーション互換性フィックスを識別できるように、わかりやすい名前を選択します。指定した名前は、sdbinst.exe コマンド ライン ツールを使用してアプリケーション互換性フィックスをインストールした後、[コントロール パネル] の [プログラムと機能] に表示されます。

  注 :

作成する各アプリケーション互換性データベースには、対象となるアプリケーション用にアプリケーション互換性フィックスを 1 つ以上含めることができます。

手順 6: sdbinst.exe コマンドを使用してテスト用コンピュータにアプリケーション互換性フィックスをインストールする

アプリケーション互換性フィックスをインストールするには

1.

[スタート]、[すべてのプログラム]、[アクセサリ] の順にクリックし、[コマンド プロンプト] を右クリックします。次に、[管理者として実行] をクリックし、ユーザー アカウント制御の同意の確認プロンプトで [続行] をクリックします。

2.

[コマンド プロンプト] で「cd %windir%」と入力し、Enter キーを押します。