Solutions
Device management
Remotely manage, and protect laptops and mobile devices.
Orchestration
Automate tasks across devices, from app installs to scripts.
Software management
Inventory, patch, and manage installed software.
Extend Fleet
Integrate your favorite tools with Fleet.
Customers
Stripe + Fleet
Stripe consolidates multiple tools with Fleet.
Foursquare + Fleet
Foursquare quickly migrates to Fleet for device management.
What people are saying
Stories from the Fleet community.
More
macOS | 26.1.2
Parallels Desktop is virtualization software.
To install Parallels Desktop on your work computer:
Don’t see Parallels Desktop or the Fleet Desktop icon? Send a link to this page to your IT team.
Run the following command in your terminal to uninstall Parallels Desktop:
APPDIR="/Applications/" && LOGGED_IN_USER=$(scutil <<< "show State:/Users/ConsoleUser" | awk '/Name :/ { print $3 }') && send_signal() { local signal="$1"; local bundle_id="$2"; local logged_in_user="$3"; local logged_in_uid pids; if [ -z "$signal" ] || [ -z "$bundle_id" ] || [ -z "$logged_in_user" ]; then echo "Usage: uninstall_signal <signal> <bundle_id> <logged_in_user>"; return 1 fi; logged_in_uid=$(id -u "$logged_in_user"); if [ -z "$logged_in_uid" ]; then echo "Could not find UID for user '$logged_in_user'."; return 1 fi; echo "Signalling '$signal' to application ID '$bundle_id' for user '$logged_in_user'"; pids=$(/bin/launchctl asuser "$logged_in_uid" sudo -iu "$logged_in_user" /bin/launchctl list | awk -v bundle_id="$bundle_id" '; $3 ~ bundle_id { print $1 }'); if [ -z "$pids" ]; then echo "No processes found for bundle ID '$bundle_id'."; return 0 fi; echo "Unix PIDs are $pids for processes with bundle identifier $bundle_id"; for pid in $pids; do if kill -s "$signal" "$pid" 2>/dev/null; then echo "Successfully signaled PID $pid with signal $signal."; else echo "Failed to kill PID $pid with signal $signal. Check permissions."; fi; done sleep 3 } && trash() { local logged_in_user="$1"; local target_file="$2"; local timestamp="$(date +%Y-%m-%d-%s)"; local rand="$(jot -r 1 0 99999)"; if [[ "$target_file" == ~* ]]; then target_file="/Users/$logged_in_user${target_file:1}"; fi; local trash="/Users/$logged_in_user/.Trash"; local file_name="$(basename "${target_file}")"; if [[ -e "$target_file" ]]; then echo "removing $target_file."; mv -f "$target_file" "$trash/${file_name}_${timestamp}_${rand}"; else echo "$target_file doesn't exist."; fi } && send_signal 'TERM' 'com.parallels.desktop.console' "$LOGGED_IN_USER" && (cd /Users/$LOGGED_IN_USER && '/usr/bin/pkill' '-TERM' 'prl_client_app') || true && sudo rm -rf '/Library/Preferences/Parallels' && sudo rm -rf '/usr/local/bin/prl_convert' && sudo rm -rf '/usr/local/bin/prl_disk_tool' && sudo rm -rf '/usr/local/bin/prl_perf_ctl' && sudo rm -rf '/usr/local/bin/prlcore2dmp' && sudo rm -rf '/usr/local/bin/prlctl' && sudo rm -rf '/usr/local/bin/prlexec' && sudo rm -rf '/usr/local/bin/prlsrvctl' && sudo rm -rf "$APPDIR/Parallels Desktop.app" && sudo rmdir '/Users/Shared/Parallels' && sudo rmdir '~/Library/Caches/Parallels Software' && sudo rmdir '~/Library/Parallels' && sudo rmdir '~/Parallels' && trash $LOGGED_IN_USER '~/.parallels_settings' && trash $LOGGED_IN_USER '~/Applications (Parallels)' && trash $LOGGED_IN_USER '~/Library/Application Scripts/*.com.parallels.Desktop' && trash $LOGGED_IN_USER '~/Library/Application Scripts/com.parallels.desktop*' && trash $LOGGED_IN_USER '~/Library/Application Support/com.apple.sharedfilelist/com.apple.LSSharedFileList.ApplicationRecentDocuments/com.parallels.desktop.console.sfl*' && trash $LOGGED_IN_USER '~/Library/Caches/com.apple.helpd/Generated/com.parallels.desktop.console.help*' && trash $LOGGED_IN_USER '~/Library/Caches/com.parallels.desktop.console' && trash $LOGGED_IN_USER '~/Library/Caches/Parallels Software/Parallels Desktop' && trash $LOGGED_IN_USER '~/Library/Containers/com.parallels.desktop*' && trash $LOGGED_IN_USER '~/Library/Group Containers/*.com.parallels.Desktop' && trash $LOGGED_IN_USER '~/Library/Logs/parallels.log' && trash $LOGGED_IN_USER '~/Library/Parallels/Applications Menus' && trash $LOGGED_IN_USER '~/Library/Parallels/Downloads' && trash $LOGGED_IN_USER '~/Library/Parallels/Parallels Desktop' && trash $LOGGED_IN_USER '~/Library/Preferences/com.parallels.desktop.console.LSSharedFileList.plist' && trash $LOGGED_IN_USER '~/Library/Preferences/com.parallels.desktop.console.plist' && trash $LOGGED_IN_USER '~/Library/Preferences/com.parallels.Parallels Desktop Events.plist' && trash $LOGGED_IN_USER '~/Library/Preferences/com.parallels.Parallels Desktop Statistics.plist' && trash $LOGGED_IN_USER '~/Library/Preferences/com.parallels.Parallels Desktop.plist' && trash $LOGGED_IN_USER '~/Library/Preferences/com.parallels.Parallels.plist' && trash $LOGGED_IN_USER '~/Library/Preferences/com.parallels.PDInfo.plist' && trash $LOGGED_IN_USER '~/Library/Preferences/Parallels' && trash $LOGGED_IN_USER '~/Library/Saved Application State/com.parallels.desktop.console.savedState'
Run this query in Fleet to find old versions of Parallels Desktop across all your computers:
SELECT 1 FROM apps WHERE bundle_identifier = 'com.parallels.desktop.console' AND bundle_short_version <= '26.1.2';