Compartilhar via


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

Este artigo fornece uma solução para um problema em que reparos ou desinstalações de determinados produtos podem falhar após a instalação de atualizações de software.

Número original do KB: 971187

Sintomas

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

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

Ao examinar o Registro, você pode descobrir que o registro do cache de atualização de software está ausente na seguinte subchave do Registro: 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, certifique-se de seguir essas etapas com atenção. Para proteção acrescida, faça backup do Registro antes de modificá-lo. Em, é possível restaurar o Registro caso ocorra um problema.

Para corrigir esse problema, execute estas 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 do Registro: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches
      Nessa subchave, haverá uma subchave para cada atualização de software aplicada ao produto.

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

      Verifique se a seguinte subchave existe:

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

      Se a subchave estiver ausente, o produto será afetado. Continue para a 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 para a etapa 2.
      2. Se o pacote referenciado existir e nenhuma ação adicional for necessária.
  2. Recrie os detalhes do registro do cache de atualização de software. Para fazer isso, siga estas etapas:

    1. Pesquise no %windir%\installer\*.msp a atualização de software que você tentou instalar. Verifique se a atualização de software tem o GUID (Identificador Global Exclusivo) de Patch correto no Fluxo de Informações de Resumo e se destina aos GUIDs de produto corretos.

      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 nesse 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 seja 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 do 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 seguinte subchave e, em seguida, 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 do Registro: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches\<PatchSQUID>

    3. Exclua a seguinte subchave do 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> string estiver presente no valor Multi-sz "Patches", exclua o valor da <PatchSQUID> string.
      2. Se a seguinte 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 do 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> valor Multi-sz "Patches" estiver presente, remova-o.
      2. Se a seguinte 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 do 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> valor Multi-sz "Patches" estiver presente, remova-o.
      2. Se a seguinte subchave do Registro 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 pelo Windows Update ou pelo Microsoft Update.