Sie sind bereits NinjaOne-Kunde? Melden Sie sich an, um weitere Leitfäden und die neuesten Updates zu sehen.

BENUTZERDEFINIERT Skripte: TeamViewer entfernen (macOS)

Thema

In diesem Artikel wird erläutert, wie Sie TeamViewer mithilfe eines benutzerdefinierten Skripts von Ihren macOS-Endgeräten entfernen können.

Informationen zu Microsoft Windows-Endgeräten finden Sie in unserem Artikel Benutzerdefinierte Skripte: TeamViewer entfernen (Windows).

Umgebung

NinjaOne Endpoint Management

Beschreibung

Wenn Sie Instanzen von TeamViewer von Ihren Endgeräten entfernen müssen, kann das Skript „TeamViewer entfernen“ diesen Vorgang vereinfachen.

Sie können es entweder aus unserer Vorlagenbibliothek importieren oder die diesem Artikel beigefügte Version im Bash-Format in Ihre Automatisierungsbibliothek hochladen. Anschließend können Sie es auf Geräten ausführen, indem Sie eine geplante Automatisierung, eine geplante Aufgabe oder eine Ad-hoc-Ausführung über die Wiedergabetaste auf der Geräteseite oder die Registerkarte „Geräte“ verwenden.

Skript

#!/usr/bin/env bash
#
# Beschreibung: Deinstalliert TeamViewer.
#
# Beispiel: (Keine Parameter)
#
# Überprüft, ob TeamViewer noch installiert ist.
# Entfernt TeamViewer mit „/Library/Application Support/TeamViewer/TeamViewerUninstaller.app/Contents/Helpers/UninstallTeamViewer“ --force
# Deinstallieren...
# Fertig.
# Überprüfen, ob TeamViewer entfernt wurde.
# TeamViewer wurde erfolgreich entfernt.
#
# Version: 1.0
# Versionshinweise: Erstveröffentlichung

# Funktion zum Warten auf das Beenden des TeamViewer-Prozesses mit einer Zeitüberschreitung von 5 Minuten.
waitForTeamViewer() {
  # Zeitüberschreitung auf 5 Minuten ab jetzt festlegen.
  timeout=$(date -v+5M "+%s")

  # Überprüfen, ob der TeamViewer-Prozess läuft.
  if pgrep -ifl "TeamViewer" 1>/dev/null; then
    echo "Warten auf Beendigung des TeamViewer-Prozesses."
  fi

  # Schleife, bis der TeamViewer-Prozess beendet ist oder das Zeitlimit erreicht ist.
  while pgrep -ifl "TeamViewer" 1>/dev/null; do
    if [[ $(date "+%s") -ge "$timeout" ]]; then
      echo "[Warnung] Die fünfminütige Zeitüberschreitung wurde erreicht."
      break
    fi

    # Kurze Wartezeit vor erneuter Überprüfung.
    sleep 0.1
  done
}

# Funktion zum Ausgeben einer Fehlermeldung und Beenden mit einem bestimmten Rückgabecode.
die() {
  local _ret="${2:-1}"
  echo "$1" >&2
  exit "${_ret}"
}

echo " "

# Initialisieren Sie die Exit-Code-Variable, falls sie noch nicht gesetzt ist.
if [[ -z "$exitCode" ]]; then
  exitCode=0
fi

# Sicherstellen, dass das Skript mit Root-Rechten ausgeführt wird.
if [[ $(id -u) -ne 0 ]]; then
  _PRINT_HELP=no die "[Fehler] Dieses Skript muss mit Root-Rechten ausgeführt werden. Versuchen Sie, es mit sudo oder als System-/Root-Benutzer auszuführen." 1
fi

echo "Überprüfen, ob TeamViewer noch installiert ist."

# Überprüfen Sie mit `mdfind`, ob das TeamViewer-Deinstallationsprogramm verfügbar ist.
if mdfindResult=$(mdfind kind:application "TeamViewer" 2>/dev/null | grep -v '^$'); then
  teamViewerUninstaller=$(echo "$mdfindResult" | grep "TeamViewerUninstaller")
  teamViewerInstalled="true"
fi

# Überprüfen Sie, ob das TeamViewer-Anwendungsverzeichnis vorhanden ist.
if [[ -d "/Applications/TeamViewer.app" ]]; then
  teamViewerInstalled="true"
fi

# Überprüfen Sie, ob der spezifische Deinstallationspfad noch vorhanden ist; wenn ja, beenden Sie den Vorgang mit einer Fehlermeldung.
if [[ -f "/Library/Application Support/TeamViewer/TeamViewerUninstaller.app/Contents/Helpers/UninstallTeamViewer" ]]; then
  teamViewerUninstaller="/Library/Application Support/TeamViewer/TeamViewerUninstaller.app"
  teamViewerInstalled="true"
