MSI ソフトウェア更新プログラムの登録の破損の問題を修正する方法
この記事では、ソフトウェア更新プログラムをインストールした後に、特定の製品の修復またはアンインストールが失敗する可能性がある問題の解決策について説明します。
適用対象: Windows 10 - すべてのエディション、Windows Server 2012 R2
元の KB 番号: 971187
現象
ソフトウェア更新プログラムをインストールした後、特定の製品の修復またはアンインストールが失敗する可能性があります。 MSI ログが有効になっている場合は、ログに次の行が表示されます。
ローカル パッチ '' が見つかりませんでした。 そのソースでそれを探しています。
...
MainEngineThread が 1612 を返しています
レジストリを見ると、次のレジストリ サブキーにソフトウェア更新キャッシュの登録が見つからない場合があります。 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<SQUID>
解決方法
重要
このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護を強化するため、レジストリを変更する前にレジストリをバックアップします。 こうしておけば、問題が発生した場合にレジストリを復元できます。
この問題を解決するには、次の手順を実行します。
製品が影響を受けるかどうかを確認します。
これを行うには、次の手順に従います。
次のレジストリ サブキーを開いて、製品のソフトウェア更新プログラムの登録を見つけます。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches
このサブキーの下には、製品に適用されたすべてのソフトウェア更新プログラムのサブキーがあります。次の形式のサブキーごとに、次の手順を実行します。
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 文字列値によって参照されるパッケージも存在することを確認します。
- LocalPackage 文字列値または参照先パッケージが見つからない場合、製品が影響を受ける。 手順 2 に進みます。
- 参照先のパッケージが存在し、追加のアクションが必要ない場合。
ソフトウェア更新プログラムキャッシュ レジストリの詳細を再作成します。 これを行うには、次の手順を実行します。
インストールしようとしたソフトウェア更新プログラムを %windir%\installer\*.msp で検索します。 [概要情報] Streamでソフトウェア更新プログラムが正しいパッチグローバル一意識別子 (GUID) を持ち、正しい製品 GUID をターゲットにしていることを確認します。
注:
このディレクトリは、ユーザーごとのインストールとマシンごとのインストールのキャッシュとして機能するため、ユーザーごとのインストールを使用して、このディレクトリ内のソフトウェア更新プログラムをシミュレートできます。
次のサブキーを作成します。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<PatchSQUID>
注:
ソフトウェア更新プログラムキャッシュ レジストリを再作成することはセキュリティ 上のリスクです。 しかし、これは破損を修復する唯一の方法です。 ソフトウェア更新プログラムが正しいソフトウェア更新プログラムであることを確認することで、セキュリティ リスクを軽減できます。 これを行うには、ソフトウェア更新プログラムのチェックサムを確認します。
手順 2. で作成したレジストリ サブキーに LocalPackage 文字列値を作成します。 LocalPackage 文字列値がソフトウェア更新プログラムのパスに設定されていることを確認します。
残りのソフトウェア更新プログラム参照を削除します。 これを行うには、次の手順に従います。
次のサブキーを開き、"AllPatches" multi-sz 値から削除
<PatchSQUID>
します。HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches
次のレジストリ サブキーを削除します。
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>
注:
このサブキーがない場合は、この手順をスキップします。
マシンごとに製品がインストールされている場合は、次の手順に従います。
次のサブキーを開きます。
HKEY_LOCAL_MACHINE\Software\Classes\Installer\Products\<ProductSQUID>\Patches
- 文字列値が
<PatchSQUID>
存在する場合は、削除します。 <PatchSQUID>
"パッチ" Multi-sz 値に文字列値が存在する場合は、文字列値を削除します<PatchSQUID>
。
- 文字列値が
次のレジストリ サブキーが存在する場合は、削除します。
HKEY_LOCAL_MACHINE\Software\Classes\Installer\Patches\<PatchSQUID>
製品がユーザーごとにアンマネージドでインストールされている場合:
次のレジストリ サブキーを開きます。
HKEY_CURRENT_USER\Software\Microsoft\Installer\Products\<ProductSQUID>\Patches
- 文字列値が
<PatchSQUID>
存在する場合は、削除します。 <PatchSQUID>
"パッチ" Multi-sz 値から が存在する場合は、削除します。
- 文字列値が
次のレジストリ サブキーが存在する場合は、削除します。
HKEY_CURRENT_USER\Software\Microsoft\Installer\Patches\<PatchSQUID>
製品がユーザーごとにインストールされた場合は、次の手順を実行します。
次のレジストリ サブキーを開きます。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\<SID>\Installer\Products\<ProductSQUID>\Patches
- 文字列値が
<PatchSQUID>
存在する場合は、削除します。 <PatchSQUID>
"パッチ" Multi-sz 値から が存在する場合は、削除します。
- 文字列値が
次のレジストリ サブキーが存在する場合は、削除します。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\<SID>\Installer\Patches\<PatchSQUID>
関連情報
この記事は、Windows Updateまたは Microsoft Update によって発生した問題に固有ではありません。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示