Comment résoudre les problèmes d’altération de l’inscription des mises à jour logicielles MSI

Cet article fournit une solution à un problème lié à l’échec de la réparation ou de la désinstallation de certains produits après l’installation des mises à jour logicielles.

Applicabilité : Windows 10 - toutes les éditions, Windows Server 2012 R2
Numéro de la base de connaissances d’origine : 971187

Symptômes

Après avoir installé les mises à jour logicielles, les réparations ou désinstallations de certains produits peuvent échouer. Si la journalisation MSI est activée, les lignes suivantes se trouvent dans le journal :

Impossible de trouver le correctif local « ». En le recherchant à sa source.
...
MainEngineThread retourne 1612

Lorsque vous examinez le Registre, vous pouvez constater que l’inscription du cache des mises à jour logicielles est manquante dans la sous-clé de Registre suivante : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<SQUID>

Résolution

Importante

Cette section, méthode ou tâche contient des étapes vous indiquant comment modifier le Registre. Toutefois, des problèmes graves peuvent se produire si vous modifiez le Registre de façon incorrecte. Par conséquent, veillez à suivre ces étapes scrupuleusement. Pour une meilleure protection, sauvegardez le registre avant de le modifier. Vous pouvez alors le restaurer en cas de problème.

Pour résoudre ce problème, procédez comme suit :

  1. Vérifiez que le produit est affecté.

    Pour ce faire, procédez comme suit :

    1. Recherchez l’inscription des mises à jour logicielles du produit en ouvrant la sous-clé de Registre suivante : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches
      Sous cette sous-clé, il y a une sous-clé pour chaque mise à jour logicielle appliquée au produit.

    2. Pour chaque sous-clé au format suivant, effectuez l’étape suivante : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches\<PatchSQUID>

      Vérifiez que la sous-clé suivante existe :

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

      Si la sous-clé est manquante, le produit est affecté. Passez à l’étape 2.

      Si la sous-clé existe, vérifiez que la valeur de chaîne LocalPackage est correctement définie et que le package référencé par la valeur de chaîne LocalPackage existe également.

      1. Si la valeur de chaîne LocalPackage ou le package référencé est manquant, le produit est affecté. Passez à l’étape 2.
      2. Si le package référencé existe et qu’aucune action supplémentaire n’est requise.
  2. Recréez les détails du registre du cache de mise à jour logicielle. Pour cela, procédez comme suit :

    1. Recherchez la mise à jour logicielle que vous avez tenté d’installer dans %windir%\installer\*.msp. Vérifiez que la mise à jour logicielle a le GUID (Patch Global Unique Identifier) correct dans le Stream informations de synthèse et cible les GUID de produit corrects.

      Remarque

      Étant donné que ce répertoire sert de cache pour les installations par utilisateur et par ordinateur, vous pouvez simuler une mise à jour logicielle dans ce répertoire à l’aide d’une installation par utilisateur.

    2. Créez la sous-clé suivante : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<PatchSQUID>

      Remarque

      La recréation du registre du cache de mises à jour logicielles présente un risque pour la sécurité. Cependant, c’est la seule façon de réparer la corruption. Vous pouvez réduire le risque de sécurité en vous assurant que la mise à jour logicielle est la mise à jour logicielle correcte. Pour ce faire, vérifiez la somme de contrôle de la mise à jour logicielle.

    3. Créez une valeur de chaîne LocalPackage dans la sous-clé de Registre que vous avez créée à l’étape 2. Assurez-vous que la valeur de la chaîne LocalPackage est définie sur le chemin de la mise à jour logicielle.

  3. Supprimer les références de mises à jour logicielles restantes. Pour ce faire, procédez comme suit :

    1. Ouvrez la sous-clé suivante, puis supprimez <PatchSQUID> de la valeur multi-sz « AllPatches » : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches

    2. Supprimez la sous-clé de Registre suivante : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Products\<ProductSQUID>\Patches\<PatchSQUID>

    3. Supprimez la sous-clé de Registre suivante : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\<SID>\Patches\<PatchSQUID>

      Remarque

      Si cette sous-clé est manquante, ignorez cette étape.

    4. Si le produit a été installé par ordinateur, procédez comme suit :

      1. Ouvrez la sous-clé suivante : HKEY_LOCAL_MACHINE\Software\Classes\Installer\Products\<ProductSQUID>\Patches

        1. Si la valeur de <PatchSQUID> chaîne est présente, supprimez-la.
        2. Si la valeur de <PatchSQUID> chaîne est présente dans la valeur « Patches » Multi-sz, supprimez la valeur de chaîne <PatchSQUID> .
      2. Si la sous-clé de Registre suivante est présente, supprimez-la : HKEY_LOCAL_MACHINE\Software\Classes\Installer\Patches\<PatchSQUID>

    5. Si le produit a été installé par utilisateur non géré :

      1. Ouvrez la sous-clé de Registre suivante : HKEY_CURRENT_USER\Software\Microsoft\Installer\Products\<ProductSQUID>\Patches

        1. Si la valeur de <PatchSQUID> chaîne est présente, supprimez-la.
        2. Si le <PatchSQUID> de la valeur « Patches » Multi-sz est présent, supprimez-le.
      2. Si la sous-clé de Registre suivante est présente, supprimez-la : HKEY_CURRENT_USER\Software\Microsoft\Installer\Patches\<PatchSQUID>

    6. Si le produit a été installé géré par utilisateur :

      1. Ouvrez la sous-clé de Registre suivante : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\<SID>\Installer\Products\<ProductSQUID>\Patches

        1. Si la valeur de <PatchSQUID> chaîne est présente, supprimez-la.
        2. Si le <PatchSQUID> de la valeur « Patches » Multi-sz est présent, supprimez-le.
      2. Si la sous-clé de Registre suivante est présente, supprimez-la : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Managed\<SID>\Installer\Patches\<PatchSQUID>

References

Cet article n’est pas spécifique aux problèmes rencontrés par Windows Update ou Microsoft Update.