Cette erreur se produit quand on tente de faire les mises à jour de Windows Vista. À date, je ne l'ai vue que sur un appareil, sur lequel était installé la version 64 bits du système. J'ai d'abord pensé que c'était une affaire de dll mais ré-enregistrer tous les dll du système de téléchargement BITS n'a rien donné.
J'ai ensuite vérifié si le systène n'était pas infecté. Je me suis aperçu que depuis deux ou trois semaines, on commence à voir arriver des PC avec Vista qui ont des spywares ou des virus. Je me suis dit que ça pouvait en être la cause et que le malware en question avait délibérément endommagé Windows Update pour éviter d'être bloqué par un correctif. Rien d'anormal trouvé. J'ai aussi essayé l'outil de suppression de logiciels malveillants de Microsoft (fallait-il que je sois désespéré...) sans résultat.
En fouillant sur le net, on s'aperçoit que cette erreur est très courante mais que personne n'a de solution définitive. J'ai ensuite décidé d'essayer la mise à jour vers le SP2 mais la même erreur est apparue et l'installation du service pack a été refusée.
J'ai refait encore des recherches et sur cette page, en bas, j'ai trouvé quelqu'un qui avait la solution (ivson, post # 10). Mais sa solution n'a pas été facile à mettre en oeuvre.
Premièrement, il fallait intégrer un .reg à la base de registres. Je n'ai pas pris de chances et j'ai ouvert regedt32 en mode system à l'aide de PsExec de PsTools. Ça permet d'avoir le contrôle total non pas en mode administrateur mais en mode system qui est une sorte de super-admin avec toutes les permissions. Il faut d'abord installer PsTool et taper la commande suivante:
psexec -i -d -s c:\windows\regedt32.exe
ce qui donne le contrôle absolu sur la base de registre. Ensuite j'ai importé le fichier .reg créé à partir des indication dans le message. Attention lors de l'utilisation de PsExec en mode system! Comme l'a appris Peter Parker, avec de grands pouvoirs viennent de grandes responsabilités et il faut veiller à ne pas endommager le système.
Après, il fallait recopier le fichier TrustedInstaller.exe dans C:\Windows\Servicing qui est un dossier système protégé en écriture. Plutôt que me m'acharner sur les permissions, j'ai démarré avec PCLinuxOS et copié le fichier à partir de cette version de Linux. En y pensant, j'aurais peut-être dû utiliser encore PsExec avec cmd.exe mais j'étais un peu pressé par le temps. Lors de la copie du fichier, j'ai pu remarquer qu'il avait été effacé du répertoire. Ne désirant pas prendre de chances, j'ai pris le fichier en question dans un autre ordinateur fonctionnant avec Vista 64 plutôt que de le récupérer ailleurs dans les dossier système.
Ensuite, redémarrage et retour à Windows. Test de Windows Update: OK! Pour gagner du temps, j'ai installé ma copie de SP2 que j'avais déjà téléchargé et, cette fois, aucune erreur lors de la mise à jour.