Skip to main content

I'm a little annoyed that Adobe's RemoteUpdateManager (RUM) doesn't upgrade our CC 2015 Mac labs to CC 2017, forcing me to get rid of CC 2015 and install CC 2017 from the package file I created with Adobe CCP (Creative Cloud Packager). I looked at the CC Cleaner Tool and found it was unreliable and didn't fully remove all things Adobe CC related. So I've written a rather primitive little shell script and it works, mostly, but a few extra niceties would be nice, no pun intended. I thought I would share it here and perhaps some of us could enhance it. I noticed even after running it there were a couple of Adobe processes running on the system I was using for testing:

USER              PID  %CPU %MEM      VSZ    RSS   TT  STAT STARTED      TIME COMMAND
root              107   0.1  0.0   661668   4904   ??  Ss    6:00AM   0:09.61 /Library/Application Support/Adobe/Adobe Desktop Common/ElevationManager/AdobeUpdateDaemon
imagemaster     10952   0.0  0.1  2595832  12540   ??  S     3:35PM   0:00.04 /Library/Application Support/Adobe/AdobeGCClient/AdobeGCClient.app/Contents/MacOS/AdobeGCClient --xmlFilePath=/tmp/adobegc_an0VSr --workflowInitiator=CSUpdater

Script:

#!/bin/sh

# To undo what the Adobe CC installer does:

rm -Rf /Applications/Adobe*
rm -Rf /Applications/Utilities/Adobe*
rm -Rf /Library/Application Support/Adobe*
rm -Rf /Library/Application Support/Mozilla/Extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}
rm -Rf /Library/Application Support/regid.1986-12.com.adobe

rm -Rf /Library/Automator/Save as Adobe PDF.action

rm -Rf /Library/Internet Plug-Ins/AdobePDFViewer.plugin
rm -Rf /Library/Internet Plug-Ins/AdobePDFViewerNPAPI.plugin

# Remove LaunchAgents that were installed

launchctl remove /Library/LaunchAgents/com.adobe.AAM.Updater-1.0.plist
launchctl remove com.adobe.ARMDCHelper*

# Delete those plists so they don't load again

rm -Rf /Library/LaunchAgents/com.adobe.AAM.Updater-1.0.plist
rm -Rf /Library/LaunchAgents/com.adobe.ARMDCHelper*

# Remove LaunchDaemons that were installed

launchctl remove /Library/LaunchDaemons/com.adobe.adobeupdatedaemon.plist
launchctl remove /Library/LaunchDaemons/com.adobe.adobeupdatedaemon.plist
launchctl remove /Library/LaunchDaemons/com.adobe.ARMDC.Communicator.plist
launchctl remove /Library/LaunchDaemons/com.adobe.ARMDC.SMJobBlessHelper.plist

# Delete those plists so they don't load again on reboot

rm -Rf /Library/LaunchDaemons/com.adobe.adobeupdatedaemon.plist
rm -Rf /Library/LaunchDaemons/com.adobe.adobeupdatedaemon.plist
rm -Rf /Library/LaunchDaemons/com.adobe.ARMDC.Communicator.plist
rm -Rf /Library/LaunchDaemons/com.adobe.ARMDC.SMJobBlessHelper.plist

rm -Rf /Library/Logs/Adobe*
rm -Rf /Library/Logs/CreativeCloud*

rm -Rf /Library/PDF Services

rm -Rf /Library/Preferences/com.adobe*
rm -Rf /Library/Preferences/com.Adobe*

rm -Rf /Library/PriviledgedHelperTools/com.adobe*

rm -Rf /Library/ScriptingAdditions/Adobe*

rm -Rf /private/var/root/Library/Application Support/Adobe*
rm -Rf /private/var/root/Library/Logs/Adobe*
rm -Rf /private/var/root/Library/Logs/CreativeCloud*
rm -Rf /private/var/root/Library/Preferences/Adobe*

# Remove RUM

rm -Rf /usr/local/bin/RemoteUpdateManager

# Remove crud saved in Users
# Probably need to loop through users here instead of brute force

rm -Rf /Users/admin/Library/Application Support/Adobe
rm -Rf /Users/admin/Library/Logs/CreativeCloud
rm -Rf /Users/admin/Library/Logs/PDApp.log

