ユーザー アカウント制御 (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 にインストールされている場合は適用されません。
アプリケーションは、最初はコンピューターごとにインストールされていました。 管理者によって信頼されたパッチとして承認された後に、管理者以外のユーザーが管理するアプリケーションにパッチを適用できるようにする方法については、「Managed Applications Per-Userへの修正プログラムの適用」を参照してください。
MsiPatchCertificate テーブル は、ウィンドウ インストーラー パッケージ (.msi ファイル) に存在し、UAC を有効にするために必要な情報が含まれています。 テーブルと情報は、元のインストール パッケージに含まれているか、Windows インストーラーのパッチ ファイル (.msp ファイル) によってパッケージに追加されている可能性があります。
パッチは、MsiPatchCertificate テーブルに記載されている証明書によってデジタル署名されます。 デジタル署名証明書の詳細については、「デジタル署名と Windows インストーラーの」を参照してください。
パッチ パッケージのデジタル署名は、MsiPatchCertificate テーブルの証明書に対して検証できます。 デジタル署名、デジタル証明書、および WinVerifyTrustの使用の詳細については、Microsoft Windows ソフトウェア開発キット (SDK) の「セキュリティ」セクションを参照してください。
パッチ パッケージのデジタル署名が有効であり、取り消されていないことを確認するために使用される署名者証明書。
手記
期限切れの証明書を使用してパッチに署名することはできませんが、証明書の有効期限が切れている場合、パッチでのデジタル署名の評価は失敗しません。 評価では、現在の 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 情報参照してください。