Argomento
Questo articolo spiega come utilizzare uno script personalizzato per rimuovere TeamViewer dai tuoi endpoint macOS.
Per gli endpoint Microsoft Windows, consulta il nostro articolo Script personalizzati: rimuovere TeamViewer (Windows).
Ambiente
NinjaOne Endpoint Management
Descrizione
Se è necessario rimuovere le istanze di TeamViewer dai terminali, lo script Rimuovi TeamViewer può semplificare il processo.
Puoi importarlo dalla nostra Libreria modelli o caricare la versione allegata a questo articolo nella tua Libreria automazioni in formato Bash. Quindi, puoi eseguirlo sui dispositivi utilizzando un'automazione pianificata, un'attività pianificata o ad hoc dal pulsante di riproduzione nella pagina del dispositivo o nella scheda Dispositivi.
Script
#!/usr/bin/env bash
#
# Descrizione: disinstalla TeamViewer.
#
# Esempio: (senza parametri)
#
# Verifica che TeamViewer sia ancora installato.
# Rimozione di TeamViewer utilizzando '"/Library/Application Support/TeamViewer/TeamViewerUninstaller.app/Contents/Helpers/UninstallTeamViewer" --force'
# Disinstallazione in corso...
# Operazione completata.
# Verifica che TeamViewer sia stato rimosso.
# TeamViewer è stato rimosso correttamente.
#
# Versione: 1.0
# Note di rilascio: versione iniziale
# Funzione per attendere l'arresto del processo TeamViewer, con un timeout di 5 minuti.
waitForTeamViewer() {
# Imposta il timeout a 5 minuti da ora.
timeout=$(date -v+5M "+%s")
# Verifica se il processo TeamViewer è in esecuzione.
if pgrep -ifl "TeamViewer" 1>/dev/null; then
echo "In attesa dell'arresto del processo TeamViewer."
fi
# Ripeti fino all'arresto del processo TeamViewer o al raggiungimento del timeout.
while pgrep -ifl "TeamViewer" 1>/dev/null; do
if [[ $(date "+%s") -ge "$timeout" ]]; then
echo "[Avviso] Il timeout di cinque minuti è stato raggiunto."
break
fi
# Attendere brevemente prima di ricontrollare.
sleep 0.1
done
}
# Funzione per stampare un messaggio di errore e uscire con un codice di ritorno specificato.
die() {
local _ret="${2:-1}"
echo "$1" >&2
exit "${_ret}"
}
echo " "
# Inizializza la variabile del codice di uscita se non è già impostata.
if [[ -z "$exitCode" ]]; then
exitCode=0
fi
# Assicurarsi che lo script sia eseguito con i permessi di root.
if [[ $(id -u) -ne 0 ]]; then
_PRINT_HELP=no die "[Errore] Questo script deve essere eseguito con i permessi di root. Provare a eseguirlo con sudo o come utente di sistema/root." 1
fi
echo "Verifica che TeamViewer sia ancora installato."
# Controllare se il programma di disinstallazione di TeamViewer è disponibile utilizzando `mdfind`.
if mdfindResult=$(mdfind kind:application "TeamViewer" 2>/dev/null | grep -v '^$'); then
teamViewerUninstaller=$(echo "$mdfindResult" | grep "TeamViewerUninstaller")
teamViewerInstalled="true"
fi
# Verifica se la directory dell'applicazione TeamViewer esiste.
if [[ -d "/Applications/TeamViewer.app" ]]; then
teamViewerInstalled="true"
fi
# Verifica se il percorso specifico del programma di disinstallazione esiste ancora; in caso affermativo, esci con un errore.
if [[ -f "/Library/Application Support/TeamViewer/TeamViewerUninstaller.app/Contents/Helpers/UninstallTeamViewer" ]]; then
teamViewerUninstaller="/Library/Application Support/TeamViewer/TeamViewerUninstaller.app"
teamViewerInstalled="true"
fi
# Se TeamViewer non è installato, controlla la presenza dello strumento QuickSupport ed esci con un errore.
if [[ "$teamViewerInstalled" != "true" ]]; then
if pgrep -ifl "TeamViewer" 1>/dev/null; then
echo "[Avviso] È stato rilevato lo strumento TeamViewer QuickSupport. Lo strumento QuickSupport non è installato sul sistema perché è un'applicazione portatile."
fi
_PRINT_HELP=no die "[Errore] TeamViewer non è installato su questo sistema." 1
fi
# Tentare di disinstallare TeamViewer utilizzando i programmi di disinstallazione trovati da `mdfind`.
if [[ -n "$teamViewerUninstaller" ]]; then
while IFS= read -r uninstaller; do
echo "Rimozione di TeamViewer utilizzando '"$uninstaller/Contents/Helpers/UninstallTeamViewer" --force'"
# Esegui il programma di disinstallazione con l'opzione `--force`.
if ! "$uninstaller/Contents/Helpers/UninstallTeamViewer" --force; then
_PRINT_HELP=no die "[Errore] Impossibile disinstallare TeamViewer." 1
fi
# Attendi che il processo TeamViewer si interrompa.
waitForTeamViewer
# Verificare se il programma di disinstallazione è ancora presente; in caso contrario, interrompere il ciclo.
if ! mdfind kind:application "TeamViewer" 2>/dev/null | grep "TeamViewerUninstaller" 1>/dev/null; then
break
fi
done <<< "$teamViewerUninstaller"
uninstallAttempted="true"
fi
# Tentare di disinstallare TeamViewer utilizzando un percorso di disinstallazione specifico.
if [[ -f "/Library/Application Support/TeamViewer/TeamViewerUninstaller.app/Contents/Helpers/UninstallTeamViewer" ]]; then
echo "Rimozione di TeamViewer utilizzando '"/Library/Application Support/TeamViewer/TeamViewerUninstaller.app/Contents/Helpers/UninstallTeamViewer" --force'"
# Esegui il programma di disinstallazione con l'opzione `--force`.
if ! "/Library/Application Support/TeamViewer/TeamViewerUninstaller.app/Contents/Helpers/UninstallTeamViewer" --force; then
_PRINT_HELP=no die "[Errore] Impossibile disinstallare TeamViewer." 1
fi
# Attendere che il processo TeamViewer si interrompa.
waitForTeamViewer
uninstallAttempted="true"
fi
# Se non è stato effettuato alcun tentativo di disinstallazione, uscire con un errore.
if [[ "$uninstallAttempted" != "true" ]]; then
_PRINT_HELP=no die "[Errore] Impossibile trovare il programma di disinstallazione di TeamViewer." 1
fi
echo "Verifica della rimozione di TeamViewer."
# Verifica se l'app è ancora presente; in caso affermativo, esci con un errore.
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 "[Errore] Impossibile disinstallare TeamViewer." 1
fi
done <<< "$foundApplications"
fi
# Controlla se l'app è ancora presente; in caso affermativo, esci con un errore.
if [[ -d "/Applications/TeamViewer.app" ]]; then
_PRINT_HELP=no die "[Errore] Impossibile disinstallare TeamViewer." 1
fi
# Controlla se il percorso specifico del programma di disinstallazione esiste ancora; in caso affermativo, esci con un errore.
if [[ -f "/Library/Application Support/TeamViewer/TeamViewerUninstaller.app/Contents/Helpers/UninstallTeamViewer" ]]; then
_PRINT_HELP=no die "[Errore] Impossibile disinstallare TeamViewer." 1
fi
echo "TeamViewer è stato rimosso correttamente."
# Esci dallo script con il codice di uscita specificato.
exit "$exitCode"