Wo speichert Windows MSI-Dateien zur Deinstallation?

Ich versuche herauszufinden, wie Windows (XP bis 7) mit der Installation und Deinstallation von MSI-Dateien umgeht. Ich bin in Situationen geraten, in denen Windows Installer nicht deinstalliert werden kann, da die ursprüngliche MSI-Datei fehlt, was mich zu der Annahme veranlasst, dass irgendwo eine Kopie aller installierten MSI-Pakete gespeichert ist. Wo?

Ich hatte ein paar Theorien.

  1. Es wird erwartet, dass es sich in demselben Ordner befindet, in dem es installiert wurde. Registry schlüssel in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall zeigen auf den ursprünglichen Installationsordner, und Fehlermeldungen, wenn die MSI-Datei fehlt, weisen häufig darauf hin. Das Entfernen der MSI-Datei aus diesem Ordner behindert jedoch nicht den Deinstallationsprozess, daher habe ich diese Theorie abgelehnt.

  2. C:\Windows\Installer. Dieser Ordner enthält tatsächlich eine Reihe scheinbar zufällig benannter MSI-Dateien. Aber diese Liste ist unvollständig. Ich finde Einträge in dem in 1) erwähnten Registrierungsschlüssel, der keine MSI-Kopie enthält Ordner.

Wie funktioniert das? Wie kann Windows Installer MSI-installierte Anwendungen deinstallieren, obwohl die MSI nicht in 1) und nicht in 2) ist?

Author: Nilzor, 2012-09-13

1 answers

Anscheinend funktioniert es so (unter Windows 7 weiß ich nichts über XP und andere Betriebssysteme):

Wenn ein Benutzer eine App installiert, führt Windows Folgendes aus:

1) Erstellt einen Registrierungsschlüssel

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

Für diese app.

Wenn Sie Zugriff auf die ursprüngliche MSI-Datei des Installationsprogramms Ihrer App haben, können Sie [ProductID GUID] finden, indem Sie die MSI-Datei in orca öffnen.exe und klicken auf die "Property" auf der linken Seite in orca, und auf der Suche nach "ProductCode" Linie auf der rechten Seite. Wenn Sie keinen Zugriff auf Original *haben.msi-Datei, können Sie einfach Registrierungsschlüssel HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall für den Namen der App suchen.

Wenn Sie Ihre App (die sich beispielsweise weigert zu deinstallieren) aus der Liste der installierten Apps in der Systemsteuerung löschen möchten, können Sie den Eintrag aus diesem Deinstallationsschlüssel löschen. Es wird sicherlich aus der Liste in der Systemsteuerung verschwinden, aber Windows wird sich noch daran erinnern. Wenn Sie beispielsweise versuchen, eine nächste Version derselben App zu installieren, besteht das Installationsprogramm möglicherweise weiterhin darauf, die vorherige Version zu deinstallieren. Siehe dazu Punkt 2.

2) Windows kopiert das Original *.msi-Datei in den Ordner C:\Windows\Installer und benennt es in einen zufälligen Namen um (hält .msi-Erweiterung, obwohl). Windows erstellt auch einen Schlüssel in der Registrierung in HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\[InternalUserId]\Products\[some random guid-like sequence of chars identifying to windows your installation]\InstallProperties. ValueName "LocalPackage" In diesem Reg-Schlüssel zeigt auf die umbenannte MSI-Datei. Um die Datei zu finden in C:\windows\Installer sie können im Windows Explorer zu diesem Ordner navigieren, ihn in die Detailansicht wechseln, die Spalte "Betreff" sichtbar machen und für alle nnnnnnnn sehen.msi fies ihren entsprechenden Namen des Produkts.

 48
Author: farfareast,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-04-26 22:28:31