Deinstallation einer MSI-Datei mittels einer WMI-Abfrage

Last modified by Sabrina V. on 2025/01/10 12:28

Ausgangslage

Mithilfe der WMI-Abfrage wird in diesem Client Command die MSI-IdentifyingNumber ermittelt, die anschließend in dem Befehl Uninstall MSI package genutzt wird. Durch die Nutzung der WMI-Abfrage können Sie auch mit Wildcards arbeiten, um mehrere Softwareversionen zu berücksichtigen. In diesem Beispiel soll die Software 7-Zip deinstalliert werden. Das Datenkompressionsprogramm ist oftmals im Unternehmen nicht auf einen einheitlichen Stand, wodurch ein mühsames Zusammensuchen der einzelnen Produktcodes nötig wäre. Umgehen Sie die einzelnen Deinstallationen verschiedener Versionen und sorgen Sie so für einen einheitlichen Softwarestand.

Hinweis  Note:  

Dies ist nur ein Weg, wie Sie eine MSI-Datei über ein Client Command deinstallieren können. Sollten Sie beispielsweise nur eine Version einer Software installieren wollen, können Sie dies auch über den Produktcode und das Ignorieren von Fehlern (per Fehlercodes) machen. Lesen Sie hier die Vorgehensweise nach.

Gehen Sie ansonsten wie folgt vor:

Skript auswählen

  1. Navigieren Sie ins Modul Client Commands > Erstellen.
  2. Klicken Sie in der Ribbonleiste auf Hinzufügen. Es öffnet sich der Client Command Editor, in dem Sie entscheiden müssen, ob es sich um ein Console- oder Client Skript handelt. In diesem Fall wählen Sie das Client Skript aus.

Befehl WMI Query auswählen und bearbeiten

Warning  Warning:  

Innerhalb der WMI Abfrage greifen Sie auf die WMI-Klasse Win32_Produkt zu. Diese Klasse stellt die Produkte dar, wie sie vom Windows Installer installiert werden beziehungsweise als Installationspaket auf den Clients hinterlegt werden. Das kann unter Umständen zur Folge haben, dass unzählige Einträge im Eventlog gelistet werden, da sämtliche MSI-Installationsdateien aufgeführt werden. Beachten Sie dies, denn dieser Schritt kann zu Verzögerungen führen. Microsoft beschreibt dieses Problem wie folgt:

Win32_Product is not query optimized. Queries such as "select * from Win32_Product where (name like 'Sniffer%')" require WMI to use the MSI provider to enumerate all of the installed products and then parse the full list sequentially to handle the “where” clause. This process also initiates a consistency check of packages installed, verifying and repairing the install. With an account with only user privileges, as the user account may not have access to quite a few locations, may cause delay in application launch and an event 11708 stating an installation failure.

  1. Wählen Sie zunächst aus der Commandliste den Befehl WMI > WMI Query aus.
  2. Öffnen Sie den Befehl per Doppelklick. Das Startfenster sind die Details zu den WMI Einstellungen.
  3. Wählen Sie hier den einfachen Modus aus.
  4. Wählen Sie unter Root den Eintrag „root\cimv2“ aus der Dropdown-Liste aus.
  5. Klicken Sie neben der WMI Klasse auf das WMI Icon. Suchen Sie im geöffneten Fenster den Eintrag „Win32_Product“ oder geben Sie diesen händisch in das Suchfeld ein. Auf der rechten Seite sehen Sie weitere Informationen zu dem jeweiligen Eintrag. Klicken Sie anschließend auf OK.
  6. Fügen Sie in das Textfeld „CAPTION like '7-Zip%'“ ein.
  7. Speichern Sie das Ergebnis in einer Variable ab. Klicken Sie dafür auf das Icon neben den Variablennamen.
  8. Im sich öffnenden Fenster müssen Sie unter Aktionen eine neue Variable einfügen. Geben Sie dafür in das Feld Variablennamen den Wert „WMIRESULT“ ein und klicken Sie auf das Plus Icon.
1736511066054-639.png

Variable WMIRESULT einfügen

      9. Beenden Sie den Schritt, indem Sie auf OK klicken und anschließend wieder zum Ursprungsfenster gelangen. Schließen Sie auch dieses Fenster durch ein erneutes klicken auf OK.

65_Use Case Client Commands_WMI Abfrage_Details_539.png

WMI Query

Befehl Uninstall MSI package auswählen und editieren

  1. Laden Sie den Befehl Uninstall MSI package (MSI) in das Skript, indem Sie es per Doppelklick auswählen. Rücken Sie den Befehl entweder über die Schnellwahlleiste oder den Shortcut STRG + Pfeiltaste rechts ein, sodass er unterhalb des ersten Befehls (WMI Query) angezeigt wird.

    Hinweis  Note:  

    Sollten sich bei Ihnen in der Umgebung mehrere Installationen zu der gleichen Software befinden (in diesem Beispiel zu 7-Zip), können Sie durch die Einrückung auch mehrere Einträge finden. Der Befehl wird mehrfach durchgeführt, da es sich um ein Loop Command handelt und hierbei die gesuchte Software so oft deinstalliert wird, bis keine zutreffenden IDs mehr gefunden werden.

  2. Geben Sie unter dem Tab Details zu den Produktinformationen den Produktcode %WMIRESULT.IdentifyingNumber% ein. Die Variable setzt sich aus dem Variablenwert, den Sie zuvor gespeichert haben (WMIRESULT) und der IdentifyingNumber zusammen. Die IdentifyingNumber ist die Produkt-ID, die zur Deinstallation aller Softwareeinträge zu 7-Zip benötigt wird.
  3. Wählen Sie als Anzeigemodus Unbeaufsichtigt aus.
  4. Setzen Sie unter Optionen einen Haken für Neustart unterdrücken. Sollte für die Deinstallation ein Neustart nötig sein, wird dieser nicht direkt im Anschluss durchgeführt. Hierdurch werden andere offene Programme oder Dateien nicht einfach geschlossen, ohne dass Sie diese abgespeichert haben.
  5. Klicken Sie anschließend auf OK.
65_Use Case Client Commands_MSI Paket deinstallieren_WMI Result_504.png

MSI Paket deinstallieren

Als letzten Schritt müssen Sie Ihr Client Command im Editor abspeichern.

65_Use Case Client Commands_WMI Abfrage Gesamtübersicht_1436.png

Client Command-Editor: Deinstallation einer MSI-Datei mittels einer WMI-Abfrage

Bei der Ausführung des Client Commands wird die Software 7-Zip von den Clients deinstalliert.

© Aagon GmbH 2025
Besuchen Sie unsere neue Aagon-Community