Uninstall GlobalProtect Vpn on MacOS Without İnstall File

You can uninstall GlobalProtect application with bash code. Firstly you should create uninstall_gp.sh in the home or another directory like this.

$ touch uninstall_gp.sh

Then open with vi editor and paste below code to the uninstall_gp.sh file.

#!/bin/sh
USER_ID=`id -u`
if [ "$USER_ID" -ne 0 ]; then
    echo "You must be root to run the script. Use sudo $0"
    exit
fi
install_dir=/Applications/GlobalProtect.app/Contents/Resources
app_log_dir=/Library/Logs/PaloAltoNetworks/GlobalProtect
mkdir -p "$app_log_dir"
((
    checkAndWaitProcess()
    {
        if [[ "$2" ]]; then
            T="$2"
        else
            T=5
        fi
        C=0
        while [[ C -lt $T ]] &&
              ( killall -s "$1" >/dev/null 2>/dev/null )
        do
            let C=C+1
            sleep 1
        done
        killall -s $1 >/dev/null 2>/dev/null
        return $?
    }
    pan_info()
    {
        curtime=`date`
        echo $curtime ' ' $1 >> ${app_log_dir}/PanGPInstall.log
    }
    curver=`defaults read ${install_dir}/../Info CFBundleShortVersionString`
    if [[ "$HOME" ]]; then
        USER=`stat -f "%Su" "$HOME"`
        pan_info "Uninstalling GlobalProtect version ${curver}, user ${USER}"
        pan_info "unload user gps, gpa"
        sudo -u"$USER" launchctl remove com.paloaltonetworks.gp.pangps
        sudo -u"$USER" launchctl remove com.paloaltonetworks.gp.pangpa
    else
        pan_info "Uninstalling GlobalProtect version ${curver}"
    fi
    pan_info "unload gps, gpsd and gpa"
    launchctl remove com.paloaltonetworks.gp.pangpa
    launchctl remove com.paloaltonetworks.gp.pangps
    launchctl remove com.paloaltonetworks.gp.pangpsd
    #wait for 15 sec. while PanGPS quits
    if checkAndWaitProcess "PanGPS" 5; then
        pan_info "PanGPS didn't quit within 5 sec. Killing"
        killall -15 PanGPS
        if checkAndWaitProcess "PanGPS" 5; then
            pan_info "PanGPS didn't quit after kill within 5 sec."
        fi
    fi
    #wait for 5 sec. while GlobalProtect quits
    if checkAndWaitProcess "GlobalProtect" 5; then
        pan_info "GlobalProtect didn't quit within 5 sec. Killing"
        killall -15 GlobalProtect
        if checkAndWaitProcess "GlobalProtect" 5; then
            pan_info "GlobalProtect didn't quit after kill within 5 sec."
        fi
    fi
    pan_info "Cleanup Dynamic Store"
    echo "remove State:/Network/Service/gpd.pan/IPv4" | scutil
    echo "remove State:/Network/Service/gpd.pan/DNS"  | scutil
    pan_info "rm all"
    rm -f "/Library/LaunchAgents/com.paloaltonetworks.gp.pangps.plist"
    rm -f "/Library/LaunchAgents/com.paloaltonetworks.gp.pangpa.plist"
    rm -f "/Library/LaunchDaemons/com.paloaltonetworks.gp.pangpsd.plist"
    rm -rf "/Library/Application Support/PaloAltoNetworks/GlobalProtect"
    rm -rf "/Applications/GlobalProtect.app"
    rm -rf "/Applications/GlobalProtect.app.bak"
    rm -rf "/System/Library/Extensions/gplock"*.kext
    rm -rf "/Library/Extensions/gplock"*.kext
    #Mercy kill if processes are stuck
    killall -9 GlobalProtect
    killall -9 PanGPS
    rm -rf /Library/Preferences/com.paloaltonetworks.GlobalProtect*
    rm -rf /Library/Preferences/PanGPS*
    if [[ "$HOME" ]]; then
        rm -rf "$HOME/Library/Application Support/PaloAltoNetworks/GlobalProtect"
        rm -rf "$HOME"/Library/Preferences/com.paloaltonetworks.GlobalProtect*
        rm -rf "$HOME"/Library/Preferences/PanGPS*
        #remove password entry from keychain
        security delete-generic-password -l GlobalProtect -s GlobalProtect
    fi
    pan_info "Unload driver"
    ifconfig gpd0 down
    kextunload -b com.paloaltonetworks.kext.pangpd
    pan_info "Unload gplock"
    kextunload -b com.paloaltonetworks.GlobalProtect.gplock
    #10.9 addition to clear system preferences cache
    killall -SIGTERM cfprefsd
    pan_info "uninstall packages from globalprotect"
    for pkg in `pkgutil --pkgs |grep com.paloaltonetworks.globalprotect`
    do
        pkgutil --forget "$pkg"
    done
    rm -rf /Library/Logs/PaloAltoNetworks/GlobalProtect/*
    echo "Uninstallation finished."
)  2>&1) >> ${app_log_dir}/PanGPInstall.log

Then you can run uninstall_gp.sh file via bash terminal like this:

$ sudo sh uninstall_gp.sh

Great! GlobalProtect application has removed.

One thought on “Uninstall GlobalProtect Vpn on MacOS Without İnstall File”

Leave a Reply

Your email address will not be published.