Im Hinblick auf macOS gibt es verschiedene Möglichkeiten, um Apps zu deinstallieren: Sie können sie in den Papierkorb ziehen und ablegen, einen speziellen Deinstallationsprogramm verwenden oder den Weg über das Launchpad wählen. Diese Methoden fehlen jedoch oft an Effizienz und Automatisierung, die in IT-Umgebungen für Großbetriebe erforderlich sind. Für IT-Experten und Managed Service Provider (MSPs), die mit der Verwaltung einer Gruppe von Mac-Geräten betraut sind, stellt die Verwendung eines Shell-Skripts für diesen Zweck die effizienteste und wirksamste Methode dar.
Apps auf macOS deinstallieren mit Shell-Skript
#!/usr/bin/env bash # Description: This will search under /Applications/* and under each user's Applications folder for the app you speficy to remove and will only remove the first found app. # # Release Notes: Initial Release # By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https://www.ninjaone.com/terms-of-use. # Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. # Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. # Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. # Warranty Disclaimer: The script is provided “as is” and “as available”, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. # Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. # Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. # EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA). # # Usage: # <ApplicationName.app> # Accepts only one application # Specify the exact name of the application. # Applications with space(s) in the name will need double quotes surrounding it. Example: "Google Chrome.app" # As macOS's file system is typically case sensitive, matching the case is important. # # EXAMPLE # If we have /Applications/Docker.app installed. # Then our argument would be: # Docker.app # EXAMPLE # If we have /Applications/Google Chrome.app installed. # Then our argument would be: # "Google Chrome.app" APP=$1 # Get a list of all installed app's, filter to only have /Applications and /User/<username>/Applications, filter the requested app, select the first found app mdfind kMDItemContentTypeTree=com.apple.application-bundle -onlyin >/dev/null APP_TO_UNINSTALL=$(system_profiler SPApplicationsDataType 2>/dev/null | sed -n 's/^ *Location: (.*)/1/p' | grep -E '^/Applications.*|/Users/.+/Applications.*' | grep "${APP}" | head -n 1) echo "Found ${APP_TO_UNINSTALL}" echo "Removing ${APP_TO_UNINSTALL}" # Remove app rm -rf "${APP_TO_UNINSTALL}" status=$? # Output result [ $status -eq 0 ] && echo "Removed ${APP_TO_UNINSTALL}" || echo "Failed to remove ${APP_TO_UNINSTALL}" # Return status exit $status
Zugriff auf über 300 Skripte im NinjaOne Dojo
Die Struktur des Skripts: Funktionsweise
Verwendung von mdfind und system_profiler
Das Skript verwendet macOS-eigene Dienstprogramme, um seine Aufgabe zu erfüllen. mdfind, ein Teil von Spotlight, wird zunächst zur Abfrage der Metadaten von Dateien verwendet. Dadurch kann das Skript eine Liste aller Anwendungs-Bundles erstellen, wobei es sich nur auf die Bundles konzentriert, die sich in /Applications und /Users/<username>/Applications befinden.
system_profiler, ein weiteres macOS-Dienstprogramm, sammelt detaillierte Informationen über die installierten Programme. Bei Verwendung mit SPApplicationsDataType werden alle auf dem Rechner installierten Anwendungen aufgelistet.
Ergebnisse filtern mit grep
Die Website grep wird in dem Skript zweimal verwendet. Das erste Vorkommen filtert die Ausgabe von system_profiler durch, um Pfade zu finden, die entweder mit /Applications beginnen oder mit /Users/<Benutzername>/Applications. Die zweite Verwendung grenzt diese Ergebnisse ein, um genau den Namen der angegebenen Anwendung abzugleichen.
Der kraftvolle Befehl rm
Die eigentliche Deinstallation erfolgt mit dem Befehl rm -rf Befehl, einem leistungsfähigen Dienstprogramm zum Entfernen von Dateien und Verzeichnissen. An dieser Stelle zielt es auf das Anwendungs-Bundle ab, das durch die vorherige Befehle gefunden wurde, und entfernt es aus dem System.
Die Vorteile der Automatisierung: Gründe für die Verwendung dieses Skripts
Zeitersparnis
Automatisierung steht für Zeitersparnis. Dieses Skript beseitigt die mühsame manuelle Deinstallation und ermöglicht IT-Personal, sich auf wichtigere Aufgaben zu konzentrieren.
Skalierbarkeit
Das Skript kann Teil eines umfassenderen Automatisierungsplans sein. Stellen Sie sich vor, dieses Skript in ein Systemverwaltungstool zu integrieren, das dieses Skript remote auf allen Mac-Geräten in einem Netzwerk auslöst. Die Skalierbarkeit in diesem Fall ist enorm.
Richtigkeit
Im Gegensatz zu manuellen Methoden, bei denen menschliche Fehler eine Rolle spielen, ist das Skript darauf programmiert, das genaue Anwendungsbundle zu finden, wodurch die Wahrscheinlichkeit unbeabsichtigter Löschungen oder Übersehen verringert wird.
Flexibilität
Durch die Möglichkeit, den genauen Namen der Anwendung als Argument anzugeben, können Sie den Deinstallationsprozess an Ihre spezifischen Anforderungen anpassen. Wenn Sie dieses Skript in ein anderes Skript einbetten, erhalten Sie ein leistungsstarkes Werkzeug, um mehrere Anwendungen nacheinander zu deinstallieren.
Compliance-Vorteile
In Branchen, die reguliert sind oder strenge Compliance-Standards haben, kann das Versäumnis, nicht konforme oder nicht autorisierte Anwendungen zu entfernen, zu Sanktionen führen. Durch die Automatisierung des Deinstallationsprozesses wird sichergestellt, dass Sie ohne übermäßigen Aufwand stets die Compliance-Anforderungen befolgen.
Zusammenfassung
NinjaOne ist eine Cloud-basierte IT-Management-Plattform, mit der eine Vielzahl von Aufgaben automatisiert werden kann, einschließlich der Deinstallation von Apps. Mit NinjaOne können Sie eine Richtlinie erstellen, die das Shell-Skript ausführt. Diese Vorschrift kann wiederholt ausgeführt werden oder durch ein bestimmtes Ereignis aktiviert werden, wie beispielsweise die Installation einer neuen App.
Im Folgenden finden Sie die Schritte zur Verwendung von NinjaOne zur Automatisierung des App-Deinstallations-Skripts:
- Erstellen Sie eine Richtlinie in NinjaOne.
- In der Richtlinie wählen Sie die Aktion “Skript” aus.
- Fügen Sie das Shell-Skript in den Skript-Editor ein.
- Geben Sie im Abschnitt “Argumente” den Namen der Anwendung an, die Sie deinstallieren möchten.
- Planen Sie die Ausführung der Richtlinie wiederkehrend oder lösen Sie sie durch ein spezifisches Ereignis aus.
Sobald die Richtlinie erstellt ist, deinstalliert sie automatisch die angegebene Anwendung von allen macOS-Geräten, die von NinjaOne verwaltet werden. Nachdem die Richtlinie erstellt wurde, erfolgt die automatische Deinstallation der angegebenen App auf allen von NinjaOne verwalteten macOS-Geräten.
Hier sind einige zusätzliche Vorteile der Verwendung von NinjaOne zur Automatisierung des App-Deinstallations-Skripts:
- Zentralisierte Verwaltung: Mit NinjaOne erhalten Sie eine zentrale Steuerungseinheit, über die Sie sämtliche Ihrer macOS-Geräte verwalten können. Dies erleichtert die Erstellung und Bereitstellung von Richtlinien und erleichtert auch die Verfolgung des Status Ihrer Geräte.
- Skalierbarkeit: NinjaOne kann problemlos erweitert werden, um eine umfangreiche Anzahl von macOS-Geräten zu managen. Das macht es zu einer guten Wahl für Unternehmen mit einer umfangreichen IT-Infrastruktur.
- Sicherheit: NinjaOne ist eine sichere Plattform, die branchenübliche Verschlüsselungstechnologien verwendet, um Ihre Daten zu schützen. Dies trägt dazu bei, sicherzustellen, dass Ihre App-Deinstallations-Skripte sicher sind und dass Ihre Daten geschützt werden.