Wie kann ich die Produkt-GUID eines installierten MSI-Setups finden?
Ich benötige die Produkt-GUID für eine installierte MSI-Datei, um Wartungsarbeiten wie Patching
, Deinstallation
(How-to-Deinstallation) und auch für Auditing-Zwecke
durchführen zu können.
58
2
Schnellstart von Powershell: Windows-Taste halten, R antippen, "powershell" eintippen und Enter dem Windows SDK. Versuchen Sie, nach
Orca-x86_de-us.msi
zu suchen - unter Program Files (x86)` und installieren Sie das MSI, wenn Sie es finden.Und unten finden Sie die ursprüngliche Antwort, die "organisch gewachsen" in eine Menge von Details. Vielleicht sehen Sie sich den Abschnitt "MSI-Pakete deinstallieren" weiter unten an, wenn dies die Aufgabe ist, die Sie durchführen müssen.
Produkt-Codes abrufen
Die Ausgabe sollte in etwa so aussehen: *Hinweis! Aus irgendeinem seltsamen Grund wird "ProductCode"* in WMI als "IdentifyingNumber" bezeichnet. Mit anderen Worten: In der obigen Abbildung ist die IdentifyingNumber der ProductCode. Wenn Sie diese Abfrage gegenüber vielen entfernten Computern ausführen müssen, lesen Sie den Abschnitt "Produktcodes von einem entfernten Computer abrufen" weiter unten. " DISCLAIMER** (wichtig, bitte vor Ausführung des Befehls lesen!): Aufgrund eines seltsamen Microsoft-Designs kann jeder WMI-Aufruf von
Win32_Product
In diesem Fall ist die Ausgabe ähnlich wie diese:
Abrufen von Produktcodes von einem entfernten Computer
Theoretisch sollten Sie einfach den Namen eines entfernten Computers als Teil des Befehls selbst angeben können. Hier ist derselbe Befehl wie oben, der auf dem Rechner "RemoteMachine" ausgeführt werden soll (Abschnitt
-ComputerName RemoteMachine
hinzugefügt):Dies könnte funktionieren, wenn Sie mit Domänenadministratorrechten in einer richtigen Domäne arbeiten. In einer Arbeitsgruppenumgebung (kleines Büro/Heimnetzwerk) müssen Sie wahrscheinlich Benutzeranmeldeinformationen direkt zu den WMI-Aufrufen hinzufügen, damit es funktioniert. Außerdem werden Remote-Verbindungen in WMI von (mindestens) der Windows Firewall, den DCOM-Einstellungen und der Benutzerkontensteuerung (UAC) beeinträchtigt (sowie von allen zusätzlichen, nicht von Microsoft stammenden Faktoren - z. B. reale Firewalls, Software-Firewalls von Drittanbietern, Sicherheitssoftware verschiedener Art usw.). Ob es funktioniert oder nicht, hängt von Ihrer genauen Konfiguration ab.
Verbinden mit WMI per Fernzugriff mit PowerShell UPDATE: Einen ausführlichen Abschnitt über die Ausführung von Remote-WMI finden Sie in dieser Antwort: https://stackoverflow.com/questions/46637094/how-can-i-find-the-upgrade-code-for-an-installed-msi-file/46637095#46637095. Es scheint, dass eine Firewall-Regel und die Unterdrückung der UAC-Eingabeaufforderung über eine Registrierungsänderung die Dinge in einer Arbeitsgruppennetzwerkumgebung zum Laufen bringen können. Aus Sicherheitsgründen werden diese Änderungen nicht empfohlen, aber bei mir hat es funktioniert.
Alternative Werkzeuge
PowerShell erfordert die Installation des .NET-Frameworks (derzeit in der Version 3.5.1, wie es scheint? Oktober 2017). Die eigentliche PowerShell-Anwendung selbst kann auch auf dem Rechner fehlen, selbst wenn .NET installiert ist. Schließlich glaube ich, dass PowerShell durch verschiedene Systemrichtlinien und Berechtigungen deaktiviert oder gesperrt werden kann. Wenn dies der Fall ist, können Sie einige andere Möglichkeiten zum Abrufen von Produktcodes ausprobieren. Meine bevorzugte Alternative ist VBScript - es ist schnell und flexibel (kann aber auch auf bestimmten Rechnern gesperrt sein, und Skripterstellung ist immer ein wenig aufwändiger als die Verwendung von Tools).
wbemtest.exe
.wbemtest.exe
(Halten Sie die Windows-Taste gedrückt, tippen Sie auf R, lassen Sie die Windows-Taste los, geben Sie "wbemtest.exe" ein und drücken Sie OK).SELECT IdentifyingNumber,Name,Version FROM Win32_Product
und klicken Sie auf "Verwenden" (oder gleichwertig - das Tool wird lokalisiert).WMIExplorer.exe
ausprobieren.SELECT IdentifyingNumber,Name,Version FROM Win32_Product
und drücken Sie auf Execute.msiinfo.csv
.Schnelle Erläuterung der Parameter:
Sie können auch die (ausführliche) Protokollierung aktivieren und im stillen Modus ausführen, wenn Sie dies wünschen, was uns zu Option 2 führt: Option 2: Stille Deinstallation mit ausführlicher Protokollierung (besser für Batch-Dateien):
Kurze Erläuterung der Parameter:
Eine umfassende Referenz für MSI-Deinstallation gibt es hier (verschiedene Möglichkeiten zur Deinstallation von MSI-Paketen): https://stackoverflow.com/questions/450027/uninstalling-an-msi-file-from-the-command-line-without-using-msiexec/1055933#1055933. Es gibt eine Fülle von verschiedenen Möglichkeiten zur Deinstallation. *Wenn Sie eine Batch-Datei schreiben, werfen Sie bitte einen Blick auf Abschnitt 3 in der oben verlinkten Antwort für einige gängige und Standard-Befehlszeilenvarianten zur Deinstallation. Und ein kurzer Link zu msiexec.exe (Befehlszeilenoptionen) (Übersicht über die Befehlszeile für msiexec.exe von MSDN). Und auch die Technet-Version.
Abrufen anderer MSI-Eigenschaften / Informationen (z.B. Upgrade Code)
UPDATE: hier finden Sie eine neue Antwort auf die Frage, wie man den Upgrade-Code für installierte Pakete findet, anstatt den Code manuell in MSI-Dateien zu suchen. Für
Hier ist ein ähnlicher Artikel mit einigen weiteren Optionen zum Abrufen von MSI-Informationen über die Registrierung oder die zwischengespeicherte MSI: https://stackoverflow.com/questions/11251034/find-guid-from-msi-file?
Ähnliche Themen (als Referenz und zum leichteren Zugriff - ich sollte diese Liste aufräumen):
Wenn Sie zu viele Installationsprogramme haben, um das Gesuchte leicht zu finden, können Sie mit der Powershell einen Filter erstellen und die Suche nach dem Anzeigenamen ein wenig einschränken.