Skip to content

Instantly share code, notes, and snippets.

@karladler
Last active July 20, 2025 16:02
Show Gist options
  • Select an option

  • Save karladler/e6eef68929b583ae3e4b3d350047f385 to your computer and use it in GitHub Desktop.

Select an option

Save karladler/e6eef68929b583ae3e4b3d350047f385 to your computer and use it in GitHub Desktop.

Revisions

  1. karladler revised this gist Jul 20, 2025. 1 changed file with 123 additions and 22 deletions.
    145 changes: 123 additions & 22 deletions OSX_teams_cleanup.sh
    Original file line number Diff line number Diff line change
    @@ -1,55 +1,156 @@
    #!/bin/bash

    # List of known Microsoft Teams-related folders
    # Microsoft Teams Cleanup Script
    # This script removes all Microsoft Teams related cache, data, and preference files
    # Based on analysis of actual Teams installations and Microsoft support documentation

    # List of known Microsoft Teams-related folders (optimized - only shortest paths)
    teams_folders=(
    # Original Application Support folders
    "$HOME/Library/Application Support/Microsoft/Teams"
    "$HOME/Library/Application Support/Microsoft/Teams/Application Cache/Cache"
    "$HOME/Library/Application Support/Microsoft/Teams/blob_storage"
    "$HOME/Library/Application Support/Microsoft/Teams/Cache"
    "$HOME/Library/Application Support/Microsoft/Teams/databases"
    "$HOME/Library/Application Support/Microsoft/Teams/GPUCache"
    "$HOME/Library/Application Support/Microsoft/Teams/IndexedDB"
    "$HOME/Library/Application Support/Microsoft/Teams/Local Storage"
    "$HOME/Library/Application Support/Microsoft/Teams/tmp"

    # Caches
    "$HOME/Library/Caches/com.microsoft.teams.shipit"
    "$HOME/Library/Caches/com.microsoft.teams"

    # Containers
    "$HOME/Library/Containers/com.microsoft.teams2.respawn"
    "$HOME/Library/Containers/com.microsoft.teams2"
    "$HOME/Library/Containers/com.microsoft.teams2.notificationcenter"

    # Group Containers
    "$HOME/Library/Group Containers/UBF8T346G9.com.microsoft.oneauth"
    "$HOME/Library/Group Containers/UBF8T346G9.com.microsoft.teams"
    "$HOME/Library/Group Containers/UBF8T346G9.ms"

    # Logs
    "$HOME/Library/Logs/Microsoft Teams"

    # Preferences
    "$HOME/Library/Preferences/com.microsoft.teams.plist"
    "$HOME/Library/Preferences/com.microsoft.teams.ShipIt.plist"

    # Application Scripts
    "$HOME/Library/Application Scripts/com.microsoft.teams2"
    "$HOME/Library/Application Scripts/UBF8T346G9.com.microsoft.teams"
    "$HOME/Library/Application Scripts/UBF8T346G9.com.microsoft.oneauth"

    # Browser cache for Teams (Chrome)
    "$HOME/Library/Application Support/Google/Chrome/Default/IndexedDB/https_teams.microsoft.com_0.indexeddb.leveldb"
    "$HOME/Library/Application Support/Google/Chrome/Default/IndexedDB/https_teams.microsoft.com_0.indexeddb.blob"
    "$HOME/Library/Application Support/Google/Chrome/Profile 1/IndexedDB/https_teams.microsoft.com_0.indexeddb.leveldb"
    "$HOME/Library/Application Support/Google/Chrome/Default/IndexedDB/https_teams.live.com_0.indexeddb.leveldb"

    # Additional cache and crash reporter files
    "$HOME/Library/Application Support/CrashReporter/MSTeams_A00961D1-48AE-5C55-9BA3-E3A53F4AD00B.plist"

    # Temporary helper files
    "$HOME/Library/Containers/com.microsoft.teams2/Data/tmp/.com.microsoft.teams2.helper.*"
    )

    echo "Starting Microsoft Teams cleanup..."
    echo "Starting Enhanced Microsoft Teams cleanup..."
    echo "This script will remove all Microsoft Teams related cache, data, and preference files."
    echo "This includes:"
    echo "- Application cache and data"
    echo "- Browser cache for Teams"
    echo "- Container data and preferences"
    echo "- Crash reports and logs"
    echo "- Temporary files"
    echo ""

    for folder in "${teams_folders[@]}"; do
    if [ -e "$folder" ]; then
    echo "Found: $folder"
    read -p "Really delete this folder? (y/N): " -n 1 -r
    # Function to safely remove directories
    remove_directory() {
    local dir="$1"
    if [ -e "$dir" ]; then
    echo "Found: $dir"
    read -p "Delete this folder? (y/N): " -n 1 -r
    echo
    if [[ $REPLY =~ ^[Yy]$ ]]; then
    echo "Deleting: $folder"
    rm -rf "$folder"
    echo "Deleting: $dir"
    rm -rf "$dir"
    echo "✓ Deleted: $dir"
    else
    echo "Skipping: $folder"
    echo "Skipping: $dir"
    fi
    else
    echo "Not found: $folder"
    echo "Not found: $dir"
    fi
    }

    # Process each folder
    for folder in "${teams_folders[@]}"; do
    # Handle wildcard patterns
    if [[ "$folder" == *"*"* ]]; then
    # Expand wildcards and process each match
    for expanded_folder in $folder; do
    if [ -e "$expanded_folder" ]; then
    remove_directory "$expanded_folder"
    fi
    done
    else
    remove_directory "$folder"
    fi
    done

    echo ""
    echo "=== Keychain Cleanup ==="
    echo "Do you want to delete OneAuthAccount from keychain?"
    read -p "Delete OneAuthAccount? (y/N): " -n 1 -r
    echo
    if [[ $REPLY =~ ^[Yy]$ ]]; then
    security delete-generic-password -s OneAuthAccount
    echo "OneAuthAccount deleted from keychain"
    security delete-generic-password -s OneAuthAccount 2>/dev/null
    echo "OneAuthAccount deleted from keychain"
    else
    echo "Skipping OneAuthAccount deletion"
    fi

    echo "Cleanup completed. You can manually remove additional keys from keychain:"
    open -a Keychain\ Access
    echo "Do you want to delete additional Teams-related keychain entries?"
    read -p "Delete Teams keychain entries? (y/N): " -n 1 -r
    echo
    if [[ $REPLY =~ ^[Yy]$ ]]; then
    # Delete Teams-related keychain entries
    security delete-generic-password -s "com.microsoft.teams2" 2>/dev/null || echo "No Teams2 keychain entry found"
    security delete-generic-password -s "com.microsoft.teams" 2>/dev/null || echo "No Teams keychain entry found"
    security delete-generic-password -s "UBF8T346G9.com.microsoft.teams" 2>/dev/null || echo "No Teams group container keychain entry found"
    echo "✓ Teams keychain entries deleted"
    else
    echo "Skipping Teams keychain entries deletion"
    fi

    echo ""
    echo "=== Additional Cleanup Options ==="
    echo "Do you want to clear Teams browser cache for other browsers?"
    read -p "Clear Teams browser cache? (y/N): " -n 1 -r
    echo
    if [[ $REPLY =~ ^[Yy]$ ]]; then
    # Safari Teams cache
    if [ -d "$HOME/Library/Safari/LocalStorage/https_teams.microsoft.com_0.localstorage" ]; then
    rm -rf "$HOME/Library/Safari/LocalStorage/https_teams.microsoft.com_0.localstorage"
    echo "✓ Safari Teams cache cleared"
    fi

    # Firefox Teams cache (if exists)
    find "$HOME/Library/Application Support/Firefox" -name "*teams*" -type d 2>/dev/null | while read -r firefox_cache; do
    rm -rf "$firefox_cache"
    echo "✓ Firefox Teams cache cleared: $firefox_cache"
    done
    else
    echo "Skipping browser cache cleanup"
    fi

    echo ""
    echo "=== Cleanup Summary ==="
    echo "Enhanced Microsoft Teams cleanup completed!"
    echo ""
    echo "Additional manual cleanup options:"
    echo "1. Open Keychain Access to manually review and delete any remaining Teams-related entries:"
    echo " open -a Keychain\\ Access"
    echo ""
    echo "2. Restart your computer to ensure all changes take effect"
    echo ""
    echo "3. If you're still experiencing issues, you may need to:"
    echo " - Uninstall and reinstall Microsoft Teams"
    echo " - Clear your browser cache completely"
    echo " - Check for any remaining Teams processes: ps aux | grep -i teams"
    echo ""
    echo "Note: This script removes all Teams data. You will need to sign in again after cleanup."
  2. karladler created this gist Jul 20, 2025.
    55 changes: 55 additions & 0 deletions OSX_teams_cleanup.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,55 @@
    #!/bin/bash

    # List of known Microsoft Teams-related folders
    teams_folders=(
    "$HOME/Library/Application Support/Microsoft/Teams"
    "$HOME/Library/Application Support/Microsoft/Teams/Application Cache/Cache"
    "$HOME/Library/Application Support/Microsoft/Teams/blob_storage"
    "$HOME/Library/Application Support/Microsoft/Teams/Cache"
    "$HOME/Library/Application Support/Microsoft/Teams/databases"
    "$HOME/Library/Application Support/Microsoft/Teams/GPUCache"
    "$HOME/Library/Application Support/Microsoft/Teams/IndexedDB"
    "$HOME/Library/Application Support/Microsoft/Teams/Local Storage"
    "$HOME/Library/Application Support/Microsoft/Teams/tmp"
    "$HOME/Library/Caches/com.microsoft.teams.shipit"
    "$HOME/Library/Caches/com.microsoft.teams"
    "$HOME/Library/Containers/com.microsoft.teams2.respawn"
    "$HOME/Library/Containers/com.microsoft.teams2"
    "$HOME/Library/Group Containers/UBF8T346G9.com.microsoft.oneauth"
    "$HOME/Library/Group Containers/UBF8T346G9.com.microsoft.teams"
    "$HOME/Library/Group Containers/UBF8T346G9.ms"
    "$HOME/Library/Logs/Microsoft Teams"
    "$HOME/Library/Preferences/com.microsoft.teams.plist"
    "$HOME/Library/Preferences/com.microsoft.teams.ShipIt.plist"
    )

    echo "Starting Microsoft Teams cleanup..."

    for folder in "${teams_folders[@]}"; do
    if [ -e "$folder" ]; then
    echo "Found: $folder"
    read -p "Really delete this folder? (y/N): " -n 1 -r
    echo
    if [[ $REPLY =~ ^[Yy]$ ]]; then
    echo "Deleting: $folder"
    rm -rf "$folder"
    else
    echo "Skipping: $folder"
    fi
    else
    echo "Not found: $folder"
    fi
    done

    echo "Do you want to delete OneAuthAccount from keychain?"
    read -p "Delete OneAuthAccount? (y/N): " -n 1 -r
    echo
    if [[ $REPLY =~ ^[Yy]$ ]]; then
    security delete-generic-password -s OneAuthAccount
    echo "OneAuthAccount deleted from keychain"
    else
    echo "Skipping OneAuthAccount deletion"
    fi

    echo "Cleanup completed. You can manually remove additional keys from keychain:"
    open -a Keychain\ Access