Using Ruby To Report On Installed Adobe Creative Cloud Versions

One of the regular task of an admin is to check the version of software installed and decided if the software needs updated. This can be particular important when managing a lab of computers where having consistent application versions across all machines can be critical.

To help me report back on Adobe Creative Cloud Apps installed and their version numbers, I wrote a little script. It scans all the Applications in the /Applications folder and picks out those that start with “Adobe”, then looks for an info.plist file inside the .app bundle and reads the “CFBundleShortVersionString”.

#!/usr/bin/ruby

#==============================================================
# Loop through the applications folder and find apps that
# start with "Adobe". Look inside the folders and find
# .app files, then read the Info.plist file for the
# CFBundleShortVersionString key and report back the version
#==============================================================

#==============================================================
#get a list of Adobe apps and version numbers

def adobe_app_versions
    application_folder = Dir.entries("/Applications")
    for application_name in application_folder
        if application_name.start_with?('Adobe')
            for x in Dir["/Applications/#{application_name}/*.app"]
                puts application_name + " = " + `defaults read "#{x}/Contents/Info.plist" "CFBundleShortVersionString"`
            end
        end
    end
end

adobe_app_versions

This scripts works well for my needs, and gives me the output similar to below. I can run it via Apple Remote Desktop and compile and compare the results of an entire lab to quickly see which machines needed updated.

Adobe Acrobat DC = 15.020.20039
Adobe Acrobat DC = 15.020.20039
Adobe After Effects CC 2017 = 14.0.1
Adobe Animate CC 2017 = 16.0.1
Adobe Audition CC 2017 = 10.0.1
Adobe Bridge CC 2017 = 7.0.0.93
Adobe Character Animator CC (Beta) = 1.0.5
Adobe Dreamweaver CC 2017 = 17.0.1.9346
Adobe Experience Design CC (Beta) = 0.6.8.6
Adobe ExtendScript Toolkit CC = ESTK CC 4.0.0.1
Adobe Extension Manager CC = 7.3.2.39
Adobe Extension Manager CS6 = 6.0.8.28
Adobe Fireworks CS6 = Adobe Fireworks CS6 version 12.0.1.274
Adobe Flash Builder 4.7 = 4.7
Adobe Fuse CC (Preview) = 2015.1.0
Adobe Gaming SDK 1.4 = 1.0
Adobe Illustrator CC 2017 = 21.0.0
Adobe InCopy CC 2017 = 12.0.0.81
Adobe InDesign CC 2017 = 12.0.0.81
Adobe Lightroom = Adobe Lightroom [1083169]
Adobe Media Encoder CC 2017 = 11.0.0.131
Adobe Muse CC 2017 = 2017.0.1
Adobe Photoshop CC 2017 = 18.0.1
Adobe Prelude CC 2017 = 6.0.1
Adobe Premiere Pro CC 2017 = 11.0.1
Adobe SpeedGrade CC 2015 = 9.1.0

I will note there are a couple of issues. Apparently not every Adobe application uses the “CFBundleShortVersionString”, so you may get back an error for random applications like “After Effects Render Engine.app”, that’s inside the After Effects folder. If you have After Effects installed, you’ll get back.

The domain/default pair of (/Applications/Adobe After Effects CC 2017/Adobe After Effects Render Engine.app/Contents/Info.plist, CFBundleShortVersionString) does not exist

Also, apparently Light room doesn’t follow suit with a standard version number, so you may see something like:

Adobe Lightroom = Adobe Lightroom [1083169]

So, what we’re saying is there’s no consistency even inside Adobe Apps.

Get the script on Github

Leave a comment