Como corrigir problemas de corrupção de registro de atualização de software msi

Este artigo fornece uma solução para um problema que repara ou desinstala para determinados produtos pode falhar depois de instalar atualizações de software.

Aplica-se a: Windows 10 — todas as edições, Windows Server 2012 R2
Número de KB original: 971187

Sintomas

Depois de instalar atualizações de software, reparos ou desinstalações para determinados produtos podem falhar. Se você tiver o log do MSI habilitado, as seguintes linhas serão encontradas no log:

Não foi possível encontrar o patch local ''. Procurando por ele em sua origem.
...
MainEngineThread está retornando 1612

Ao procurar no registro, você pode descobrir que o registro de cache de atualização de software está ausente da subchave do registro a seguir: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<SQUID>

Resolução

Importante

Esta seção, método ou tarefa contém etapas que descrevem como modificar o Registro. Entretanto, sérios problemas poderão ocorrer caso você modifique o Registro incorretamente. Portanto, siga essas etapas cuidadosamente. Para mais proteção, faça o backup do registro antes de modificá-lo. Em seguida, você poderá restaurar o registro se ocorrer um problema.

Para corrigir esse problema, siga estes etapas:

  1. Confirme se o produto foi afetado.

    Para fazer isso, siga estas etapas:

    1. Localize o registro de atualização de software do produto abrindo a seguinte subchave de registro: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches
      Nesta subchave, haverá uma subchave para cada atualização de software que foi aplicada ao produto.

    2. Para cada subchave que está no seguinte formato, execute a seguinte etapa: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches\<PatchSQUID>

      Verifique se a subchave a seguir existe:

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

      Se a subchave estiver ausente, o produto será afetado. Continue na etapa 2.

      Se a subchave existir, verifique se o valor da cadeia de caracteres LocalPackage está definido corretamente e se o pacote referenciado pelo valor da cadeia de caracteres LocalPackage também existe.

      1. Se o valor da cadeia de caracteres LocalPackage ou o pacote referenciado estiver ausente, o produto será afetado. Continue na etapa 2.
      2. Se o pacote referenciado existir e nenhuma ação adicional for necessária.
  2. Recriar detalhes do registro de cache de atualização de software. Para fazer isso, siga estas etapas:

    1. Pesquise o %windir%\installer\*.msp para obter a atualização de software que você tentou instalar. Verifique se a atualização de software tem o GUID (Identificador Globalmente Exclusivo) correto no Stream informações de resumo e direciona os GUIDs corretos do produto.

      Observação

      Como esse diretório serve como cache para instalações por usuário e instalações por computador, você pode simular uma atualização de software neste diretório usando uma instalação por usuário.

    2. Crie a seguinte subchave: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<PatchSQUID>

      Observação

      É um risco de segurança recriar o registro de cache de atualização de software. No entanto, esta é a única maneira de reparar a corrupção. Você pode reduzir o risco de segurança certificando-se de que a atualização de software é a atualização de software correta. Para fazer isso, verifique a soma de verificação da atualização de software.

    3. Crie um valor de cadeia de caracteres LocalPackage na subchave de registro que você criou a etapa 2. Verifique se o valor da cadeia de caracteres LocalPackage está definido como o caminho da atualização de software.

  3. Exclua as referências de atualização de software restantes. Para fazer isso, siga estas etapas:

    1. Abra a subchave a seguir e remova <PatchSQUID> do valor multi-sz "AllPatches": HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches

    2. Exclua a seguinte subchave de registro: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches\<PatchSQUID>

    3. Exclua a seguinte subchave de registro: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<PatchSQUID>

      Observação

      Se essa subchave estiver ausente, ignore esta etapa.

    4. Se o produto foi instalado por computador, siga estas etapas:

      1. Abra a seguinte subchave: HKEY_LOCAL_MACHINE\Software\Classes\Installer\Products\<ProductSQUID>\Patches

        1. Se o valor da <PatchSQUID> cadeia de caracteres estiver presente, exclua-o.
        2. Se o valor da <PatchSQUID> cadeia de caracteres estiver presente no valor "Patches" Multi-sz, exclua o valor da <PatchSQUID> cadeia de caracteres.
      2. Se a subchave do registro estiver presente, exclua-a: HKEY_LOCAL_MACHINE\Software\Classes\Installer\Patches\<PatchSQUID>

    5. Se o produto foi instalado por usuário não gerenciado:

      1. Abra a seguinte subchave de registro: HKEY_CURRENT_USER\Software\Microsoft\Installer\Products\<ProductSQUID>\Patches

        1. Se o valor da <PatchSQUID> cadeia de caracteres estiver presente, exclua-o.
        2. Se o <PatchSQUID> do valor multi-sz "Patches" estiver presente, remova-o.
      2. Se a subchave do registro estiver presente, exclua-a: HKEY_CURRENT_USER\Software\Microsoft\Installer\Patches\<PatchSQUID>

    6. Se o produto foi instalado por usuário gerenciado:

      1. Abra a seguinte subchave de registro: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\<SID>\Installer\Products\<ProductSQUID>\Patches

        1. Se o valor da <PatchSQUID> cadeia de caracteres estiver presente, exclua-o.
        2. Se o <PatchSQUID> do valor multi-sz "Patches" estiver presente, remova-o.
      2. Se a subchave de registro a seguir estiver presente, exclua-a: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\<SID>\Installer\Patches\<PatchSQUID>

Referências

Este artigo não é específico para problemas ocorridos por Windows Update ou Microsoft Update.