Mac & how to uninstall LANDesk
Mac & how to uninstall LANDesk
http://eddiejackson.net/wp/?p=9036
https://community.ivanti.com/docs/DOC-22475
https://www.quora.com/How-do-you-remove-LANDESK-from-your-computer
https://community.ivanti.com/docs/DOC-2092
/Library/Application Support/LANDesk/bin/LDUserMenu.app/Contents/MacOS/LDUserMenu



https://blog.csdn.net/cangraoo/article/details/81254848
https://download.csdn.net/download/e345ug/10206162
solution
#!/bin/bash
#####################################################
# LANDesk Agent framework uninstaller
# Description: script to remove landesk agent
# components.
#
# Note: do not use 'rm -rf' on directories. Use the
# remove_landesk_dir or one of the other remove_dir
# functions. They are safer and will protect you
# from making silly mistakes.
#####################################################
REMOVED=0
CLEAN=0
PKGUTIL=
SCRIPT=`/usr/bin/basename $0`
[ -x /usr/sbin/pkgutil ] && PKGUTIL=/usr/sbin/pkgutil
if [ `/usr/bin/id -u` -ne 0 ]; then
echo "Uninstalling the LANDesk agent requires administrative priveleges."
echo "Please enter your password to continue or press CTRL-C to cancel."
sudo "$0" "$@"
exit 0
fi
function show_help()
{
echo "LANDesk agent uninstaller"
echo "Usage: $SCRIPT [ -h | -c ]"
echo " options: "
echo " -h Show this help message"
echo " -c Force the uninstall and completely remove the install directories."
echo " The default is to only remove empty directories."
echo ""
}
function remove_flat_receipt( )
{
RDIR=$1
[ -z "$RDIR" ] && fatal "remove_flat_receipt(${RDIR}) must be passed a valid application name"
# remove the receipt file
if [ -d /Library/Receipts/$RDIR ]; then
echo "removing receipt for: $RDIR "
rm -rf /Library/Receipts/$RDIR
[ "$?" != "0" ] && ( echo "ERROR: failed to remove receipt: $RDIR. \n\t$!"; exit 1 )
((REMOVED++))
fi
}
function remove_database_receipt( )
{
OBJ=$1
[ -z "$OBJ" ] && fatal "remove_database_receipt(${OBJ}) must be passed a valid application name"
if [ -n "$PKGUTIL" ]; then
RES=`$PKGUTIL --pkgs | grep $OBJ`
if [ -n "$RES" ]; then
echo "Removing receipt database entry for: $OBJ "
$PKGUTIL --forget $OBJ
fi
fi
}
function remove_framework_dir()
{
FDIR=$1
echo "Checking $FDIR"
[ -z "$FDIR" ] && fatal "remove_framework_dir(${FDIR}) must be passed a valid directory"
# remove the framework directory
if [ -d /System/Library/Frameworks/${FDIR} ]; then
echo "removing framework installation: $FDIR"
rm -rf /System/Library/Frameworks/${FDIR}
[ "$?" != "0" ] && ( echo "ERROR: failed to remove framework: ${FDIR} \n\t$!"; exit 1 )
((REMOVED++))
fi
}
function remove_LaunchDaemon()
{
FNAME=$1
[ -z "$FNAME" ] && fatal "remove_LaunchDaemon(${FNAME}) must be passed a valid file name"
# remove the framework directory
if [ -e /Library/LaunchDaemons/${FNAME} ]; then
echo "removing LaunchDaemon: $FNAME"
rm -f /Library/LaunchDaemons/${FNAME}
[ "$?" != "0" ] && ( echo "ERROR: failed to remove file: ${FNAME} \n\t$!"; exit 1 )
((REMOVED++))
fi
}
function unload_LaunchAgent()
{
FNAME=$1
[ -z "$FNAME" ] && fatal "remove_LaunchAgent(${FNAME}) must be passed a valid file name"
# unload launch agent
if [ -f /Library/Application\ Support/LANDesk/bin/launchInContext.sh ] && [ -e /Library/LaunchAgents/${FNAME} ]; then
echo "unloading LaunchAgent: $FNAME"
/Library/Application\ Support/LANDesk/bin/launchInContext.sh console /bin/launchctl unload -S Aqua /Library/LaunchAgents/${FNAME}
[ "$?" != "0" ] && ( echo "ERROR: failed to unload file: ${FNAME} \n\t$!"; exit 1 )
fi
}
function remove_LaunchAgent()
{
FNAME=$1
[ -z "$FNAME" ] && fatal "remove_LaunchAgent(${FNAME}) must be passed a valid file name"
# remove the framework directory
if [ -e /Library/LaunchAgents/${FNAME} ]; then
echo "removing LaunchAgent: $FNAME"
rm -f /Library/LaunchAgents/${FNAME}
[ "$?" != "0" ] && ( echo "ERROR: failed to remove file: ${FNAME} \n\t$!"; exit 1 )
((REMOVED++))
fi
}
function remove_startup()
{
FNAME=$1
[ -z "$FNAME" ] && fatal "remove_startup(${FDIR}) must be passed a valid file name"
# remove the startup item
if [ -d "/Library/StartupItems/${FNAME}" ]; then
echo "removing launch daemon: $FDIR"
rm -rf "/Library/StartupItems/${FNAME}"
[ "$?" != "0" ] && ( echo "ERROR: failed to remove file: ${FNAME} \n\t$!"; exit 1 )
((REMOVED++))
fi
}
function remove_Preferences()
{
FNAME=$1
[ -z "$FNAME" ] && fatal "remove_Preferences(${FNAME}) must be passed a valid file name"
# remove the preferences file
if [ -e "/Library/Preferences/${FNAME}" ]; then
echo "removing Preference: ${FNAME}"
defaults delete "/Library/Preferences/${FNAME}"
[ "$?" != "0" ] && ( echo "ERROR: failed to remove file: ${FNAME} \n\t$!"; exit 1 )
((REMOVED++))
fi
}
function remove_PreferencePane()
{
FNAME="$@"
[ -z "$FNAME" ] && fatal "remove_PreferencePane(${FNAME}) must be passed a valid dir name"
# remove the preference pane directory
if [ -d "/Library/PreferencePanes/${FNAME}.prefPane" ]; then
echo "removing Preference: $FNAME"
rm -rf "/Library/PreferencePanes/${FNAME}.prefPane"
[ "$?" != "0" ] && ( echo "ERROR: failed to remove file: ${FNAME} \n\t$!"; exit 1 )
((REMOVED++))
fi
}
function remove_application_support_application()
{
FNAME=$1
[ -z "$FNAME" ] && fatal "remove_application_support_application(${FDIR}) must be passed a valid dir name"
# remove the preference pane directory
if [ -d "/Library/Application Support/${FNAME}" ]; then
echo "removing Application Support directory: $FNAME"
rm -rf "/Library/Application Support/${FNAME}"
[ "$?" != "0" ] && ( echo "ERROR: failed to remove file: ${FNAME} \n\t$!"; exit 1 )
((REMOVED++))
fi
}
function remove_landesk_dir()
{
DNAME=$1
[ -z "$DNAME" ] && fatal "remove_landesk_dir(${DNAME}) must be passed a valid dir name"
# remove the landesk directory named:
if [ -d "/usr/local/LANDesk/${DNAME}" ]; then
echo "removing LANDesk directory: $DNAME"
rm -rf "/usr/local/LANDesk/${DNAME}"
[ "$?" != "0" ] && ( echo "ERROR: failed to remove file: ${DNAME} \n\t$!"; exit 1 )
((REMOVED++))
fi
if [ -d "/usr/LANDesk/${DNAME}" ]; then
echo "removing LANDesk directory: $DNAME"
rm -rf "/usr/LANDesk/${DNAME}"
[ "$?" != "0" ] && ( echo "ERROR: failed to remove file: ${DNAME} \n\t$!"; exit 1 )
((REMOVED++))
fi
if [ -d "/opt/landesk/${DNAME}" ]; then
echo "removing LANDesk directory: $DNAME"
rm -rf "/opt/landesk/${DNAME}"
[ "$?" != "0" ] && ( echo "ERROR: failed to remove file: ${DNAME} \n\t$!"; exit 1 )
((REMOVED++))
fi
}
function remove_landesk_files()
{
for DNAME in "$@"; do
[ -z "$DNAME" ] && fatal "remove_landesk_file(${DNAME}) must be passed a valid filek name"
# remove the landesk directory named:
if [ -f "/usr/local/LANDesk/${DNAME}" ]; then
echo "removing LANDesk file: $DNAME"
rm -f "/usr/local/LANDesk/${DNAME}"
[ "$?" != "0" ] && ( echo "ERROR: failed to remove file: ${DNAME} \n\t$!"; exit 1 )
((REMOVED++))
fi
if [ -f "/usr/LANDesk/${DNAME}" ]; then
echo "removing LANDesk file: $DNAME"
rm -f "/usr/LANDesk/${DNAME}"
[ "$?" != "0" ] && ( echo "ERROR: failed to remove file: ${DNAME} \n\t$!"; exit 1 )
((REMOVED++))
fi
if [ -f "/opt/landesk/${DNAME}" ]; then
echo "removing LANDesk file: $DNAME"
rm -f "/opt/landesk/${DNAME}"
[ "$?" != "0" ] && ( echo "ERROR: failed to remove file: ${DNAME} \n\t$!"; exit 1 )
((REMOVED++))
fi
done
}
function remove_landesk_links()
{
for DNAME in "$@"; do
[ -z "$DNAME" ] && fatal "remove_landesk_link(${DNAME}) must be passed a valid symlink name"
# remove the landesk directory named:
if [ -h "/usr/local/LANDesk/${DNAME}" ]; then
echo "removing LANDesk link: $DNAME"
rm -f "/usr/local/LANDesk/${DNAME}"
[ "$?" != "0" ] && ( echo "ERROR: failed to remove link: ${DNAME} \n\t$!"; exit 1 )
((REMOVED++))
fi
if [ -h "/usr/LANDesk/${DNAME}" ]; then
echo "removing LANDesk link: $DNAME"
rm -f "/usr/LANDesk/${DNAME}"
[ "$?" != "0" ] && ( echo "ERROR: failed to remove link: ${DNAME} \n\t$!"; exit 1 )
((REMOVED++))
fi
if [ -h "/opt/landesk/${DNAME}" ]; then
echo "removing LANDesk link: $DNAME"
rm -f "/opt/landesk/${DNAME}"
[ "$?" != "0" ] && ( echo "ERROR: failed to remove link: ${DNAME} \n\t$!"; exit 1 )
((REMOVED++))
fi
done
}
function remove_sharedtech()
{
remove_Preferences com.landesk.cba8.plist
remove_Preferences com.landesk.msgsys.plist
remove_Preferences com.landesk.broker.plist
if [ -e /Library/StartupItems/cba8/cba8 ]; then
/Library/StartupItems/cba8/cba8 stop
fi
remove_startup cba8
remove_LaunchDaemon com.landesk.pds.plist
remove_LaunchDaemon com.landesk.pds1.plist
remove_LaunchDaemon com.landesk.pds2.plist
remove_LaunchDaemon com.landesk.msgsys.plist
remove_LaunchDaemon com.landesk.cba8.plist
remove_LaunchDaemon com.landesk.broker.plist
remove_LaunchDaemon com.landesk.rotatelog.plist
remove_LaunchDaemon com.landesk.reboot.plist
remove_LaunchDaemon com.landesk.vulscan.plist
remove_LaunchDaemon com.landesk.dispatch.plist
remove_LaunchDaemon com.landesk.ldlaunch_daemon.plist
remove_LaunchDaemon com.landesk.scheduler.plist
remove_LaunchDaemon com.landesk.ldwatch.plist
remove_LaunchAgent com.landesk.ldusermenu.plist
remove_LaunchAgent com.landesk.hideScreen.plist
remove_LaunchAgent com.landesk.ldswprogress.plist
remove_LaunchAgent com.landesk.remotelaunch.plist
remove_LaunchAgent com.landesk.dispatch.pl.plist
remove_LaunchAgent com.landesk.dispatch.ui.plist
remove_LaunchAgent com.landesk.dispatch.sui.plist
remove_LaunchAgent com.landesk.ldlaunch_daemon.plist
remove_LaunchAgent com.landesk.ldNotificationMonitor.plist
remove_LaunchAgent com.landesk.logged_in.plist
remove_LaunchAgent com.landesk.logged_out.plist
remove_LaunchAgent com.landesk.ldwatch.plist
remove_LaunchAgent com.landesk.ldNotificationMonitor.plist
remove_LaunchAgent com.landesk.lockscreen.plist
echo "removing SharedTech: "
remove_landesk_files common/{addhandler,makekey,sha1tool,shutdownhandler.sh}
remove_landesk_files common/{reboothandler.sh,cba8_uninstall.sh,alert}
remove_landesk_files common/{resetguard,cba,proxyhost,ldpgp}
remove_landesk_files common/{alertrender,postbsa,ldnacgi,httpclient,ldpds1}
remove_landesk_files common/{brokerconfig,pds2_uninstall.sh,pds2d,pds2dis,poweroff.exe,uniqueid}
remove_landesk_files common/cbaroot/certs/064eb6a5.0
remove_landesk_files common/cbaroot/allowed/{cba8.crt,logodk.gif,hdr_lsdk.gif,ldping,index.tmpl}
remove_landesk_files common/cbaroot/services/{filexfer,exec}
remove_landesk_files common/cbaroot/alert/alert.xml
remove_landesk_files common/stop.time
remove_landesk_files common/start.time
remove_landesk_links /bin/{addhandler,alert,cba,alertrender,makekey,httpclient,ldpgp,ldping,proxyhost}
remove_landesk_links /bin/{resetguard,sha1tool,shutdownhandler.sh,reboothandler.sh,postbsa,ldnacgi,httpclient}
cd /opt/landesk/
STRING_FILES=`ls common/*strings.xml`
for FILENAME in $STRING_FILES; do
remove_landesk_files ${FILENAME}
done
#rm -f /opt/landesk/bin/{addhandler,makekey,sha1tool,shutdownhandler.sh,reboothandler.sh,cba8_uninstall.sh}
#rm -f /opt/landesk/bin/{aler,resetguard,cba,proxyhost,ldpgp,alertrender,postbsa,ldnacgi,httpclient}
#rm -f /opt/landesk/etc/cbaroot/certs/064eb6a5.0
#rm -f /opt/landesk/etc/cbaroot/allowed/{cba8.crt,logodk.gif,hdr_lsdk.gif,ldping,index.tmpl}
#rm -f /opt/landesk/etc/cbaroot/services/{filexfer,exec}
#rm -f /opt/landesk/etc/cbaroot/alert/alert.xml
#rm -f /opt/landesk/bin/{addhandler,alert,cba,alertrender,makekey,httpclient,ldpgp,ldping,proxyhost}
#rm -f /opt/landesk/bin/{resetguard,sha1tool,shutdownhandler.sh,reboothandler.sh,postbsa,ldnacgi,httpclient}
[ -e /etc/pam.d/cba8 ] && rm -f /etc/pam.d/cba8
[ -e /etc/xinetd.d/cba8 ] && rm -f /etc/xinetd.d/cba8
remove_landesk_dir common/cbaroot
remove_landesk_dir Resources
remove_landesk_dir common
/usr/bin/killall -HUP xinetd
}
function remove_crontab()
{
# remove the crontab
local crontabTag="# ldms" # used to determine if the crontab file has already setup
local installed=`sudo crontab -l -u root | grep -c '# ldms'`
if [ $installed -gt 0 ]; then
sudo crontab -l | sed '/ldms/d' | sudo crontab -
fi
}
function remove_firewall()
{
# remove the port exceptions we put in the firewall at installation
if [ -e "/Library/Preferences/com.apple.sharing.firewall.plist" ]; then
local saveDir=`pwd`
cd /Library/Application\ Support/LANDesk/bin/
echo `pwd`
echo "Removing LANDesk Remote Control port exceptions"
sudo ./ldxmlutil -d -f /Library/Preferences/com.apple.sharing.firewall.plist -k "/firewall/LANDesk Remote Control"
echo "Removing LANDesk Trageted Multicast port exceptions"
sudo ./ldxmlutil -d -f /Library/Preferences/com.apple.sharing.firewall.plist -k "/firewall/LANDesk Targeted Multicast"
echo "Removing LANDesk CBA8 port exceptions"
sudo ./ldxmlutil -d -f /Library/Preferences/com.apple.sharing.firewall.plist -k "/firewall/LANDesk CBA8"
cd $saveDir
echo `pwd`
fi
if [ -e "/System/Library/PrivateFrameworks/NetworkConfig.framework/Versions/Current/Resources/firewalltool" ]; then
sudo /System/Library/PrivateFrameworks/NetworkConfig.framework/Versions/Current/Resources/firewalltool
else
echo "Warning the firewall must be restarted"
fi
}
function remove_framework()
{
# remove agent framework
echo "Removing agent framework"
remove_flat_receipt "LANDeskAgentFramework.pkg"
remove_database_receipt "LANDeskAgent.framework"
remove_framework_dir "LANDeskAgent.framework"
}
function remove_pkg_receipts()
{
remove_flat_receipt "ldslm.pkg"
remove_flat_receipt "agentconfig.pkg"
remove_flat_receipt "brokerconfig.pkg"
remove_flat_receipt "vulscan.pkg"
remove_flat_receipt "swd.pkg"
remove_flat_receipt "stuffitutility9.pkg"
remove_flat_receipt "stuffitutility10.pkg"
remove_flat_receipt "sharedtech.pkg"
remove_flat_receipt "remotecontrol.pkg"
remove_flat_receipt "ldusermenu.pkg"
remove_database_receipt "com.landesk.agent.sharedtech"
remove_database_receipt "com.landesk.stuffitutility9"
remove_database_receipt "com.landesk.stuffitutility10"
remove_database_receipt "com.landesk.agent.configui"
remove_database_receipt "com.landesk.agent.ldslm"
remove_database_receipt "com.landesk.agent.remotecontrol"
remove_database_receipt "com.landesk.agent.swd"
remove_database_receipt "com.landesk.agent.vulscan"
remove_database_receipt "com.landesk.agent.brokerconfig"
remove_database_receipt "com.landesk.agent.ldusermenu"
}
function remove_config_app()
{
DNAME=$1
[ -z "$DNAME" ] && fatal "remove_config_apps(${DNAME}) must be passed a valid dir name"
# remove the landesk directory named:
if [ -d "/Applications/Utilities/${DNAME}" ]; then
echo "removing LANDesk application: $DNAME"
rm -rf "/Applications/Utilities/${DNAME}"
[ "$?" != "0" ] && ( echo "ERROR: failed to remove file: ${DNAME} \n\t$!"; exit 1 )
((REMOVED++))
fi
}
function remove_Fuze()
{
DNAME=$1
[ -z "$DNAME" ] && fatal "remove_config_apps(${DNAME}) must be passed a valid dir name"
# remove the landesk directory named:
if [ -d "/Applications/${DNAME}" ]; then
echo "removing LANDESK: $DNAME"
rm -rf "/Applications/${DNAME}"
[ "$?" != "0" ] && ( echo "ERROR: failed to remove file: ${DNAME} \n\t$!"; exit 1 )
((REMOVED++))
fi
}
function remove_baseagent()
{
#remove baseagent
remove_flat_receipt "baseagent.pkg"
remove_database_receipt "baseagent"
remove_landesk_files common/{sendstatus,alertsync,ldcron,lddaemon,ldwatch,ldiscan,ldxmlutil}
remove_landesk_files common/{ldpds1,brokerconfig,pds2_uninstall.sh,pds2d,pds2dis,poweroff.exe,uniqueid}
remove_landesk_links bin/{sendstatus,alertsync,ldcron,lddaemon,ldwatch,ldiscan,ldxmlutil}
remove_LaunchDaemon com.landesk.ldwatch.plist
remove_Preferences com.landesk.ldms.plist
# remove preference panes
remove_PreferencePane "LANDesk Agent"
remove_PreferencePane "LANDesk Client"
remove_startup LANDesk
remove_application_support_application LANDesk
remove_config_app "LANDesk Agent.app"
remove_landesk_dir data common
}
function remove_gateway()
{
remove_config_app "LANDesk Management Gateway.app"
}
function remove_tmc()
{
remove_LaunchDaemon com.landesk.ldtmc.plist
}
function remove_swd()
{
remove_LaunchDaemon com.landesk.remote.plist
remove_landesk_links common/{ldgidget,ldkahuna,sdclient}
}
function remove_rc()
{
echo "removing rc files"
}
function remove_ldav()
{
# only remove if we installed application
# check /Library/LaunchDaemons/com.landesk.ldav.plist for Disabled
# this will only be set to false if Kaspersky was installed by ldinstallav
output=""
if [ -e /Library/LaunchDaemons/com.landesk.ldav.plist ]; then
output=`/usr/libexec/PlistBuddy -c "print Disabled" /Library/LaunchDaemons/com.landesk.ldav.plist`
if [ "$?" -eq "0" ] && [ "$output" == "false" ]; then
echo "detected /Library/LaunchDaemons/com.landesk.ldav.com:Disabled = ${output}"
echo "Uninstall Kaspersky AV"
if [ -e '/Library/Application Support/LANDesk/bin/ldinstallav' ]; then
/Library/Application\ Support/LANDesk/bin/ldinstallav /uninstall
fi
if [ -e '/Library/Application Support/Kaspersky Lab' ]; then
rm -rf '/Library/Application Support/Kaspersky Lab'
fi
fi
fi
remove_LaunchDaemon com.landesk.ldav.plist
remove_LaunchAgent com.landesk.ldav.agent.plist
}
function cleanup_directories()
{
echo "Attempting to remove directory structure..."
ECNT=0
if [ -d "/usr/local/LANDesk" ]; then
if [ $CLEAN -ne 0 ]; then
rm -rf "/usr/local/LANDesk"
return;
fi
if [ -d "/usr/local/LANDesk/common" ]; then
rmdir "/usr/local/LANDesk/common"
[ $? -eq 0 ] && ((ECNT++))
fi
if [ -d "/usr/local/LANDesk/bin" ]; then
rmdir "/usr/local/LANDesk/bin"
[ $? -eq 0 ] && ((ECNT++))
fi
if [ $ECNT -eq 0 ]; then
rmdir "/usr/local/LANDesk";
fi
fi
if [ -d "/usr/LANDesk" ]; then
if [ $CLEAN -ne 0 ]; then
rm -rf "/usr/LANDesk"
return;
fi
if [ -d "/usr/LANDesk/common" ]; then
rmdir "/usr/LANDesk/common"
[ $? -eq 0 ] && ((ECNT++))
fi
if [ -d "/usr/LANDesk/bin" ]; then
rmdir "/usr/LANDesk/bin"
[ $? -eq 0 ] && ((ECNT++))
fi
if [ $ECNT -eq 0 ]; then
rmdir "/usr/LANDesk";
fi
fi
if [ -d "/opt/landesk" ]; then
if [ $CLEAN -ne 0 ]; then
rm -rf "/opt/landesk"
return;
fi
if [ -d "/opt/landesk/common" ]; then
rmdir "/usr/local/LANDesk/common"
[ $? -eq 0 ] && ((ECNT++))
fi
if [ -d "/opt/landesk/bin" ]; then
rmdir "/usr/local/LANDesk/bin"
[ $? -eq 0 ] && ((ECNT++))
fi
if [ $ECNT -eq 0 ]; then
rmdir "/opt/landesk";
fi
fi
[ -e /tmp/postinstaller ] && rm -f /tmp/postinstaller
[ -e /tmp/LDMSClient.mpkg.zip ] && rm -f /tmp/LDMSClient.mkpg.zip
[ -e /tmp/LDMSClient.mpkg ] && rm -f /tmp/LDMSClient.mkpg
}
function killAllProcs( )
{
sudo /usr/bin/killall $1
/bin/ps ax | /usr/bin/grep $1 | grep -v grep | /usr/bin/awk '{print $1}' | /usr/bin/xargs sudo kill -9
}
function stop_processes()
{
# stop our processes
if [ -e "/Library/LaunchDaemons" ]; then
[ -f /bin/launchctl ] && /bin/launchctl unload /Library/LaunchDaemons/com.landesk.*
[ -f /bin/launchctl ] && /bin/launchctl unload /Library/LaunchAgents/com.landesk.*
killAllProcs "ldslm"
killAllProcs "ldtmc"
killAllProcs "ldcron"
killAllProcs "lddaemon"
killAllProcs "LDUserMenu"
killAllProcs "ldremotelaunch"
killAllProcs "ldNotificationMonitor"
killAllProcs "LANDesk Agent"
killAllProcs "ldav"
else
killAllProcs "ldwatch"
killAllProcs "ldcba"
killAllProcs "ldslm"
killAllProcs "ldremote"
killAllProcs "ldtmc"
killAllProcs "ldcron"
killAllProcs "lddaemon"
fi
}
function remove_crashlogs()
{
# remove user crash logs
local loglist="ldcba ldremote ldscan ldwatch ldorwell ldobserve ldremotemenu"
for app in $loglist
do
if [ -e "~/Library/Logs/CrashReporter/$app.crash.log" ]; then
echo " removing user $app.crash.log"
sudo rm "~/Library/Logs/CrashReporter/$app.crash.log"
((REMOVED++))
fi
if [ -e "/Library/Logs/CrashReporter/$app.crash.log" ]; then
echo " removing system $app.crash.log"
sudo rm "/Library/Logs/CrashReporter/$app.crash.log"
((REMOVED++))
fi
done
}
function remove_pidfiles()
{
if [ -e "/var/run/landesk" ]; then
echo " removing pid files"
sudo rm -r "/var/run/landesk"
((REMOVED++))
fi
}
function remove_xinetd_files
{
# remove Xinet files
local doomedFiles="LANDeskCBA ldpds1 ldpds2 cba8 pds2"
for target in $doomedFiles; do
if [ -e "/etc/xinetd.d/$target" ]; then
echo " removing $target xinet files"
sudo rm "/etc/xinetd.d/$target"
((REMOVED++))
fi
done
}
function remove_netinfo_entries()
{
# get our system version
local sysVersion=$(uname -r)
local sysMajorVersion=${sysVersion%%.*}
local tempMinorVersion=${sysVersion#*.}
local sysMinorVersion=${tempMinorVersion%%.*}
if [ $sysMajorVersion -lt 8 ] ; then
echo "Uninstaller: Uninstalling Jaguar and Panther items"
sudo nicl . -delete /services/pds
sudo nicl . -delete /services/pds1
sudo nicl . -delete /services/pds2
sudo nicl . -delete /services/cba8
sudo nicl . -delete /services/msgsys
else
echo "Uninstaller: Uninstalling Tiger or later items"
sudo dscl . -delete /services/pds
sudo dscl . -delete /services/pds1
sudo dscl . -delete /services/pds2
sudo dscl . -delete /services/cba8
sudo dscl . -delete /services/msgsys
fi
}
function remove_service_entries()
{
echo " removing services entries"
sudo cp -f /etc/services /etc/services.bak
sudo /bin/sh -c 'sed -e /cba8/d -e /pds/d -e /pds1/d -e /pds2/d -e /msgsys/d /etc/services.bak > /etc/services'
sudo rm /etc/services.bak
}
function remove_inet_entries()
{
echo " removing inet entries"
sudo cp -f /etc/inetd.conf /etc/inetd.conf.bak
sudo /bin/sh -c 'sed -e /cba8/d -e /pds/d -e /pds1/d -e /pds2/d -e /msgsys/d /etc/inetd.conf.bak > /etc/inetd.conf'
sudo rm /etc/inetd.conf.bak
}
function update_xinetd()
{
if [ -e "/var/run/xinetd.pid" ]; then
echo " hupping xinetd"
sudo /usr/bin/killall -HUP xinetd
sudo /bin/sleep 5
fi
if [ ! -e "/var/run/xinetd.pid" ]; then
# If not Xinet, restart it. (The HUP might kill it if there are no services.)
echo " restarting xinetd"
sudo xinetd -pidfile /var/run/xinetd.pid
fi
}
### main ###
for arg in "$@"; do
case "$arg" in
-c)
CLEAN=1
;;
-h)
show_help
exit 1
;;
esac
done
#uninstall ldav to ensure Kaspersky gets uninstalled and agents unloaded properly
remove_ldav
#unload launch agents to ensure are stopped in the proper context
unload_LaunchAgent com.landesk.remotelaunch.plist
unload_LaunchAgent com.landesk.usermenu.plist
unload_LaunchAgent com.landesk.ldNotificationMonitor.plist
unload_LaunchAgent com.landesk.ldusermenu.plist
unload_LaunchAgent com.landesk.dispatch.ui.plist
unload_LaunchAgent com.landesk.dispatch.sui.plist
unload_LaunchAgent com.landesk.ldlaunch_daemon.plist
unload_LaunchAgent com.landesk.ldwatch.plist
unload_LaunchAgent com.landesk.lockscreen.plist
unload_LaunchAgent com.landesk.ldlogged_in.plist
unload_LaunchAgent com.landesk.ldlogged_out.plist
unload_LaunchAgent com.landesk.usermenu.plist
stop_processes
remove_crontab
remove_firewall
remove_tmc
remove_rc
remove_swd
remove_baseagent
remove_framework
remove_gateway
remove_sharedtech
remove_pkg_receipts
remove_crontab
remove_firewall
cleanup_directories
remove_crashlogs
remove_pidfiles
remove_xinetd_files
remove_netinfo_entries
remove_service_entries
remove_inet_entries
remove_Fuze "LANDESK Fuse.app"
remove_Fuze "BridgeIT.app"
update_xinetd
defaults delete /Library/Preferences/com.apple.SoftwareUpdate CatalogURL
echo "Cleanup complete: $REMOVED elements were removed."
# vim:ts=4:sw=4
Mac & how to uninstall LANDesk的更多相关文章
- mac上如何卸载oracle jdk 1.7
目前mac上有一些软件还不支持jdk1.7,只能卸载1.7,恢复到1.6,下面二个链接是官网给出的卸载方法: http://www.java.com/zh_CN/download/help/mac_u ...
- How do I uninstall Java 7 and later versions on my Mac?
How do I uninstall Java 7 and later versions on my Mac? http://www.java.com/en/download/help/mac_uni ...
- Uninstall or Disable Java on a Mac
You can run Java apps in two ways. The first is to run Java applets inside your Web browser with a p ...
- How to uninstall Maya on a Mac
How to uninstall Maya on a Mac Products and versions covered By: Support Jun 15 2018 SHARE ADD TO ...
- Complete uninstall on Mac, HELP!
Remove these directories: /Applications/Xamarin Studio.app /Developer/MonoTouch /Developer/MonoAndro ...
- Uninstall Office 2016 for Mac
官方原文:https://support.office.com/en-us/article/Uninstall-Office-2016-for-Mac-eefa1199-5b58-43af-8a3d- ...
- Mac入门(三)使用brew安装软件
brew 又叫Homebrew,是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件, 只需要一个命令, 非常方便 brew类似ubuntu系统下的apt-get的功能 阅读目录 ...
- Mac 开发者常用的工具
转载:http://www.oschina.net/news/53946/mac-dev-tools 在写 Mac 程序员的十个武器之前,我决定先讲一个故事,关于 Mac 和爱情的.(你们不是问 Ma ...
- Mac OS使用brew安装Nginx、MySQL、PHP-FPM的LAMP开发环境
准备工作 新版的 Mac OS 内置了Apache 和 PHP,我的系统版本是OS X 10.9.3,可以通过以下命令查看Apache和PHP的版本号: httpd -v Server version ...
随机推荐
- 20155330 2016-2017-2《Java程序设计》课程总结
20155330 2016-2017-2<Java程序设计>课程总结 目录 每周作业链接汇总 实验报告链接汇总 代码托管 课堂项目实践 课程收获与不足 问卷调查 给出你的总结中涉及到的链接 ...
- 一个命令安装lnmp
安装LNMP执行:wget -c http://soft.vpser.net/lnmp/lnmp1.3-full.tar.gz && tar zxf lnmp1.3-full.tar. ...
- Repo 的使用小结
一.安装 创建目录和修改环境变量 $ mkdir ~/bin $ PATH=~/bin:$PATH 下载repo代码 $ curl https://storage.googleapis.com/git ...
- OpenCL入门:(三:GPU内存结构和性能优化)
如果我们需要优化kernel程序,我们必须知道一些GPU的底层知识,本文简单介绍一下GPU内存相关和线程调度知识,并且用一个小示例演示如何简单根据内存结构优化. 一.GPU总线寻址和合并内存访问 假设 ...
- Python3中IO文件操作的常见用法
首先创建一个文件操作对象: f = open(file, mode, encoding) file指定文件的路径,可以是绝对路径,也可以是相对路径 文件的常见mode: mode = “r” # ...
- 用Micro:bit做剪刀、石头、布游戏
剪刀.石头.布游戏大家都玩过,今天我们用Micro:bit建一个剪刀.石头.布游戏! 第一步,起始 当你摇动它时,我们希望the micro:bit选择剪刀.石头.布.尝试创建一个on shake b ...
- 抓包工具Charles学习总结
最近由于工作需要对App进行测试,功能方面还好说,但是在网络测试方面遇到了一些问题.由于公司App是使用https进行通信,直接在路由器上抓包下来,数据包都是加密的,没法看到接口返回的内容,给测试的B ...
- JUC——JUC开发简介(一)
前言 JUC是Java5.0开始提供的一组专门实现多线程并发处理的开发框架,利用JUC开发架构可以有效的解决实际线程项目开发之中出现的死锁.阻塞.资源访问与公平机制. 此笔记主要记录java.util ...
- 使用Photon引擎进行unity网络游戏开发(三)——网络游戏大厅及房间
使用Photon引擎进行unity网络游戏开发(三)--网络游戏大厅及房间 Photon PUN Unity 网络游戏开发 连接到Photon ConnectUsingSettings 设置你的客户端 ...
- P,V操作及同步互斥实例
无论是计算机考研.计算机软件水平考试.计算机操作系统期末考试还是其他计算机岗位考试,P.V原语操作都是一个常考点.下面笔者总结了关于P.V操作的一些知识. 信号量是最早出现的用来解决进程同步与互斥问题 ...