Removing Adobe CC 2015 in preparation for CC 2017

Contributor II

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:

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/ --xmlFilePath=/tmp/adobegc_an0VSr --workflowInitiator=CSUpdater



# 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/

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

Contributor II

Definitely know what you are going through. Had to write my own Adobe "Nuke" script for when we went from 2015 - 2016 with a new license.

All of the Adobe cleaner and uninstall tools are incredibly unreliable. Even an uninstall policy with Casper using a snapshot created package won't remove everything properly.

Contributor II

@PatrickD Yes, and simple deletion of files ignores the fact that many things installed are referred to by other things, like PDF plug-ins for example, where deleting the plug-in without updating the software that calls it may break something. However, the brute-force approach is working for me at the present. The goal is to remove enough so that we don't error out while installing. The installer file is so large there is no point trying to set a policy for this so I'm doing it manually. (I meant 2015-16 when I said 2015, as in August, when I installed the software in our Mac labs, most apps still had 2015 in the name.)

Feel free to share your script unless it has too much proprietary information.

New Contributor III

Does your customers/users not have plug-in and additional fonts they are using on top of ACC 2015 series???

As this is a great bash script. That will nuke the problem for sure. When installing ACC 2017. But I have found in my work place some of my customers. Have a need for those ACC 2014,2015,2016, version.

Have you called adobe to see if they could work with you on building a Self Service uninstall policy? To allow for the version the customers/users do not need for sure.

Esteemed Contributor II

@PatrickD in the words of the great @jodyrodgers (when he worked for Adobe)...if you've got to remove an old(er) version of Adobe Creative Suite...wipe/re-image the Mac.

Not was the best advice ever, since a cocktail containing their downloadable Creative Suite removal script, along with their AAMEE Uninstaller PKG, along with our own custom script, couldn't wipe all the Adobe crap off the Macs.

Its amazing how much better it is now...but yea, not sure how effective their CCP Uninstaller PKGs are, since their installers are more or less hacks...wrapped in pretty PKGs. :)


Contributor III

Creative Cloud Packager has the ability to create an uninstaller for all CC products. Might be worth a try!



Valued Contributor II

I tried building that file uninstaller (checking all) it just dumps a script out, which worries me that it's the same thing as their cleaner tool..

I'll have to check it out today.

Contributor II

@KDE82, no our customers don't have any plug-ins because we are an educational institution and our customers are basically students and faculty.

@stevevalle, no I haven't tried the uninstall package creation option in CCP but I suppose it might be worth investigating. Given that @jwojda is going to check it out, perhaps I will wait for his update. Interesting to note the output is a script though I suppose that's what most uninstallers are.

Honored Contributor

I had to deal with going from CC 2014 and CC 2015. The Uninstall packages that CCP generates is the way to go when it comes to uninstalling older versions of Adobe apps. This process has not changed with CC 2017 from what I can tell and in fact they have made it easier because you can now generate installers with CCP (whereas before CCP generated them but only with the installers; now you can create uninstallers only).

New Contributor III

@stevevalle thanks

Contributor II

I guess the next step is to ask the stupid question, can I get Casper to automate CC 2015/16 removal and installation of CC 2017? I was almost finished the first of our 4 Mac labs when I realized there were several updates pending and Adobe has released a new 3D product called Felix which I had added to a new pkg file created with Adobe CCP. Which means I have to deploy a second pkg to install that as well as running RUM to install the pending updates. Whew, an admin's work is never done.

I created an uninstall package today in CCP. Just wondering if it will work for CC 2015/16.

New Contributor III

Well it is in your lab. Right? Just pull the Jamf.logs before and after the uninstall. The worst thing is you reimage that mac

Valued Contributor

This is fabulous. Thanks for sharing guys. I just finished making our 2017 packages yesterday. This script will help a lot.

@endor-moon Is a restart required after running the above script?

New Contributor

I love this forum!

I'm about to embark on the same quest to get Adobe CC 2017 installed.

Question I have, does it really matter to much about the odd adobe files left over if you are going to install 2017 back on to the macs again?

The test I have done on one mac was to run the uninstaller pkg you get when you create an install package with ccp. It seemed to uninstall it fine when run by casper remote and now the new CC 2017 package has installed fine.

So is there any need to remove every last file with a script?

Excuse my ignorance.

