Où Windows stocke-t-il des fichiers MSI pour la désinstallation?

J'essaie de comprendre comment Windows (XP à 7) prend en charge l'installation et la désinstallation des fichiers MSI. Je suis apparu dans des situations où Windows Installer est incapable de désinstaller car il manque le fichier MSI d'origine, ce qui m'amène à croire qu'il stocke une copie de tous les paquets MSI installés quelque part. Où?

J'ai eu quelques théories.

  1. Il s'attend à ce qu'il réside dans le même dossier qu'il a été installé. Les clés de HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall indiquent le dossier d'installation d'origine et les messages d'erreur lorsque le fichier MSI est manquant indiquent souvent ceci. La suppression du fichier MSI de ce dossier n'empêche pas le processus de désinstallation, donc j'ai refusé cette théorie.

  2. C:\Windows\Installer . Ce dossier contient en fait un tas de fichiers MSI apparemment choisis de façon aléatoire. Mais cette liste est incomplète. Je trouve des entrées dans la clé de registre mentionnée dans 1) qui n'a pas de copie MSI dans ce dossier.

Alors, comment ça marche? Comment l'installateur Windows est-il capable de désinstaller les applications installées par MSI même si le MSI n'est pas en 1) et pas en 2)?

One Solution collect form web for “Où Windows stocke-t-il des fichiers MSI pour la désinstallation?”

Apparemment, ça fonctionne comme ceci (sur Windows 7, je ne connais pas XP et autres systèmes d'exploitation):

Lorsqu'un utilisateur installe une application, Windows effectue les opérations suivantes:

1) Crée une clé de registre

HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall \ [ProductId GUID]

Pour cette application.

Si vous avez accès au fichier msi original de l'installateur de votre application, vous pouvez trouver [ProductID GUID] en ouvrant le fichier msi dans orca.exe et en cliquant sur la "Propriété" à gauche dans orca et en recherchant "ProductCode" Ligne sur la droite. Si vous n'avez pas accès au fichier * .msi original, vous pouvez simplement rechercher la clé de registre HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall pour le nom de l'application.

Si vous souhaitez supprimer votre application (qui refuse de désinstaller par exemple) à partir de la liste des applications installées dans le Panneau de configuration, vous pouvez supprimer l'entrée de cette clé de désinstallation. Il va sûrement disparaître de la liste dans le panneau de contrôle, mais Windows s'en souviendra encore. Par exemple, si vous essayez d'installer une prochaine version de la même application, l'installateur peut toujours insister pour la désinstallation de la version précédente. Voir l'article 2 pour cela.

2) Windows copie le fichier * .msi original dans le dossier C: \ Windows \ Installer et le renomme vers un nom aléatoire (maintient l'extension .msi cependant). Windows crée également une clé dans le registre dans HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\[InternalUserId]\Products\[some random guid-like sequence of chars identifying to windows your installation]\InstallProperties. ValueName "LocalPackage" dans cette clé reg indique le fichier msi renommé. Pour trouver le fichier dans C: \ windows \ Installer, vous pouvez naviguer vers ce dossier dans Windows explorer, le transformer en vue Détails, créer la colonne "Sujet" visible et vous verrez que tous les nnnnnnnn.msi correspondent à leur nom de produit correspondant.

  • "Toujours utiliser ce programme pour ouvrir ces fichiers" est grisé. Pourquoi?
  • Pourquoi les administrateurs ne peuvent-ils pas supprimer les clés de registre lorsqu'ils exécutent regedit en tant qu'administrateurs?
  • Que signifient tous les paramètres de recherche d'Internet Explorer?
  • Les liens Chrome Magnet ne démarreront pas (Windows 7)
  • Où sont stockées la MRU pour les applications dans le menu Démarrer?
  • Où sont désactivés les programmes d'amorçage automatique stockés? Quelque part dans le registre?
  • Impossible d'accéder à une clé de registre particulière
  • Ajouter un élément au menu contextuel "Nouveau" dans Windows 8
  • Supprimer les bibliothèques de la barre latérale de Windows 8 Explorer
  • Impossible de désinstaller Visual Studio 2008, n'a pas pu ouvrir la touche Composants
  • Est-il possible d'utiliser des programmes installés sur un deuxième disque dur après une réinstallation de Windows?
  • Soyons le génie de l'ordinateur et du réseau.