Lors de la mise en place d’Azure Update Manager pour mettre à jour des serveurs, j’ai rencontré plusieurs problèmes sur des serveurs renvoyant l’erreur 0x80070643 lors de l’application des mises à jour et un cas spécifique relatif à une mise à jour pour SQL Server.
Notez que le code d’erreur est indépendant d’Azure Update Manager puisque l’erreur était en réalité remontée lorsque les serveurs étaient mis à jour manuellement avec Windows Updates.
Voici les symptômes :
- Le serveur présentait une mise à jour applicable à SQL Server
- En utilisant SQL Server Management Studio sur l’instance, il semblait que l’instance était plus à jour que la mise à jour proposée par Windows Update.
- L’application manuelle de la mise à jour ne fonctionnait pas.
En creusant, j’ai fini par trouver la raison. Il semble que ce serveur comportait une instance fantôme inactive que Windows Update identifiait et voulait mettre à jour. Vous pouvez vérifier de la manière suivante :
- Ouvrez le répertoire de l’installeur SQL Server en naviguant dans <Disque>:\Microsoft SQL Server\<Version de SQL>\Setup Boostrap\Log\<Date_Heure>. Ouvrez ensuite le fichier Summary_<NomDeServeur>_<Date_Heure>.txt.
- Dans ce fichier, vous obtenez un aperçu global incluant le résultat final de l’installation. La section qui va nous intéresser est celle appelée Product features discovered où vous pouvez voir apparaître les différentes instances dont une instance avec la mention INACTIVE. Vous pouvez notamment constater le numéro de version plus ancien que l’instance active qui a déjà été mise à jour.
- Pour résoudre le problème et retirer cette instance fantôme, ouvrez le répertoire de l’installeur SQL Server en naviguant dans <Disque>:\Microsoft SQL Server\<Version de SQL>\Setup Boostrap\Log\<Date_Heure>\Datastore. Ouvrez ensuite le fichier Datastore_Discovery.xml :
- Une fois le fichier XML ouvert, recherchez le mot clé INACTIVE. Vérifiez le numéro de version de l’instance pour valider qu’il s’agit d’une ancienne version non mise à jour. Identifiez et copiez le Product Code.
- Lancez une invite de commande en tant qu’administrateur et lancez la commande suivante pour lancer la désinstallation :
msiexec /X <Product Code copié prédécemment> - Relancez la détection Windows Update et constatez que la mise à jour n’est plus proposée.