fi

# Wenn TeamViewer nicht installiert ist, nach dem QuickSupport-Tool suchen und mit einer Fehlermeldung beenden.
if [[ "$teamViewerInstalled" != "true" ]]; then
  if pgrep -ifl "TeamViewer" 1>/dev/null; then
    echo "[Warnung] Das TeamViewer QuickSupport-Tool wurde erkannt. Das QuickSupport-Tool ist nicht auf dem System installiert, da es sich um eine portable App handelt."
  fi
  _PRINT_HELP=no die "[Fehler] TeamViewer ist auf diesem System nicht installiert." 1
fi

# Versuchen Sie, TeamViewer mit dem/den von `mdfind` gefundenen Deinstallationsprogramm(en) zu deinstallieren.
if [[ -n "$teamViewerUninstaller" ]]; then
  while IFS= read -r uninstaller; do
    echo "Entfernen von TeamViewer mit '"$uninstaller/Contents/Helpers/UninstallTeamViewer" --force'"

    # Führen Sie das Deinstallationsprogramm mit der Option `--force` aus.
    if ! "$uninstaller/Contents/Helpers/UninstallTeamViewer" --force; then
      _PRINT_HELP=no die "[Fehler] TeamViewer konnte nicht deinstalliert werden." 1
    fi

    # Warten Sie, bis der TeamViewer-Prozess beendet ist.
    waitForTeamViewer

    # Überprüfen Sie, ob das Deinstallationsprogramm noch vorhanden ist; wenn nicht, brechen Sie die Schleife ab.
    if ! mdfind kind:application "TeamViewer" 2>/dev/null | grep "TeamViewerUninstaller" 1>/dev/null; then
      break
    fi
  done <<< "$teamViewerUninstaller"

  uninstallAttempted="true"
fi

# Versuchen Sie, TeamViewer über einen bestimmten Deinstallationspfad zu deinstallieren.
if [[ -f "/Library/Application Support/TeamViewer/TeamViewerUninstaller.app/Contents/Helpers/UninstallTeamViewer" ]]; then
  echo "Entfernen von TeamViewer mit '"/Library/Application Support/TeamViewer/TeamViewerUninstaller.app/Contents/Helpers/UninstallTeamViewer" --force'"

  # Führen Sie das Deinstallationsprogramm mit der Option „--force“ aus.
  if ! "/Library/Application Support/TeamViewer/TeamViewerUninstaller.app/Contents/Helpers/UninstallTeamViewer" --force; then
    _PRINT_HELP=no die "[Fehler] TeamViewer konnte nicht deinstalliert werden." 1
  fi

  # Warten, bis der TeamViewer-Prozess beendet ist.
  waitForTeamViewer

  uninstallAttempted="true"
fi

# Wenn kein Deinstallationsversuch unternommen wurde, mit einer Fehlermeldung beenden.
if [[ "$uninstallAttempted" != "true" ]]; then
  _PRINT_HELP=no die "[Fehler] Das Deinstallationsprogramm für TeamViewer wurde nicht gefunden." 1
fi

echo "Überprüfen, ob TeamViewer entfernt wurde."

# Überprüfen, ob die App noch vorhanden ist; wenn ja, mit einer Fehlermeldung beenden.
if foundApplications=$(mdfind kind:application "TeamViewer" 2>/dev/null); then
  while IFS= read -r application; do
    if [[ -f "$application" || -d "$application" ]]; then
      _PRINT_HELP=no die "[Fehler] TeamViewer konnte nicht deinstalliert werden." 1
    fi
  done <<< "$foundApplications"
fi

# Überprüfen Sie, ob die App noch vorhanden ist; wenn ja, beenden Sie den Vorgang mit einer Fehlermeldung.
if [[ -d "/Applications/TeamViewer.app" ]]; then
  _PRINT_HELP=no die "[Fehler] Deinstallation von TeamViewer fehlgeschlagen." 1
fi

# Überprüfen Sie, ob der spezifische Deinstallationspfad noch vorhanden ist; wenn ja, beenden Sie den Vorgang mit einer Fehlermeldung.
if [[ -f "/Library/Application Support/TeamViewer/TeamViewerUninstaller.app/Contents/Helpers/UninstallTeamViewer" ]]; then
  _PRINT_HELP=no die "[Fehler] Deinstallation von TeamViewer fehlgeschlagen." 1
fi

echo "TeamViewer wurde erfolgreich entfernt."

# Beenden Sie das Skript mit dem angegebenen Exit-Code.
exit "$exitCode"

FAQ

Nächste Schritte