Skip to content

Instantly share code, notes, and snippets.

@fred
Created March 4, 2025 04:51
Show Gist options
  • Save fred/620d60cb8f48e518892d95879ceb7559 to your computer and use it in GitHub Desktop.
Save fred/620d60cb8f48e518892d95879ceb7559 to your computer and use it in GitHub Desktop.
#!/bin/bash
# Script to completely remove TeamViewer from macOS
# This script should be run with root privileges via MDM
# Exit immediately if a command exits with a non-zero status
set -e
# Display a message indicating the uninstallation has started
echo "Starting TeamViewer uninstallation process..."
# Kill all running TeamViewer processes
echo "Stopping TeamViewer processes..."
pkill -f "TeamViewer" || echo "No TeamViewer processes found running"
# Remove the main application
echo "Removing TeamViewer application..."
rm -rf /Applications/TeamViewer.app
# Remove TeamViewer related files from various Library locations
echo "Removing TeamViewer related files..."
# System Library files
rm -rf /Library/Application\ Support/TeamViewer
rm -rf /Library/Preferences/com.teamviewer*
# User Library files (for all users)
for USER_HOME in /Users/*; do
if [ -d "$USER_HOME/Library" ]; then
echo "Cleaning up TeamViewer files for user: $(basename "$USER_HOME")"
rm -rf "$USER_HOME/Library/Application Support/TeamViewer"
rm -rf "$USER_HOME/Library/Preferences/com.teamviewer*"
rm -rf "$USER_HOME/Library/Caches/com.teamviewer*"
rm -rf "$USER_HOME/Library/Logs/TeamViewer*"
rm -rf "$USER_HOME/Library/Saved Application State/com.teamviewer.TeamViewer.savedState"
fi
done
# Remove Launch Agents and Daemons
echo "Removing TeamViewer launch agents and daemons..."
rm -f /Library/LaunchAgents/com.teamviewer*
rm -f /Library/LaunchDaemons/com.teamviewer*
# Remove per-user launch agents
for USER_HOME in /Users/*; do
if [ -d "$USER_HOME/Library/LaunchAgents" ]; then
rm -f "$USER_HOME/Library/LaunchAgents/com.teamviewer*"
fi
done
# Remove TeamViewer from Login Items for all users
for USER_HOME in /Users/*; do
if [ -d "$USER_HOME/Library" ]; then
USER=$(basename "$USER_HOME")
# Remove TeamViewer from login items - redirecting errors to /dev/null
su - "$USER" -c "osascript -e 'tell application \"System Events\" to delete login item \"TeamViewer\"'" 2>/dev/null || true
fi
done
# For older versions of TeamViewer/macOS that might have kernel extensions
echo "Checking for TeamViewer kernel extensions..."
if [ -d "/Library/Extensions/TeamViewerHelper.kext" ]; then
echo "Removing TeamViewer kernel extension..."
rm -rf /Library/Extensions/TeamViewerHelper.kext
# Update kernel extension cache
touch /Library/Extensions
kextcache -system-caches
fi
# Clean up receipts
echo "Removing installation receipts..."
rm -rf /private/var/db/receipts/com.teamviewer*
# Remove any remaining components (Helper Tools)
rm -rf /Library/PrivilegedHelperTools/com.teamviewer.Helper
rm -rf /Library/PrivilegedHelperTools/com.teamviewer.desktopapp.Helper
echo "TeamViewer has been successfully removed from this system."
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment