Ich versuche herauszufinden, wie Windows (XP bis 7) die Installation und Deinstallation von MSI-Dateien handhabt. Ich habe Situationen erlebt, in denen Windows Installer nicht deinstalliert werden kann, weil die ursprüngliche MSI-Datei fehlt, was mich zu der Annahme veranlasst, dass eine Kopie aller installierten MSI-Pakete irgendwo gespeichert wird. Woher?
Ich habe ein paar Theorien gehabt.
Es wird erwartet, dass es sich in demselben Ordner befindet, aus dem es installiert wurde. Die Registrierungsschlüssel in
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
verweisen auf den ursprünglichen Installationsordner, und Fehlermeldungen, wenn die MSI-Datei fehlt, verweisen häufig darauf. Das Entfernen der MSI-Datei aus diesem Ordner behindert den Deinstallationsprozess jedoch nicht. Daher habe ich diese Theorie abgelehnt.C:\Windows\Installer
. Dieser Ordner enthält tatsächlich eine Reihe von scheinbar zufällig benannten MSI-Dateien. Diese Liste ist jedoch unvollständig. Ich finde Einträge in dem in 1) genannten Registrierungsschlüssel, der keine MSI-Kopie in diesem Ordner enthält.
Wie funktioniert das? Wie kann Windows Installer MSI-installierte Anwendungen deinstallieren, obwohl MSI nicht in 1) und nicht in 2) enthalten ist?
quelle
Antworten:
Anscheinend funktioniert es so (unter Windows 7 kenne ich XP und andere Betriebssysteme nicht):
Wenn ein Benutzer eine App installiert, führt Windows Folgendes aus:
1) Erstellt einen Registrierungsschlüssel
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.exe öffnen, auf die Eigenschaft links in orca klicken und nach "ProductCode" suchen. Linie rechts. Wenn Sie keinen Zugriff auf die ursprüngliche * .msi-Datei haben, können Sie einfach den Registrierungsschlüssel HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall nach dem Namen der App durchsuchen.
Wenn Sie Ihre App (die sich beispielsweise nicht deinstallieren lässt) 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 trotzdem 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 hierzu Punkt 2.
2) Windows kopiert die ursprüngliche * .msi-Datei in den Ordner C: \ Windows \ Installer und benennt sie in einen zufälligen Namen um (behält jedoch die .msi-Erweiterung bei). Windows erstellt auch einen Registrierungsschlüssel 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". Dieser Registrierungsschlüssel verweist auf die umbenannte MSI-Datei. Um die Datei in C: \ windows \ Installer zu finden, können Sie im Windows-Explorer zu diesem Ordner navigieren, in die Detailansicht wechseln, die Spalte "Betreff" sichtbar machen und für alle nnnnnnnn.msi-Dateien den entsprechenden Produktnamen anzeigen.quelle
make column "Subject" visible and you will see for all nnnnnnnn.msi fies their corresponding name of product.
. Windows ist so ein mysteriöses Betriebssystem: P