Jak rozwiązać problemy z uszkodzeniem rejestracji aktualizacji oprogramowania MSI

Ten artykuł zawiera rozwiązanie problemu, który naprawy lub odinstalowywanie niektórych produktów może zakończyć się niepowodzeniem po zainstalowaniu aktualizacji oprogramowania.

Dotyczy: Windows 10 — wszystkie wersje, Windows Server 2012 R2
Oryginalny numer KB: 971187

Symptomy

Po zainstalowaniu aktualizacji oprogramowania naprawy lub odinstalowywanie niektórych produktów może zakończyć się niepowodzeniem. Jeśli rejestrowanie msi jest włączone, w dzienniku znajdują się następujące wiersze:

Nie można odnaleźć lokalnej poprawki "". Szukasz go w jego źródle.
...
MainEngineThread zwraca wartość 1612

Podczas wyszukiwania w rejestrze może się okazać, że w następującym podkluczu rejestru brakuje rejestracji pamięci podręcznej aktualizacji oprogramowania: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<SQUID>

Rozwiązanie

Ważna

W tej sekcji, metodzie lub w tym zadaniu podano informacje dotyczące modyfikowania rejestru. Niepoprawne zmodyfikowanie rejestru może jednak być przyczyną poważnych problemów. Dlatego należy uważnie wykonywać podane czynności. Dla większego bezpieczeństwa przed zmodyfikowaniem rejestru należy wykonać jego kopię zapasową. Dzięki temu będzie można przywrócić rejestr w przypadku wystąpienia problemu.

Aby rozwiązać ten problem, wykonaj następujące kroki:

  1. Upewnij się, że dotyczy to produktu.

    Aby tego dokonać, wykonaj następujące kroki:

    1. Znajdź rejestrację aktualizacji oprogramowania produktu, otwierając następujący podklucz rejestru: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches
      W ramach tego podklucza będzie podklucz dla każdej aktualizacji oprogramowania, która została zastosowana do produktu.

    2. Dla każdego podklucza w następującym formacie wykonaj następujący krok: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches\<PatchSQUID>

      Sprawdź, czy istnieje następujący podklucz:

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

      Jeśli brakuje podklucza, dotyczy to produktu. Przejdź do kroku 2.

      Jeśli podklucz istnieje, sprawdź, czy wartość ciągu LocalPackage jest ustawiona poprawnie i czy istnieje również pakiet, do którego odwołuje się wartość ciągu LocalPackage.

      1. Jeśli brakuje wartości ciągu LocalPackage lub pakietu, do którego odwołuje się odwołanie, dotyczy to produktu. Przejdź do kroku 2.
      2. Jeśli pakiet, do którego odwołuje się odwołanie, nie jest wymagana żadna dodatkowa akcja.
  2. Utwórz ponownie szczegóły rejestru pamięci podręcznej aktualizacji oprogramowania. Aby to zrobić, wykonaj następujące kroki.

    1. Wyszukaj aktualizację oprogramowania, którą próbowano zainstalować, w pliku %windir%\installer\*.msp. Upewnij się, że aktualizacja oprogramowania ma prawidłowy identyfikator GUID (Patch Globally Unique Identifier) w Stream Informacje o podsumowaniu i czy jest przeznaczona dla odpowiednich identyfikatorów GUID produktu.

      Uwaga

      Ponieważ ten katalog służy jako pamięć podręczna dla instalacji poszczególnych użytkowników i instalacji na maszynie, można symulować aktualizację oprogramowania w tym katalogu przy użyciu instalacji na użytkownika.

    2. Utwórz następujący podklucz: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<PatchSQUID>

      Uwaga

      Ponowne utworzenie rejestru pamięci podręcznej aktualizacji oprogramowania stanowi zagrożenie dla bezpieczeństwa. Jest to jednak jedyny sposób naprawy uszkodzenia. Ryzyko związane z bezpieczeństwem można zmniejszyć, upewniając się, że aktualizacja oprogramowania jest prawidłową aktualizacją oprogramowania. W tym celu sprawdź sumę kontrolną aktualizacji oprogramowania.

    3. Utwórz wartość ciągu LocalPackage w podkluczu rejestru utworzonym w kroku 2. Upewnij się, że wartość ciągu LocalPackage jest ustawiona na ścieżkę aktualizacji oprogramowania.

  3. Usuń pozostałe odwołania do aktualizacji oprogramowania. Aby tego dokonać, wykonaj następujące kroki:

    1. Otwórz następujący podklucz, a następnie usuń <PatchSQUID> z wartości "AllPatches" multi-sz: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches

    2. Usuń następujący podklucz rejestru: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches\<PatchSQUID>

    3. Usuń następujący podklucz rejestru: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<PatchSQUID>

      Uwaga

      Jeśli brakuje tego podklucza, pomiń ten krok.

    4. Jeśli produkt został zainstalowany na komputerze, wykonaj następujące kroki:

      1. Otwórz następujący podklucz: HKEY_LOCAL_MACHINE\Software\Classes\Installer\Products\<ProductSQUID>\Patches

        1. <PatchSQUID> Jeśli wartość ciągu jest obecna, usuń ją.
        2. <PatchSQUID> Jeśli wartość ciągu jest obecna w wartości "Patches" Multi-sz, usuń <PatchSQUID> wartość ciągu.
      2. Jeśli jest obecny następujący podklucz rejestru, usuń go: HKEY_LOCAL_MACHINE\Software\Classes\Installer\Patches\<PatchSQUID>

    5. Jeśli produkt został zainstalowany dla poszczególnych użytkowników niezarządzanych:

      1. Otwórz następujący podklucz rejestru: HKEY_CURRENT_USER\Software\Microsoft\Installer\Products\<ProductSQUID>\Patches

        1. <PatchSQUID> Jeśli wartość ciągu jest obecna, usuń ją.
        2. <PatchSQUID> Jeśli wartość z wartości "Patches" Multi-sz jest obecna, usuń ją.
      2. Jeśli jest obecny następujący podklucz rejestru, usuń go: HKEY_CURRENT_USER\Software\Microsoft\Installer\Patches\<PatchSQUID>

    6. Jeśli produkt został zainstalowany na użytkownika zarządzane:

      1. Otwórz następujący podklucz rejestru: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\<SID>\Installer\Products\<ProductSQUID>\Patches

        1. <PatchSQUID> Jeśli wartość ciągu jest obecna, usuń ją.
        2. <PatchSQUID> Jeśli wartość z wartości "Patches" Multi-sz jest obecna, usuń ją.
      2. Jeśli jest obecny następujący podklucz rejestru, usuń go: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\<SID>\Installer\Patches\<PatchSQUID>

Informacje

Ten artykuł nie jest specyficzny dla problemów występujących przez Windows Update lub Microsoft Update.