rm -Rf /Users/admin/Library/Preferences/Adobe*
rm -Rf /Users/admin/Library/Preferences/com.adobe*
rm -Rf /Users/admin/Library/Preferences/Macromedia*

# Remove crud from /Users/Shared

rm -Rf /Users/Shared/Adobe*

exit 0

@endor-moon thank you for this script. Will help a ton. The only thing i changed was with the user's folders. Need to put wildcard in to delete the crud from all the user's folders(if needed).

So instead of: rm -Rf /Users/admin/Library/Application Support/Adobe
Now: rm -Rf /Users/*/Library/Application Support/Adobe

Thank you


Wanted to circle back, finally got around to hitting some requests to deploy security patches for Adobe CS/CC apps.

The issue with these apps, as always are:

  1. Patch can potentially change install path, leaving vulnerable untouched, so we have to find a way to remove.
  2. Old version that needs to be removed can be CS6, CC2015 or CC2017, so need a reliable way to handle removal of any of those versions.

As is the case whenever a new version of Adobe CS/CC is released, we open a ticket to ask the same question (due diligence).

The response we got from Adobe this time around was refreshing optimistic, compared to the response we got when CC2015 was released. :)

Hi Don, For CC versions you should use uninstall the package from CCP. There is no way to reliably, comprehensively and silently remove older versions than that. Thanks, XXXXXXXX

Since Adobe's dev team seem to feel it is a good idea to sometimes change the path to an application, the issue we run into is where this app:

/Applications/Adobe FancyApp CC 2017/Adobe FancyApp CC 2017.app

...is updated to

/Applications/Adobe FancyApp CC 2017.1/Adobe FancyApp CC 2017.app

...or

/Applications/Adobe FancyApp CC 2017/Adobe FancyApp CC 2017.1.app

...or

/Applications/Adobe FancyApp CC 2017.1/Adobe FancyApp CC 2017.1.app

...and you're left with the vulnerable version AND the updated version both installed.

So its good to see CC2015/CC2017 "Uninstallers" work (of course we'll have to see), but not surprised that older CS uninstalls are a crap shoot.

For CS versions, we'll resort to the usual BFH, witchcraft, and secret sauce to get those removed.


I've had issues using the built uninstaller with the package I made, but I found the individually generated uninstallers, worked alot better.


Just and FYI. You can use pkill obe instead of pgrep obe | yada yada. Saves a pipe and an xargs. Keepin it simple.

Cheers. J


Looking for a way to remove 2017 before going to 2018 now would this script still work for that?


@mattmcchesney I was able to get this to work. I first went back to the creative cloud packager and created an uninstaller. Once I had that uninstaller created I then used composer and created a .dmg of that unistaller folder by doing the following.

  1. Open Composer
  2. Drag the executable to Sources in Composer
  3. Create a DMG from the executable
  4. Upload the DMG to Casper Admin

I then created a policy to install the DMG on a test computer. Then I was able to execute the exec from the uninstaller by running a command that directs to the path. That command can be put in the Files and Processes payload where it says Execute Command. The path that you need to place in the Files and Processes payload is the path to where the executable is located.

I hope this helps.


@MattCasper I am having the same issue you was having. Did you ever get it to work from 2017 to 2018??


@dsweigart I took the same approach you did and everything seemed to work. Im looking at the cleanup scripts above to see if those files got left behind and sure enough they did.

Did you bother to cleanup anything or just run the uninstaller?

Did you install a newer version afterwards and did it install correctly?

Thanks

Mark


@msnowdon I just ran the uninstaller and then in a separate package via Self Service we installed 2018 and that installed correctly. Let me know if you have any other questions.


@dsweigart Just an update. I ended up bundling the uninstaller and the new package into a dmg file. The policy places the dmg file in a temp folder and I have a script to run the uninstall package, pause for 5 minutes and install the new package.

Tested it and it works!

Thanks


@msnowdon That's awesome! You're welcome.


@dsweigart i had to remove CS6 CC2015 and CC2017 installations while CC2018 had to remain, followed your instructions for removing CC2015 and CC2017 , for CS6 i used an Adobe script to remove it, combined both in 1 policy worked like a charm.
Only some folders remained because of plugins but that was easily solved.
thx for he tip, it was life saving.


You’re welcome @ateazzie