Verwenden von PowerShell zum Deinstallieren von Anwendungen

Letztes Jahr habe ich Ihnen erzählt, dass ich ein Skript brauche, das alle Versionen einer Anwendung auf einem Computer erkennt und jede Version einzeln deinstalliert. Lange Rede, kurzer Sinn, ich konnte keinen finden, also habe ich einen zusammengebaut! Da der ursprüngliche Beitrag veröffentlicht wurde, erhielt ich eine Reihe von Fragen, wie man ein Delta oder eine vollständige SCCM-Hardwareinventur erzwingt, nachdem die Anwendungen deinstalliert wurden. Schließlich habe ich beschlossen, mein ursprüngliches Skript und den Beitrag über die Verwendung zu aktualisieren Power Shell Anwendungen zu deinstallieren.

Das neue Skript enthält eine Delta-Bestandsaufnahme und es besteht nun die Möglichkeit, eine vollständige SCCM-Hardware-Bestandsaufnahme zu erzwingen. Wenn die deinstallierte Anwendung zuvor eine EXE-Datei (und keine MSI-Datei) war, wurde die Power Shell Das Skript würde fehlschlagen, da der Hardcode nur die Deinstallation von MSI-Dateien zulassen würde. Ich habe dieses Problem behoben, sodass jetzt sowohl EXE- als auch MSI-Dateien deinstalliert werden.

Anwendungen deinstallieren - Feiern

Bevor ich jedoch dazu komme, sollte ich dir sagen, dass mein Freund Jason Sandys hatte schon ein VBScript um genau das zu tun, wonach ich letztes Jahr gesucht habe. Es gibt einen langen Insider-Witz zwischen uns über VBScript vs Power Shell, aber ich werde Sie hier nicht damit langweilen. Als ich ursprünglich nach Skripten suchte, musste es sein Power Shell oder nichts. Der Grund war damals einfach. Ich musste mehr darüber erfahren Power Shell, also habe ich nie nach einem gesucht VBScript und habe Jasons Post nie gesehen. Das Lustige daran ist, dass Jason mir irgendwann von seinem Drehbuch erzählt und mir ein sehr cooles Feature gezeigt hat. Sie können danach einen Hardwareinventurzyklus erzwingen! Sie müssen sich Jasons Skript auf seinem ansehen Blog-Site.

Ich höre einige von euch sagen: „Welches Drehbuch ist besser?“ Die Antwort hängt meiner Meinung nach von Ihrem Verständnis von ab VBScript und Power Shell. Wählen Sie außerdem diejenige aus, die Ihnen am besten gefällt, und verwenden Sie sie!

Hintergrund

Ich war Produkttest Überwachen von Informationsberichten (MIR), die jetzt ein Teil von . ist Enhansoft-Berichte. Dieser Test umfasste die Bereitstellung mehrerer Updates für die Clients meines Labors. Mein Labor ist eine Mischung aus x86- und x64-Betriebssystemen (OS). Nachdem ich all diese Versionen von MIR bereitgestellt hatte, suchte ich nach einer Lösung, die es mir ermöglichte, die Clientinstallationen schnell zu bereinigen. Letztendlich wollte ich nur die endgültige Version von MIR auf jedem Client installieren.

Anwendungen deinstallieren - Test

Leider konnte nicht festgestellt werden, welche Versionen von MIR auf welchen Testcomputern eingesetzt wurden. Es bestand auch die Möglichkeit, dass auf mehreren Testcomputern mehr als eine Version von MIR installiert sein könnte. Ich brauchte eine einfache Möglichkeit, alle Versionen von MIR auf einem Computer automatisch zu erkennen und jede einzelne nacheinander zu deinstallieren, ohne sie auf jedem Computer manuell deinstallieren zu müssen. Ich freue mich, Ihnen mitteilen zu können, dass seit dieser Zeit das Setup für MIR aktualisiert wurde, sodass immer nur eine Version davon auf einem Computer installiert werden kann.

Zurück zum Problem vom letzten Jahr. Sie würden denken, dass ich eine finden könnte Power Shell Lösung. Haben Sie schon einmal eingesetzt Adobe Reader? Dann wüssten Sie, dass es mehrere verschiedene Versionen von . geben kann Adobe Reader aufgeführt in Programm hinzufügen/entfernen (ARP) auf einem Computer. Warum gibt es keine einfache Möglichkeit, die älteren Versionen zu löschen?

Ich habe viel gefunden Power Shell Skripte, die mir helfen würden, jeweils nur eine Anwendung zu deinstallieren. Es waren sogar ein paar Power Shell Skripte da draußen, die abfragen würden Win32_Produkt und deinstallieren Sie dann zwei oder mehr Anwendungen. Wenn Sie jedoch den Blogbeitrag von Greg Ramsey lesen Win32_Produkt ist böse Sie würden wissen, dass dies eine schlechte Idee ist. Das solltest du niemals tun! Aus diesem Grund konnte ich Win32_Product aufgrund der damit verbundenen Probleme nie in meinem Skript verwenden.

Verwenden von PowerShell zum Deinstallieren von Anwendungen

