MSI ソフトウェア更新プログラムの登録破損の問題を修正する方法

この記事では、ソフトウェア更新プログラムのインストール後に特定の製品の修復またはアンインストールが失敗する可能性がある問題に対する解決策を提供します。

適用対象:  Windows 10 - すべてのエディション、Windows Server 2012 R2
元の KB 番号:   971187

現象

ソフトウェア更新プログラムをインストールした後、特定の製品の修復またはアンインストールが失敗する可能性があります。 MSI ログを有効にしている場合は、ログに次の行が表示されます。

ローカル パッチ ''が見つからなかった。 ソースで探しています。
...
MainEngineThread が 1612 を返しています

レジストリを確認すると、次のレジストリ サブキーにソフトウェア更新プログラムのキャッシュ登録が見つからない場合があります。 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<SQUID>

解決方法

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護を強化するため、レジストリを変更する前にレジストリをバックアップします。 こうしておけば、問題が発生した場合にレジストリを復元できます。

この問題を解決するには、次の手順を実行します。

  1. 製品が影響を受けるのを確認します。

    これを行うには、次の手順を実行します。

    1. 次のレジストリ サブキーを開いて、製品のソフトウェア更新プログラムの登録を検索します。 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches
      このサブキーの下には、製品に適用されたソフトウェア更新プログラムごとにサブキーがあります。

    2. 次の形式のサブキーごとに、次の手順を実行します。 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches\<PatchSQUID>

      次のサブキーが存在することを確認します。

      HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<PatchSQUID>

      サブキーが見つからない場合、製品は影響を受ける。 手順 2 に進みます。

      サブキーが存在する場合は、LocalPackage 文字列値が正しく設定され、LocalPackage 文字列値によって参照されるパッケージも存在することを確認します。

      1. LocalPackage 文字列値または参照パッケージが見つからない場合、製品は影響を受ける。 手順 2 に進みます。
      2. 参照先のパッケージが存在し、追加のアクションが必要ない場合。
  2. ソフトウェア更新プログラムのキャッシュ レジストリの詳細を再作成します。 これを行うには、次の手順を実行します。

    1. インストールしようとしたソフトウェア更新プログラムについては、%windir%\installer \ *.msp を検索します。 ソフトウェア更新プログラムが概要情報ストリームで正しいパッチグローバル一意識別子 (GUID) を持ち、正しい製品 GUID を対象としていることを確認します。

      注意

      このディレクトリは、ユーザーごとのインストールとコンピューターごとのインストールのキャッシュとして機能しますので、ユーザー単位のインストールを使用して、このディレクトリ内のソフトウェア更新プログラムをシミュレートできます。

    2. 次のサブキーを作成します。 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<PatchSQUID>

      注意

      ソフトウェア更新プログラムのキャッシュ レジストリを再作成することは、セキュリティ上のリスクです。 ただし、これが破損を修復する唯一の方法です。 ソフトウェア更新プログラムが正しいソフトウェア更新プログラムである必要がある場合は、セキュリティ リスクを軽減できます。 これを行うには、ソフトウェア更新プログラムのチェックサムを確認します。

    3. 手順 2 を作成したレジストリ サブキーに LocalPackage 文字列値を作成します。 LocalPackage 文字列値がソフトウェア更新プログラムのパスに設定されている必要があります。

  3. 残りのソフトウェア更新プログラム参照を削除します。 これを行うには、次の手順を実行します。

    1. 次のサブキーを開き <PatchSQUID> 、"AllPatches" マルチ sz 値から削除します。 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches

    2. 次のレジストリ サブキーを削除します。 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches\<PatchSQUID>

    3. 次のレジストリ サブキーを削除します。 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<PatchSQUID>

      注意

      このサブキーが見つからない場合は、この手順をスキップします。

    4. 製品がコンピューターごとにインストールされている場合は、次の手順を実行します。

      1. 次のサブキーを開きます。 HKEY_LOCAL_MACHINE\Software\Classes\Installer\Products\<ProductSQUID>\Patches

        1. 文字列値 <PatchSQUID> が存在する場合は、削除します。
        2. 文字列値 <PatchSQUID> が "パッチ" Multi-sz 値に存在する場合は、文字列値を <PatchSQUID> 削除します。
      2. 次のレジストリ サブキーが存在する場合は、削除します。 HKEY_LOCAL_MACHINE\Software\Classes\Installer\Patches\<PatchSQUID>

    5. 製品がユーザー単位でインストールされている場合は、管理されていません。

      1. 次のレジストリ サブキーを開きます。 HKEY_CURRENT_USER\Software\Microsoft\Installer\Products\<ProductSQUID>\Patches

        1. 文字列値 <PatchSQUID> が存在する場合は、削除します。
        2. From the <PatchSQUID> "Patches" Multi-sz 値が存在する場合は、削除します。
      2. 次のレジストリ サブキーが存在する場合は、削除します。 HKEY_CURRENT_USER\Software\Microsoft\Installer\Patches\<PatchSQUID>

    6. 製品がユーザーごとにインストールされている場合は、次の管理を行います。

      1. 次のレジストリ サブキーを開きます。 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\<SID>\Installer\Products\<ProductSQUID>\Patches

        1. 文字列値 <PatchSQUID> が存在する場合は、削除します。
        2. From the <PatchSQUID> "Patches" Multi-sz 値が存在する場合は、削除します。
      2. 次のレジストリ サブキーが存在する場合は、削除します。 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\<SID>\Installer\Patches\<PatchSQUID>

関連情報

この記事は、更新プログラムまたは Microsoft Update で発生したWindows固有の記事ではありません。