Many thanks

Valued Contributor

I take a hybrid approach. I'll run the Adobe un-installers on a few test boxes to see what cruft is left behind. From there I will right a shell script that runs after the uninstaller but before the new install that will deletes what the un-installer does not. Has worked well enough where I have done in-place upgrades in all our labs to the newest version of Creative Cloud for the last two version updates without any failures. I am a novice shell-scripter at best but so far so good... I'll be testing to deploy CC 2017 to our labs during the January break soon.

EDIT: Also the script posted here is a little bit too much brute force for my liking if you have other Adobe products installed on the system, such as Flash Player, Adobe Acrobat/Reader, Shockwave Player, etc. They all have files installed into /Library/Application Support/Adobe as well, so if you just do a full delete on that folder other non Adobe CC software is going to break.

Valued Contributor

@taugust04 Do you mind sharing your script here as well?


@ooshnoo I don't mind at all - I'll post after cleaning it up and testing has been done over the next couple of weeks.

Contributor II

As @taugust04 suggested, I'm taking the hybrid approach as well. Now I run Adobe's uninstaller that was generated by CCP. Then I run my script (see above). Then I use:

pgrep obe find the process ID of the last Adobe process that is still running. Then I run the kill command to stop that process:

kill -9 95

(The 95 in the above is the id you get back from pgrep.)


Valued Contributor

So here is my script that seems to be working well, with a couple of caveats:

  • It's only been tested on my specific "Lab Suite" Adobe CC 2015 install. I don't install every single Adobe package available, especially if Adobe has deprecated them.

  • I built a uninstall package using the new Creative Cloud Packager that uninstalls "all" Adobe applications going back to CC (first release).

  • "All" is in quotes because it still doesn't remove Adobe Acrobat. Because I have a stand-alone Adobe Acrobat package built with CCP, I run that second after the Creative Cloud uninstaller. This script runs third.

  • I don't touch user folders/preferences, its not that important for my needs in labs, and for users getting a Creative Cloud upgrade, destroys preferences that can be imported into the newer version of the Adobe apps at first launch.

  • The cleanup script takes into account that the following additional Adobe applications may be installed on the system that you don't want to remove (and preserves their files in /Library/Application Support/Adobe) during the Creative Cloud uninstall:

Adobe Flash Player
Adobe Shockwave Player
Adobe Acrobat Reader DC
Adobe Digital Editions

  • If you have other Adobe applications that you don't want to be removed you may need to do a standalone installation of them on a clean system so you can see where files are located so you can make sure they aren't deleted by this script.

## Adobe CC 2015 Uninstaller Cleanup
## Updated 2016.12.21 | T.August

## Unload Adobe CC Launch Daemons
launchctl unload $3/Library/LaunchDaemons/com.adobe.adobeupdatedaemon.plist
launchctl unload $3/Library/LaunchDaemons/com.adobe.agsservice.plist

## Unload Adobe Launch Agents
launchctl unload $3/Library/LaunchAgents/com.adobe.AAM.Updater-1.0.plist
launchctl unload $3/Library/LaunchAgents/com.adobe.AdobeCreativeCloud.plist

## Kill additional processes if not caught by launchd unloads

killall "Creative Cloud"
killall "Adobe Desktop Service"
killall "Core Sync"
killall node

## Remove launch agents and launch daemons

rm -Rf $3/Library/LaunchDaemons/com.adobe.adobeupdatedaemon.plist
rm -Rf $3/Library/LaunchDaemons/com.adobe.agsservice.plist
rm -Rf $3/Library/LaunchAgents/com.adobe.AAM.Updater-1.0.plist
rm -Rf $3/Library/LaunchAgents/com.adobe.AdobeCreativeCloud.plist

## Remove remainder of Adobe CC 2015 directories and files

