アンインストール可能なパッチ

パッチをアンインストールできるかどうかは、パッチの作成方法、パッチのインストールに使用された 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 インストーラーはそのパッチをアンインストール不可としてマークします。 アンインストール可能なパッチでは、この一覧に含まれていないデータベース テーブルに新しい行を追加することで、新しいファイル、アセンブリ、レジストリ エントリ、コンポーネント、または機能をインストールに追加できます。

パッチのシーケンス処理

パッチの削除

パッチのアンインストール

パッチ アンインストール カスタム アクション

MSIPATCHREMOVE

MsiEnumapplicationsEx

MsiGetPatchInfoEx

MsiRemovePatches