ユーザー アカウント制御 (UAC) のパッチ

ユーザー アカウント制御 (UAC) のパッチを適用すると、Windows インストーラー インストールの作成者は、管理者以外のユーザーが将来適用できるデジタル署名された修正プログラムを特定できます。

デジタル署名が証明書と一致しない場合、Windows Vista では、パッチをインストールする前に管理者の承認を求める UAC ダイアログ ボックスが表示されます。 Windows Vista より前のシステムでは、インストーラーを使用した場合、証明書と一致しない署名付きパッチは適用されませんでした。

管理者以外のユーザーがアプリケーションにパッチを適用しようとした際に次の条件が満たされていない場合、Windows Vista では、修正プログラムをインストールする前に管理者の承認が必要であることがユーザーに通知されるようになります。 管理者以外のユーザーは、次の条件が満たされていれば、管理者による追加の承認を得る必要なく、パッチのインストールを続行できます。

  • アプリケーションが、Windows インストーラー 3.0 以降を使用して Windows Vista または Windows XP にインストールされている。

    Windows Server 2008: サポートされていません。

  • アプリケーションが Windows XP にインストールされている場合は、アプリケーションが CD-ROM や DVD ディスクなどのリムーバブル メディアからインストールしたものである必要もあります。 この制限は、アプリケーションが Windows Vista にインストールされている場合は適用されません。

  • アプリケーションが管理インストール ソース イメージからインストールされたものではない。

  • アプリケーションがもともとマシンごとにインストールされたものである。 パッチが管理者によって信頼済みとして承認された後に、管理者以外のユーザーがユーザーごとに管理されたアプリケーションにパッチを適用できるようにする方法については、ユーザーごとに管理されているアプリケーションにパッチを適用するに関するページを参照してください。

  • MsiPatchCertificate テーブルがウィンドウ インストーラー パッケージ (.msi ファイル) に存在し、UAC を有効にするために必要な情報が含まれている。 このテーブルと情報は、元のインストール パッケージに含まれているか、Windows インストーラーのパッチ ファイル (.msp ファイル) によってパッケージに追加されている可能性があります。

  • パッチが、MsiPatchCertificate テーブルに記載されている証明書によってデジタル署名されている。 デジタル署名証明書の詳細については、「デジタル署名と Windows インストーラー」を参照してください。

  • パッチ パッケージのデジタル署名を、MsiPatchCertificate テーブルの証明書と照合して検証することができる。 デジタル署名、デジタル証明書、WinVerifyTrust の詳細については、Microsoft Windows ソフトウェア開発キット (SDK) の「セキュリティ」セクションを参照してください。

  • パッチ パッケージのデジタル署名を検証するために使用される署名者証明書が有効であり、無効ではないこと。

    Note

    期限切れの証明書を使用してパッチに署名することはできませんが、証明書の有効期限が切れていても、パッチに対するデジタル署名の評価は失敗しません。 評価には、元のパッケージの MsiPatchCertificate テーブルと現在のパッチより前にシーケンスされたパッチによるテーブルの変更が含まれている、現在の MsiPatchCertificate テーブルが使用されます。 現在のパッチより後にシーケンスされたパッチの評価を行うために、パッチによって MsiPatchCertificate テーブルに新しい証明書を追加することができます。 失効した証明書は常に拒否されます。

     

  • MSIDISABLELUAPATCHING プロパティまたは DisableLUAPatching ポリシーの設定により、最小特権のパッチ適用が無効にされていない。

UAC パッチを使用して適用されたパッチは、管理者以外でも削除できます。

管理者は、アプリケーションの UAC 設定に関係なく、コンピューターごとにインストールされた製品にパッチを適用できます。

MsiGetProductInfoEx 関数を使用して INSTALLPROPERTY_AUTHORIZED_LUA_APP プロパティのクエリを実行するか、ProductInfo メソッドを使用して "AuthorizedLUAApp" プロパティのクエリを実行することで、アプリケーションに対して最小特権の修正プログラムが有効になっているかどうかを判断できます。 いずれかのプロパティの値が 1 の場合、アプリケーションで最小特権ユーザー アカウントのパッチ適用が有効になっています。

管理者は、DisableLUAPatching ポリシーを 1 に設定することで、そのコンピューターにおける最小特権のパッチ適用を無効にすることができます。 アプリケーションの初回インストール時に MSIDISABLELUAPATCHING プロパティを 1 に設定すると、そのアプリケーションに対してのみ、最小特権のパッチ適用がされないようにすることができます。

この機能は、Windows インストーラー バージョン 3.0 以降で使用できます。 ユーザー アカウント制御 (UAC) のパッチ適用は、Windows XP では最小特権のユーザー アカウント (LUA) のパッチ適用と呼ばれていました。 LUA のパッチ適用は、Windows 2000 および Windows Server 2003 では使用できません。

アプリケーションの互換性と、ユーザー アカウント制御 (UAC) と互換性のあるアプリケーションの開発の詳細については、Microsoft Technet で提供されている UAC の情報を参照してください。