Die Automatisierung der Anwendungsdeinstallation unter macOS mithilfe eines Shell-Skripts erklärt

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

Zugang erhalten

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:

  1. Erstellen Sie eine Richtlinie in NinjaOne.
  2. In der Richtlinie wählen Sie die Aktion “Skript” aus.
  3. Fügen Sie das Shell-Skript in den Skript-Editor ein.
  4. Geben Sie im Abschnitt “Argumente” den Namen der Anwendung an, die Sie deinstallieren möchten.
  5. 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.

Nächste Schritte

Der Aufbau eines effizienten und effektiven IT-Teams erfordert eine zentralisierte Lösung, die als einheitliches Tool zur Bereitstellung von IT-Dienstleistungen fungiert. NinjaOne ermöglicht es IT-Teams, alle Geräte zu überwachen, zu verwalten, zu sichern und zu unterstützen, unabhängig vom Standort, ohne dass eine komplexe Infrastruktur vor Ort erforderlich ist.

Erfahren Sie mehr über NinjaOne Remote Script Deployment, sehen Sie sich eine Live-Tour an oder starten Sie Ihre kostenlose Testversion unserer NinjaOne Plattform.

Kategorien:

Das könnte Sie auch interessieren

×

Sehen Sie NinjaOne in Aktion!

Mit dem Absenden dieses Formulars akzeptiere ich die Datenschutzerklärung von NinjaOne.

NinjaOne Allgemeine Geschäftsbedingungen für Skripte

Indem Sie unten auf die Schaltfläche “Ich akzeptiere” klicken, erklären Sie Ihr Einverständnis mit den folgenden rechtlichen Bedingungen sowie mit unseren Nutzungsbedingungen:

  • Eigentumsrechte: NinjaOne besitzt und wird weiterhin alle Rechte, Titel und Interessen an dem Skript (einschließlich des Urheberrechts) behalten. NinjaOne gewährt Ihnen eine eingeschränkte Lizenz zur Nutzung des Skripts in Übereinstimmung mit diesen rechtlichen Bedingungen.
  • Einschränkung der Nutzung: Sie dürfen das Skript nur für Ihre legitimen persönlichen oder internen Geschäftszwecke verwenden und es nicht an Dritte weitergeben.
  • Verbot der Wiederveröffentlichung: Sie sind unter keinen Umständen berechtigt, das Skript in einer Skriptbibliothek, die einem anderen Softwareanbieter gehört oder von diesem kontrolliert wird, erneut zu veröffentlichen.
  • Gewährleistungsausschluss: Das Skript wird “wie gesehen” und “wie verfügbar” bereitgestellt, ohne jegliche Garantie. NinjaOne gibt keine Versprechen oder Garantien, dass das Skript frei von Fehlern ist oder dass es Ihre speziellen Bedürfnisse oder Erwartungen erfüllt.
  • Risikoübernahme: Die Verwendung des Skripts erfolgt auf eigene Gefahr. Sie erkennen an, dass die Nutzung des Skripts mit bestimmten Risiken verbunden ist, und Sie verstehen und übernehmen jedes dieser Risiken.
  • Verzicht und Freigabe: Sie machen NinjaOne nicht für nachteilige oder unbeabsichtigte Folgen verantwortlich, die sich aus Ihrer Nutzung des Skripts ergeben, und Sie verzichten auf alle gesetzlichen oder billigkeitsrechtlichen Rechte oder Rechtsmittel, die Sie gegen NinjaOne im Zusammenhang mit Ihrer Nutzung des Skripts haben könnten.
  • EULA: Wenn Sie ein NinjaOne-Kunde sind, unterliegt Ihre Nutzung des Skripts dem für Sie geltenden Endbenutzer-Lizenzvertrag (EULA).