アンインストール可能なパッチ
パッチをアンインストールできるかどうかは、パッチの作成方法、パッチのインストールに使用された Windows インストーラーのバージョン、およびパッチがアプリケーションに加えた変更によって決まります。 パッチをアンインストールできない場合、パッチを削除する唯一の方法は、アプリケーション全体をアンインストールし、削除するパッチを適用せずに再インストールすることです。
Windows インストーラー バージョン 3.0 で適用されたパッチのアンインストールは、「パッチのアンインストール」セクションで説明されているように、コマンド ライン オプション、MsiRemovePatches 関数、または RemovePatches メソッドを使用して呼び出すことができます。 Windows インストーラーは、MSIPATCHREMOVE プロパティに削除対象としてリストされている各パッチがアンインストール可能であるかを検証します。 ユーザーにパッチを削除する権限がない場合、パッチが製品に対して不明な場合、パッチ ポリシーによって削除が禁止されている場合、またはパッチがアンインストール不可としてマークされている場合、インストーラーはインストール トランザクションの失敗を示すエラーを返します。
Windows インストーラー 2.0: サポートされていません。 Windows インストーラー 3.0 より前のバージョンの Windows インストーラーを使用して適用されたパッチはアンインストールできません。
アンインストールできないパッチ
インストールされているアプリケーションに適用されたパッチ (.msp ファイル) は、次の場合にはアンインストールできません。 アンインストールできないパッチを削除する唯一の方法は、パッチが適用されたアプリケーションをアンインストールしてから、パッチを再適用せずにアプリケーションを再インストールすることです。 この場合、アプリケーションから削除したくないパッチを再適用する必要があります。
Windows インストーラー 3.0 より前のバージョンの Windows インストーラーを使用して適用されたパッチはアンインストールできません。
管理者がコンピューターに DisablePatchUninstall ポリシーを設定している場合、そのコンピューターにインストールされているアプリケーションに適用されたパッチはアンインストールできません。 このコンピューター ポリシーが設定されている場合、管理者であっても、コンピューター上のパッチはアンインストールできません。
データベースに MsiPatchMetadata テーブルがないパッチはアンインストールできません。
MsiPatchMetadata テーブルに次の行が含まれていないパッチはアンインストールできません。 Company、Property、Value がこれ以外の値のパッチはアンインストールできません。
[会社] プロパティ 値 {Null} AllowRemoval 1 パッチは、ユーザーがパッチをアンインストールするための十分な権限を持っていないコンテキストでインストールされたアプリケーションに適用されます。 次の表の "禁止" という単語は、管理者または管理者以外のユーザーが、このコンテキストでインストールされたパッチ適用済みアプリケーションからパッチをアンインストールできないことを示します。 この表の "許可" という単語は、特権によって、管理者または管理者以外のユーザーがパッチをアンインストールできるようになることを意味しますが、このセクションで説明するその他の理由により、特権があってもパッチをアンインストールできない場合があります。
アプリケーション インストールのコンテキスト 管理者によるパッチのアンインストール 管理者以外のユーザーによるパッチのアンインストール コンピューターごと 許可 通常は禁止。唯一の例外は、パッチが LUA パッチ適用を使用して適用された場合です。 LUA パッチとしてマークされているパッチは、管理者または管理者以外のユーザーがアンインストールできます。 LUA パッチ適用は、メディアからコンピューターごとにインストールされたパッケージでのみ使用でき、特別な編集が必要です。 現在のユーザーに対してユーザーごとに非管理 許可 許可 異なるユーザーに対してユーザーごとに非管理 禁止 禁止 現在のユーザーに対してユーザーごとに管理 許可 禁止 異なるユーザーに対してユーザーごとに管理 禁止 禁止 パッチによって適用されるメジャー アップグレードはアンインストールできません。 アプリケーションのメジャー アップグレードは、パッチではなく、アップグレードされたアプリケーション (.msi ファイル) をインストールすることによって実行する必要があります。
管理インストールに適用されたパッチはアンインストールできません。 管理インストールにパッチを適用することは推奨されていません。 ユーザーが管理イメージからアプリケーションをインストールした後、ユーザーのコンピューターに現在の一連のパッチを適用する必要があります。 これにより、ユーザーのコンピューターにキャッシュされたパッケージ コード が、管理インストールのパッケージ コードと異ならないようにすることができます。 ユーザーのコンピューターにキャッシュされたパッケージ コードが管理インストールのパッケージ コードと異なる場合、管理インストールからアプリケーションを再インストールし、クライアント コンピューターにパッチを適用します。
パッチによって次の一覧のいずれかのテーブルに新しいコンテンツが追加されると、Windows インストーラーはそのパッチをアンインストール不可としてマークします。 アンインストール可能なパッチでは、この一覧に含まれていないデータベース テーブルに新しい行を追加することで、新しいファイル、アセンブリ、レジストリ エントリ、コンポーネント、または機能をインストールに追加できます。
[!注意]
パッチによって RemoveFile テーブルまたは RemoveRegistry テーブルに新しいコンテンツが追加された場合、Windows インストーラーはそのパッチをアンインストール不可としてマークしません。 ただし、新しいコンテンツを削除するためのリソースが元のインストール パッケージに存在しない限り、パッチはアンインストールできません。 たとえば、パッチによって RemoveFile テーブルに新しい行が追加された場合、ファイルが File テーブルの外部にある場合には、パッチをアンインストールしても削除されたファイルは復元できません。 パッチをアンインストールできるようにするには、ファイルが元のパッケージの File テーブルと適用対象のパッチで作成されている必要があります。
関連トピック