Auf hohem Niveau ist das, was ich aktualisiert habe Power Shell Skript macht:
-Erkennt, ob das Skript im x84-, x64- oder WoW32-Modus ausgeführt wird.
- Liest sowohl x86- als auch x64-Deinstallationsregistrierungsschlüssel.
-Sucht alle Versionen einer Anwendung.
- Durchläuft die Liste der ARP-Einträge und sammelt Folgendes:
-MSI-Name/GUID/Deinstallationszeichenfolge.
-Erkennt, ob die Anwendung eine EXE- oder MSI-Datei ist und deinstalliert die Anwendung entsprechend.
-Protokolliert jeden Schritt in einer Protokolldatei.
-Führt eine Delta-Hardwareinventur oder, wenn das Flag gesetzt ist, eine vollständige SCCM-Hardwareinventur aus.

Unten sehen Sie, wie das endgültige Skript aussieht, aber Sie können auch herunterladen es aus dem Enhansoft Webseite.

Anwendungen deinstallieren - Skript

Erzwingen einer vollständigen SCCM-Hardwareinventur

Standardmäßig wird ein Delta-Hardwareinventurzyklus als einer der letzten Schritte innerhalb des Skripts gestartet. Es gibt nichts mehr, was Sie tun müssen. Ich erzwinge jedoch gerne eine vollständige Inventarisierung, wenn ich Anwendungen deinstalliere. Wenn Sie wie ich sind, müssen Sie nur den Wert $fullinventory = $false in $true ändern. Dadurch wird eine vollständige SCCM-Hardwareinventur erzwungen.

So stellen Sie das Deinstallations-Anwendungsskript mit SCCM bereit

Beginnen Sie zunächst mit der Bearbeitung des Skripts. Ersetzen Sie den Namen der Anwendung durch den Namen, den Sie deinstallieren möchten. In der Download-Version ist es derzeit eingestellt auf: Monitor*Information*Reporting* Beachten Sie, dass * ein Platzhalter ist, der zum Durchsuchen von ARP-Einträgen verwendet wird.

Entscheiden Sie zweitens, ob Sie eine vollständige SCCM-Hardwareinventur erzwingen möchten, und setzen Sie das Flag entsprechend.

Drittens erstellen Sie ein Paket und ein Programm für Ihre Befehlszeile. Es sollte wie folgt aussehen:
powershell.exe -ExecutionPolicy umgehen -file Uninstallv10.ps1

Viertens und schließlich stellen Sie das Paket und das Programm wie jedes andere Programm bereit.

Verwenden des Skripts zur Deinstallation der Anwendung

Sie können im Screenshot unten sehen, dass ich letztes Jahr mehrere Kopien von MIR auf diesem Testcomputer installiert hatte.

Anwendungen deinstallieren - MIR-Anwendungen

Ich richte mein Programm so ein, dass es im Hintergrund bereitgestellt wird. Aus Sicht des Endbenutzers nichts zu sehen!

Wenn Sie überprüfen möchten, ob die Power Shell Skript läuft, schauen Sie sich das an Taskmanager. Sie müssen schnell sein! Die Ausführung des Skripts dauert nur wenige Sekunden bis einige Minuten, abhängig von der Anzahl der zu entfernenden ARPs. Nebenbei sehen Sie auch, dass das Skript innerhalb des Execmgr.log auf Ihrem Testcomputer.

Anwendungen deinstallieren - MIR-Anwendungen entfernt

Sie können aus dem obigen Screenshot sehen, dass nach ein paar Minuten alle Überwachen von Informationsberichten ARP-Einträge wurden entfernt.

Beachten Sie, dass der Hardwareinventurzyklus (Delta oder vollständig) kurz nach der Deinstallation aller Anwendungen beginnt. Die Ausführung dauert nur wenige Sekunden (~60 Sekunden).

Computer neu starten

In einigen Fällen möchten Sie die Computer möglicherweise neu starten, nachdem die Hardwareinventur an SCCM gesendet wurde. In meinem Fall habe ich a . hinzugefügt Schlaf Befehl an die Power Shell Skript für 75 Sekunden vor dem Neustart. Sollte Ihre Hardwareinventur länger dauern, passen Sie die Zeit einfach entsprechend an.

Hier sind die Befehle, die ich verwendet habe:
Start-Schlaf – Sekunden 75
Neustart-Computer -force

Bei Fragen zur Verwendung Power Shell Um Anwendungen zu deinstallieren, kontaktieren Sie mich bitte @GarthMJ.

Sehen Sie, wie Right Click Tools die Art und Weise verändert, wie Systeme verwaltet werden.

Steigern Sie sofort die Produktivität mit unserer limitierten, kostenlos nutzbaren Community Edition.

Starten Sie noch heute mit Right Click Tools:

Support

  • Dieses Feld dient zur Validierung und sollte nicht verändert werden.

Kontakt

  • Dieses Feld dient zur Validierung und sollte nicht verändert werden.

Durch das Absenden dieses Formulars erklären Sie sich damit einverstanden, dass Recast Software Ihre Daten wie in Recast Software beschrieben verarbeiten kann Datenschutz-Bestimmungen.

de_DEGerman