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"