rm -Rf $3/Applications/Utilities/Adobe Application Manager
rm -Rf $3/Applications/Utilities/Adobe Creative Cloud
rm -Rf $3/Applications/Utilities/Adobe Installers/*
rm -Rf $3/Applications/Adobe Creative Cloud
rm -Rf $3/Library/Application Support/Adobe/AAMUpdater
rm -Rf $3/Library/Application Support/Adobe/AAMUpdaterInventory
rm -Rf $3/Library/Application Support/Adobe/Acrobat
rm -Rf $3/Library/Application Support/Adobe/ADCRefs
rm -Rf $3/Library/Application Support/Adobe/Adobe Desktop Common
rm -Rf $3/Library/Application Support/Adobe/Adobe PCD
rm -Rf $3/Library/Application Support/Adobe/Adobe PDF
rm -Rf $3/Library/Application Support/Adobe/AdobeApplicationManager
rm -Rf $3/Library/Application Support/Adobe/AdobeGCClient
rm -Rf $3/Library/Application Support/Adobe/backup
rm -Rf $3/Library/Application Support/Adobe/Bridge CC Extensions
rm -Rf $3/Library/Application Support/Adobe/CameraRaw
rm -Rf $3/Library/Application Support/Adobe/caps
rm -Rf $3/Library/Application Support/Adobe/CEP
rm -Rf $3/Library/Application Support/Adobe/Color
rm -Rf $3/Library/Application Support/Adobe/Extension Manager CC
rm -Rf $3/Library/Application Support/Adobe/Installers
rm -Rf $3/Library/Application Support/Adobe/MACPDFM
rm -Rf $3/Library/Application Support/Adobe/OOBE
rm -Rf $3/Library/Application Support/Adobe/PCF
rm -Rf $3/Library/Application Support/Adobe/SLCache
rm -Rf $3/Library/Application Support/Adobe/SLStore
rm -Rf $3/Library/Application Support/Adobe/SLStore_v1
rm -Rf $3/Library/Application Support/Adobe/Vulcan
rm -Rf $3/Library/Application Support/
rm -Rf $3/Library/Logs/Adobe/Installers
rm -Rf $3/Library/Logs/CreativeCloud
rm -Rf $3/usr/local/bin/RemoteUpdateManager

## Remove package receipts

rm -Rf $3/private/var/db/receipts/com.adobe.acrobat.AcrobatDCUpd*
rm -Rf $3/private/var/db/receipts/com.adobe.Enterprise.install.*
rm -Rf $3/private/var/db/receipts/com.adobe.PDApp.AdobeApplicationManager.installer*

exit 0

Please test before implementing in your environment. Again, I'm only a novice shell scripter, and I'm more than willing to take suggestions on cleaning up my syntax. Enjoy!


Contributor II

@taugust04, thanks for sharing. I notice you removed some receipts. Is that an okay procedure to do? I was under the impression there is a database of receipts which would also need updating so that removing an actual receipt file was not useful by itself. I'm not an expert at receipts, so someone else feel free to jump in here.

I think the key goal is to remove enough Adobe stuff so that a new install of CC 2017 will not error out. To that end I'm not worried about deleting Flash or Digital Editions; I keep Flash updated with a wonderful script I obtained here some time ago and Digital Editions is easy to reinstall with a policy. I can't recall who wrote the flash script but here it is:

# This script downloads and installs the latest Flash player for compatible Macs
# Determine OS version
osvers=$(sw_vers -productVersion | awk -F. '{print $2}')
# Determine current major version of Adobe Flash for use
# with the fileURL variable
flash_major_version=`/usr/bin/curl --silent | cut -d , -f 1 | awk -F" '/update version/{print $NF}'`
# Specify the complete address of the Adobe Flash Player
# disk image

# Specify name of downloaded disk image
if [[ ${osvers} -lt 6 ]]; then
  echo "Adobe Flash Player is not available for Mac OS X 10.5.8 or below."
if [[ ${osvers} -ge 6 ]]; then

    # Download the latest Adobe Flash Player software disk image
    /usr/bin/curl --output "$flash_dmg" "$fileURL"
    # Specify a /tmp/flashplayer.XXXX mountpoint for the disk image

    TMPMOUNT=`/usr/bin/mktemp -d /tmp/flashplayer.XXXX`
    # Mount the latest Flash Player disk image to /tmp/flashplayer.XXXX mountpoint

    hdiutil attach "$flash_dmg" -mountpoint "$TMPMOUNT" -nobrowse -noverify -noautoopen
    # Install Adobe Flash Player from the installer package stored inside the disk image
    /usr/sbin/installer -dumplog -verbose -pkg "$(/usr/bin/find $TMPMOUNT -maxdepth 1 ( -iname *.pkg -o -iname *.mpkg ))" -target "/"
    # Clean-up

    # Unmount the Flash Player disk image from /tmp/flashplayer.XXXX

    /usr/bin/hdiutil detach "$TMPMOUNT"

    # Remove the /tmp/flashplayer.XXXX mountpoint

    /bin/rm -rf "$TMPMOUNT"
    # Remove the downloaded disk image
    /bin/rm -rf "$flash_dmg"

Contributor III

I found that the uninstaller from Creative Cloud Packager wouldn't fully work if any Adobe applications are open, i just tested packaging it in composer with a postinstall script to hush Adobe up before it runs, seems to do the job ok,

any advice on tidying, rethinking the script always appreciated!!

LoggedInUser=$( stat -f%Su /dev/console )
LoggedInUID=$(stat -f %u /dev/console)
LoggedInPID=$(ps -axj | awk "/^$LoggedInUser/ && / {print $2;exit}")

#stop user processes
userpid=$( /bin/launchctl asuser "$LoggedInUID" /usr/bin/sudo -iu "$LoggedInUser" "/bin/launchctl list | grep adobe | cut -f1" | tr '
' ' ' )
echo "$userpid"

/bin/launchctl asuser "$LoggedInUID" /usr/bin/sudo -iu "$LoggedInUser" "kill $userpid 2>/dev/null"

#unload agents
/bin/launchctl asuser "$LoggedInUID" /usr/bin/sudo -iu "$LoggedInUser" "/bin/launchctl unload /Library/LaunchAgents/com.adobe.* 2>/dev/null"

#unload all Adobe MattDaemons
/bin/launchctl unload /Library/LaunchDaemons/com.adobe.* 2>/dev/null

#kill all Adobe processes
pgrep obe | xargs kill

#now run Adobe CCP uninstaller


#delete tmp files
rm /private/var/tmp/AdobeCCUninstaller
rm /private/var/tmp/AdobeCCUninstallerConfig.xml

New Contributor III

@May are you uninstalling all Adobe apps at this point or do you have a specific uninstaller for each Adobe App? I dont have bundels and therefore If people try to upgrade from 2015 to 2017 I would have to create uninstaller for each Application ( i.e. Illustrator). I am also a bit afraid if i close and uninstall the prev that users would loose data or unsaved data.


Honored Contributor II
Honored Contributor II

@anniwayy I have been able to selectively remove the bits and pieces of previous Adobe CC products (including CS6) by creating an uninstall script from CCP. Create the script, wrap the script and the corresponding XML file in a PKG file, and call the script with either a postimage script or a script in the JSS set to After. In all of my testing this has worked flawlessly to remove only what I need removed.

In our case, I have a group of machines that still needs CS6 due to client requirements, and the script successfully removes CC 2014 while leaving CS6 untouched. Afterward an install of CC 2015.2 and nothing gets broken.

Contributor III

@anniwayy I'm checking everything to be removed when i create the uninstaller from CCP (I do deselect Flash as there is no newer version).

Using just the CCP uninstaller it does leave Fireworks CS6, Acrobat DC, Extension Manager and Creative Cloud apps installed ( i guess as it's just a CC uninstaller and doesn't include CS apps)

@stevewood Did the CS6 apps show up when you go to create the uninstaller with CCP ?

Honored Contributor II
Honored Contributor II

@May no, because it doesn't know about CS6 apps. Are you needing to remove CS6 as well as the others? My use case was to keep CS6 in place while removing CC 2014 and installing CC 2015.2.

Contributor III

@stevewood Thanks, i misunderstood your comment, i thought you had found a way to remove CS6 apps using the CCP uninstaller approach.
It would be good to have just the one CCP script to remove CC and CS6 apps but for now i can make another script manually to remove any CS6 stuff we no longer need, thanks again!

New Contributor

@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

Esteemed Contributor II

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 updated to

/Applications/Adobe FancyApp CC 2017.1/Adobe FancyApp CC


/Applications/Adobe FancyApp CC 2017/Adobe FancyApp CC


/Applications/Adobe FancyApp CC 2017.1/Adobe FancyApp CC

...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.


Contributor II

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

New Contributor II

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

New Contributor III

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

New Contributor III

@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.

New Contributor

@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?



New Contributor III

@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!


New Contributor III

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

New Contributor III

@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.

New Contributor III

You’re welcome @ateazzie