Posted on 10-06-2014 09:33 AM
Newbie here, where do I find the actual Adobe Reader 11.0..09 update? When I try to download it on my test machine, it just automatically installs through Safari. I need to download so I can put it into Casper Admin. Thanks.
Posted on 10-06-2014 09:35 AM
Check out autopkg - great tool for getting updates. You can automate it or get them downloaded on demand (one or several updates from various vendors)
https://github.com/autopkg/autopkg/wiki/Getting-Started
Posted on 10-06-2014 09:37 AM
Sounds cool. What will this do for me? I think I've heard of autopkg, but don't know what it is.
Posted on 10-06-2014 09:39 AM
you can get the traditional package at http://get.adobe.com/reader/ There's a link for Are You an IT Manager for OEM? to register.
Posted on 10-06-2014 09:46 AM
@Yalem - check the link for more info.
Posted on 11-24-2014 09:11 PM
http://get.adobe.com/reader/enterprise/
Google 'adobe reader offline installer'.
Posted on 03-23-2015 06:04 AM
Hi all,
Here is an Adobe Reader updater/installer script. No need to package anything! Find it here.
Enjoy ;)
joe
Posted on 04-07-2015 02:53 PM
@joe.farage, I was just getting to implementing your beautiful script but alas, Adobe has killed Reader and replaced it with Acrobat Reader DC. I tried repairing the script myself, but Adobe has changed the versioning scheme to match the other CC products. I would love to hear your thoughts.
Posted on 04-08-2015 05:29 AM
Hi @dferrara ! HI all !
I've updated the script to work with the new Adobe Acrobat Reader DC. Please you can test it and come back if you have problems.
Kind regards,
joe
#!/bin/sh
#####################################################################################################
#
# ABOUT THIS PROGRAM
#
# NAME
# AdobeReaderUpdate.sh -- Installs or updates Adobe Acrobat Reader DC
#
# SYNOPSIS
# sudo AdobeReaderUpdate.sh
#
####################################################################################################
#
# HISTORY
#
# Version: 1.1
#
# - v.1.0 Joe Farage, 23.01.2015
# - v.1.1 Joe Farage, 08.04.2015 : support for new Adobe Acrobat Reader DC
#
####################################################################################################
# Script to download and install Adobe Reader.
# Only works on Intel systems.
dmgfile="reader.dmg"
logfile="/Library/Logs/AdobeReaderDCUpdateScript.log"
# Are we running on Intel?
if [ '`/usr/bin/uname -p`'="i386" -o '`/usr/bin/uname -p`'="x86_64" ]; then
## Get OS version and adjust for use with the URL string
OSvers_URL=$( sw_vers -productVersion | sed 's/[.]/_/g' )
## Set the User Agent string for use with curl
userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X ${OSvers_URL}) AppleWebKit/535.6.2 (KHTML, like Gecko) Version/5.2 Safari/535.6.2"
# Get the latest version of Reader available from Adobe's About Reader page.
latestver=``
while [ -z "$latestver" ]
do
latestver=`/usr/bin/curl -s -L -A "$userAgent" https://get.adobe.com/reader/ | grep "<strong>Version" | /usr/bin/sed -e 's/<[^>][^>]*>//g' | /usr/bin/awk '{print $2}'`
done
echo "Latest Version is: $latestver"
latestvernorm=`echo ${latestver} | sed -e 's/20//'`
# Get the version number of the currently-installed Adobe Reader, if any.
if [ -e "/Applications/Adobe Acrobat Reader DC.app" ]; then
currentinstalledver=`/usr/bin/defaults read /Applications/Adobe Acrobat Reader DC.app/Contents/Info CFBundleShortVersionString`
echo "Current installed version is: $currentinstalledver"
if [ ${latestvernorm} = ${currentinstalledver} ]; then
echo "Adobe Reader DC is current. Exiting"
exit 0
fi
else
currentinstalledver="none"
echo "Adobe Reader DC is not installed"
fi
ARCurrVersNormalized=$( echo $latestver | sed -e 's/[.]//g' -e 's/20//' )
echo "ARCurrVersNormalized: $ARCurrVersNormalized"
url=""
url1="http://ardownload.adobe.com/pub/adobe/reader/mac/AcrobatDC/${ARCurrVersNormalized}/AcroRdrDC_${ARCurrVersNormalized}_MUI.dmg"
url2=""
#Build URL
url=`echo "${url1}${url2}"`
echo "Latest version of the URL is: $url"
# Compare the two versions, if they are different or Adobe Reader is not present then download and install the new version.
if [ "${currentinstalledver}" != "${latestvernorm}" ]; then
/bin/echo "`date`: Current Reader DC version: ${currentinstalledver}" >> ${logfile}
/bin/echo "`date`: Available Reader DC version: ${latestver} => ${latestvernorm}" >> ${logfile}
/bin/echo "`date`: Downloading newer version." >> ${logfile}
/usr/bin/curl -s -o /tmp/reader.dmg ${url}
/bin/echo "`date`: Mounting installer disk image." >> ${logfile}
/usr/bin/hdiutil attach /tmp/reader.dmg -nobrowse -quiet
/bin/echo "`date`: Installing..." >> ${logfile}
/usr/sbin/installer -pkg /Volumes/AcroRdrDC_${ARCurrVersNormalized}_MUI/AcroRdrDC_${ARCurrVersNormalized}_MUI.pkg -target / > /dev/null
/bin/sleep 10
/bin/echo "`date`: Unmounting installer disk image." >> ${logfile}
/usr/bin/hdiutil detach $(/bin/df | /usr/bin/grep Adobe Acrobat Reader DC Installer | awk '{print $1}') -quiet
/bin/sleep 10
/bin/echo "`date`: Deleting disk image." >> ${logfile}
/bin/rm /tmp/${dmgfile}
#double check to see if the new version got updated
newlyinstalledver=`/usr/bin/defaults read /Applications/Adobe Acrobat Reader DC.app/Contents/Info CFBundleShortVersionString`
if [ "${latestvernorm}" = "${newlyinstalledver}" ]; then
/bin/echo "`date`: SUCCESS: Adobe Reader has been updated to version ${newlyinstalledver}" >> ${logfile}
# /Library/Application Support/JAMF/bin/jamfHelper.app/Contents/MacOS/jamfHelper -windowType hud -title "Adobe Reader Updated" -description "Adobe Reader has been updated." &
else
/bin/echo "`date`: ERROR: Adobe Reader update unsuccessful, version remains at ${currentinstalledver}." >> ${logfile}
/bin/echo "--" >> ${logfile}
exit 1
fi
# If Adobe Reader is up to date already, just log it and exit.
else
/bin/echo "`date`: Adobe Reader is already up to date, running ${currentinstalledver}." >> ${logfile}
/bin/echo "--" >> ${logfile}
fi
else
/bin/echo "`date`: ERROR: This script is for Intel Macs only." >> ${logfile}
fi
exit 0
Posted on 04-08-2015 06:10 AM
@joe.farage Thanks Joe! I'll try it out!
Posted on 04-10-2015 11:58 AM
can this be modified to look for an existing A. Reader and remove it by chance? Just so it doesn't confuse the users or does it overnight the old A.Reader (non-DC versions I mean)?
Posted on 04-13-2015 09:34 AM
any updates on how this is working for people?
Posted on 04-13-2015 09:44 AM
@jwojda The whole Acrobat Reader thing is still messing me up -- who in their right mind thought that was a good name for this -- the script itself is awesome and I'm using it in our Yosemite image. I thought if people need the old Reader, they can get it from Self Service.
Posted on 04-13-2015 09:48 AM
Yeah, Adobe Acrobat Reader DC is just a gem of a name isn't it? :) Just rolls off the tongue.
Anyway, Reader DC installs a new application, because, well, its a new application. So it won't overwrite the older Reader. You can have both installed at the same time, though I can't imagine any reason to do that. One of them is enough.
If you really want to have it remove the older application, that's certainly doable.
Posted on 04-28-2015 03:06 PM
Thanks for sharing your scripts @joe.farage
Posted on 07-19-2015 09:12 PM
@joe.farage Hi Joe and all
any scripts for Adobe Reader?
Posted on 09-14-2015 08:55 AM
Hi all,
I ran the DC version, and it seemed to block/lock while the install was happening. I'd get the latest URL echo, but then output in terminal would stop. I let it sit for a couple minutes, and then did a control+c. I ran it again, and it detected that it was installed! Just FYI.
Also, I'd recommend an option for this script to both remove the non-DC version, plus set/override the default system extension handler to use the DC version when a user tried to open a PDF.
Something like
rm -rf /applications/Adobe Reader.app
defaults write com.apple.LaunchServices LSHandlers -array-add '{LSHandlerContentType = "com.adobe.pdf"; LSHandlerRoleAll = "com.adobe.reader";}'
The default handler update not be needed, because the DC version uses the same identifier as the non-DC version, not sure if deleting an app will revert this to the Preview app or not.
Posted on 12-15-2015 11:59 AM
@joe.farage I've been using your script for some time and I just wanted to say its awesome! Recently however, I have seen some oddities...reference link from Adobe maybe changed? What do you think ...
Submitting log to https://jss.teslamotors.com:8443/
Executing Policy Adobe Acrobat Reader DC...
Running script Application_AdobeDC-UpdateReader...
Script exit code: 1
Script result: Latest Version is: 2015.009.20069
Current installed version is: 15.009.20077
ARCurrVersNormalized: 1500920069
Latest version of the URL is: http://ardownload.adobe.com/pub/adobe/reader/mac/AcrobatDC/1500920069/AcroRdrDC_1500920069_MUI.dmg
The user is actually running a newer version that the script is returning... As you can see above, the client is v2015.009.20077 and the newest version is v2015.009.20069
Posted on 12-15-2015 12:10 PM
@ryan.s I also saw the same thing last week. I made a couple small tweaks to use with my EA:
# Script to download and install Adobe Reader.
# Only works on Intel systems.
dmgfile="AcroRdrDC_${ARCurrVersNormalized}_MUI.dmg"
logfile="/Library/Logs/AdobeReaderDCUpdateScript.log"
# Are we running on Intel?
if [ '`/usr/bin/uname -p`'="i386" -o '`/usr/bin/uname -p`'="x86_64" ]; then
## Get OS version and adjust for use with the URL string
OSvers_URL=$( sw_vers -productVersion | sed 's/[.]/_/g' )
## Set the User Agent string for use with curl
userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X ${OSvers_URL}) AppleWebKit/535.6.2 (KHTML, like Gecko) Version/5.2 Safari/535.6.2"
# Get the latest version of Reader available from Adobe's About Reader page.
latestver=``
while [ -z "$latestver" ]
do
latestver=`/usr/bin/curl -s -L -A "$userAgent" https://get.adobe.com/reader/ | grep "<strong>Version" | /usr/bin/sed -e 's/<[^>][^>]*>//g' | /usr/bin/awk '{print $2}' | cut -c 3-14`
done
echo "Latest Version is: $latestver"
latestvernorm=`echo ${latestver}`
# Get the version number of the currently-installed Adobe Reader, if any.
if [ -e "/Applications/Adobe Acrobat Reader DC.app" ]; then
currentinstalledver=`/usr/bin/defaults read /Applications/Adobe Acrobat Reader DC.app/Contents/Info CFBundleShortVersionString`
echo "Current installed version is: $currentinstalledver"
if [ ${latestvernorm} = ${currentinstalledver} ]; then
echo "Adobe Reader DC is current. Exiting"
exit 0
fi
else
currentinstalledver="none"
echo "Adobe Reader DC is not installed"
fi
ARCurrVersNormalized=$( echo $latestver | sed -e 's/[.]//g' )
echo "ARCurrVersNormalized: $ARCurrVersNormalized"
url1="http://ardownload.adobe.com/pub/adobe/reader/mac/AcrobatDC/${ARCurrVersNormalized}/AcroRdrDC_${ARCurrVersNormalized}_MUI.dmg"
url2=""
#Build URL
url=`echo "${url1}${url2}"`
echo "Latest version of the URL is: $url"
# Compare the two versions, if they are different or Adobe Reader is not present then download and install the new version.
if [ "${currentinstalledver}" != "${latestvernorm}" ]; then
/bin/echo "`date`: Current Reader DC version: ${currentinstalledver}" >> ${logfile}
/bin/echo "`date`: Available Reader DC version: ${latestver} => ${latestvernorm}" >> ${logfile}
/bin/echo "`date`: Downloading newer version." >> ${logfile}
/usr/bin/curl -s -o /tmp/${dmgfile} ${url}
/bin/echo "`date`: Mounting installer disk image." >> ${logfile}
/usr/bin/hdiutil attach /tmp/${dmgfile} -nobrowse -quiet
/bin/echo "`date`: Installing..." >> ${logfile}
/usr/sbin/installer -pkg /Volumes/AcroRdrDC_${ARCurrVersNormalized}_MUI/AcroRdrDC_${ARCurrVersNormalized}_MUI.pkg -target / > /dev/null
/bin/sleep 10
/bin/echo "`date`: Unmounting installer disk image." >> ${logfile}
#/usr/bin/hdiutil detach $(/bin/df | /usr/bin/grep Adobe Acrobat Reader DC Installer | awk '{print $1}') -quiet
/sbin/umount "/Volumes/AcroRdrDC_${ARCurrVersNormalized}_MUI"
/bin/sleep 10
/bin/echo "`date`: Deleting disk image." >> ${logfile}
/bin/rm /tmp/${dmgfile}
#double check to see if the new version got updated
newlyinstalledver=`/usr/bin/defaults read /Applications/Adobe Acrobat Reader DC.app/Contents/Info CFBundleShortVersionString`
if [ "${latestvernorm}" = "${newlyinstalledver}" ]; then
/bin/echo "`date`: SUCCESS: Adobe Reader has been updated to version ${newlyinstalledver}" >> ${logfile}
# /Library/Application Support/JAMF/bin/jamfHelper.app/Contents/MacOS/jamfHelper -windowType hud -title "Adobe Reader Updated" -description "Adobe Reader has been updated." &
else
/bin/echo "`date`: ERROR: Adobe Reader update unsuccessful, version remains at ${currentinstalledver}." >> ${logfile}
/bin/echo "--" >> ${logfile}
exit 1
fi
# If Adobe Reader is up to date already, just log it and exit.
else
/bin/echo "`date`: Adobe Reader is already up to date, running ${currentinstalledver}." >> ${logfile}
/bin/echo "--" >> ${logfile}
fi
else
/bin/echo "`date`: ERROR: This script is for Intel Macs only." >> ${logfile}
fi
exit 0
Posted on 12-15-2015 12:31 PM
I must be dense... what were the changes made @millersc?
Posted on 12-15-2015 12:48 PM
Sorry about that. I haven't had the chance to contribute yet to the original creator.
Changes to:
line 40: latestver - added a 'cut' to the end
line 44: removed 'sed' command
line 59: remove the second 'sed' command
line 63: removed (seems to work fine without it as line 66 is the same)
line 83: commented out, added additional line for 'umount' command (found it worked better)
These changes with EA looking at: defaults read "/Applications/Adobe Acrobat Reader DC.app/Contents/Info.plist" CFBundleVersion
Result in one of the following:
Script result: Latest Version is: 15.009.20069
Current installed version is: 15.009.20069
Adobe Reader DC is current. Exiting
or
Script result: Latest Version is: 15.009.20069
Adobe Reader DC is not installed
ARCurrVersNormalized: 1500920069
Latest version of the URL is: http://ardownload.adobe.com/pub/adobe/reader/mac/AcrobatDC/1500920069/AcroRdrDC_1500920069_MUI.dmg
Posted on 12-15-2015 04:05 PM
I wish there was a like button... thanks @millersc that has done the trick!
Posted on 12-15-2015 11:22 PM
Posted on 12-16-2015 04:32 AM
That is strange @joe.farage . I'm not sure there is any work around for Adobe screw ups. I can only assume they released '77 and then pulled it for some reason. Is your whole fleet running '77?
Always happy to contribute!
Posted on 12-16-2015 07:08 AM
Just want to chime in to say I have seen the same issue with one of my own scripts that updates ReaderDC. The current version posted from Adobe seems to be .20069, but I have .20077 installed on my Mac. I'm pretty sure Adobe's built in update system prompted me to install .20077, so I don't know what's going on with that.
This is unfortunately, one of the main issues I've run into with the scripts I have that auto pull down updated applications. If the vendor is lazy/stupid/incompetent, and messes up the latest version info being posted, or it doesn't match what actually gets pulled down, these kinds of scripts just break. We're at the mercy of the developers to spend 2 minutes to update a site that they just don't seem to have the time to do. Incredibly annoying.
I suspect in this case, Adobe simply hasn't updated the https://get.adobe.com/reader/ site to reflect that .20077 is in fact the latest version.
Posted on 04-05-2016 03:31 PM
Let me start by saying thank you to @joe.farage, creator of this script, and to @millersc for his tweaks.
The script has been working great on the majority our machines in my school district. I have run into some that Fail to run the script successfully though. I am getting the following error:
Script result: Latest Version is: 15.010.20060 Adobe Reader DC is not installed ARCurrVersNormalized: 1501020060 Latest version of the URL is: http://ardownload.adobe.com/pub/adobe/reader/mac/AcrobatDC/1501020060/AcroRdrDC_1501020060_MUI.dmg 2016-04-05 15:11:59.144 defaults[18052:727655] The domain/default pair of (/Applications/Adobe Acrobat Reader DC.app/Contents/Info, CFBundleShortVersionString) does not exist Error running script: return code was 1.
It seems that the Adobe Reader.app is currently running on these machines at the time the policy is triggered. I am not a script writer; but how would you go about adding something in the script to first check for and close the app, and then continue with the rest of the script?
Any assistance would be appreciated. I have been going machine to machine using ARD to manually close Adobe Reader. Then I run a UNIX command from within ARD to force the JAMF policy to rerun the script successfully.
Posted on 04-06-2016 07:06 AM
@C.Long I see where your going. I'll put it on my to-do list. But the way I see it is:
Check to see if Reader DC is running
If not, start script.
If yes, pop up a box. Button 1(continue) quits Reader DC or button 2 (exit) quits script.
I'll have to think about putting some time delay in it or looping it. Let me know if you have other thoughts.
Posted on 04-06-2016 09:10 AM
@millersc, thank you for taking the time to help me out. I think they way you've described it would be a good idea. That is if I am following your correctly. I am assuming the 2 buttons are for the user to choose between. So not to kick them out of anything important they maybe working on. Also, I just wanted to mention that in my case, it wasn't Reader DC that was running. It was good old Adobe Reader 11 that is causing the issue.
Posted on 05-03-2016 07:09 AM
I've taken the work @joe.farage and @millersc have done and sort of ran with it. I updated the script to update both Reader and Reader DC to the latest Reader DC version. I also add an alternate download in case the client can't download the full installer. The attached photo shows what it looks like in the policy logs when it runs successfully (I have since changed the exit codes, so it should show 0 instead of 1 now). I have the JAMF RECON command if it's successful because I have it scoped to only run on machines that aren't current, and I want to make sure it falls out of scope ASAP when it's updated.
#!/bin/bash
#####################################################################################################
#
# ABOUT THIS PROGRAM
#
# NAME
# AdobeReaderUpdate.sh -- Installs or updates Adobe Reader
#
# SYNOPSIS
# sudo AdobeReaderUpdate.sh
#
# EXIT CODES
# 0 - Adobe Reader DC installed successfully
# 1 - Adobe Reader DC is current
# 2 - Adobe Reader DC NOT installed
# 3 - Adobe Reader DC update unsuccessful
# 4 - Adobe Reader (DC) is running or was attempted to be installed manually and user deferred install
# 5 - Not an Intel-based Mac
#
####################################################################################################
#
# HISTORY
# Based on the threads:
# https://jamfnation.jamfsoftware.com/viewProductFile.html?id=42&fid=761
# https://jamfnation.jamfsoftware.com/discussion.html?id=12042
# Version: 1.4
#
# - v.1.0 Joe Farage, 23.01.2015
# - v.1.1 Joe Farage, 08.04.2015 : support for new Adobe Acrobat Reader DC
# - v.1.2 Steve Miller, 15.12.2015
# - v.1.3 Luis Lugo, 07.04.2016 : updates both Reader and Reader DC to the latest Reader DC
# - v.1.4 Luis Lugo, 28.04.2016 : attempts an alternate download if the first one fails
#
####################################################################################################
# Script to download and install Adobe Reader DC.
# Only works on Intel systems.
# Setting variables
readerProcRunning=0
# Echo function
echoFunc () {
# Date and Time function for the log file
fDateTime () { echo $(date +"%a %b %d %T"); }
# Title for beginning of line in log file
Title="InstallLatestAdobeReader:"
# Header string function
fHeader () { echo $(fDateTime) $(hostname) $Title; }
# Check for the log file
if [ -e "/Library/Logs/AdobeReaderDCUpdateScript.log" ]; then
echo $(fHeader) "$1" >> "/Library/Logs/AdobeReaderDCUpdateScript.log"
else
cat > "/Library/Logs/AdobeReaderDCUpdateScript.log"
if [ -e "/Library/Logs/AdobeReaderDCUpdateScript.log" ]; then
echo $(fHeader) "$1" >> "/Library/Logs/AdobeReaderDCUpdateScript.log"
else
echo "Failed to create log file, writing to JAMF log"
echo $(fHeader) "$1" >> "/var/log/jamf.log"
fi
fi
# Echo out
echo $(fDateTime) ": $1"
}
# Exit function
exitFunc () {
case $1 in
0) exitCode="0 - SUCCESS: Adobe Reader has been updated to version $2";;
1) exitCode="1 - INFO: Adobe Reader DC is current! Version: $2";;
2) exitCode="2 - INFO: Adobe Reader DC NOT installed!";;
3) exitCode="3 - ERROR: Adobe Reader DC update unsuccessful, version remains at $2!";;
4) exitCode="4 - ERROR: Adobe Reader (DC) is running or was attempted to be installed manually and user deferred install.";;
5) exitCode="5 - ERROR: Not an Intel-based Mac.";;
*) exitCode="$1";;
esac
echoFunc "Exit code: $exitCode"
echoFunc "======================== Script Complete ========================"
exit $1
}
# Check to see if Reader or Reader DC is running
readerRunningCheck () {
processNum=$(ps aux | grep "Adobe Acrobat Reader DC" | wc -l)
if [ $processNum -gt 1 ]
then
# Reader is running, prompt the user to close it or defer the upgrade
readerRunning
else
# Check if the older Adobe Reader is running
processNum=$(ps aux | grep "Adobe Reader" | wc -l)
if [ $processNum -gt 1 ]
then
# Reader is running, prompt the user to close it or defer the upgrade
readerRunning
else
# Adobe Reader shouldn't be running, continue on
echoFunc "Adobe Acrobat Reader (DC) doesn't appear to be running!"
fi
fi
}
# If Adobe Reader is running, prompt the user to close it
readerRunning () {
echoFunc "Adobe Acrobat Reader (DC) appears to be running!"
hudTitle="Adobe Acrobat Reader DC Update"
hudDescription="Adobe Acrobat Reader needs to be updated. Please save your work and close the application to proceed. You can defer if needed.
If you have any questions, please call the help desk."
jamfHelperPrompt=`/Library/Application Support/JAMF/bin/jamfHelper.app/Contents/MacOS/jamfHelper -windowType hud -lockHUD -title "$hudTitle" -description "$hudDescription" -button1 "Proceed" -button2 "Defer" -defaultButton 1`
case $jamfHelperPrompt in
0)
echoFunc "Proceed selected"
readerProcRunning=1
readerRunningCheck
;;
2)
echoFunc "Deferment Selected"
exitFunc 4
;;
*)
echoFunc "Selection: $?"
exitFunc 3 "Unknown"
;;
esac
}
# Let the user know we're installing Adobe Acrobat Reader DC manually
readerUpdateMan () {
echoFunc "Letting the user know we're installing Adobe Acrobat Reader DC manually!"
hudTitle="Adobe Acrobat Reader DC Update"
hudDescription="Adobe Acrobat Reader needs to be updated. You will see a program downloading the installer. You can defer if needed.
If you have any questions, please call the help desk."
jamfHelperPrompt=`/Library/Application Support/JAMF/bin/jamfHelper.app/Contents/MacOS/jamfHelper -windowType hud -lockHUD -title "$hudTitle" -description "$hudDescription" -button1 "Defer" -button2 "Proceed" -defaultButton 1 -timeout 60 -countdown`
case $jamfHelperPrompt in
0)
echoFunc "Deferment Selected or Window Timed Out"
exitFunc 4
;;
2)
echoFunc "Proceed selected"
readerRunningCheck
;;
*)
echoFunc "Selection: $?"
exitFunc 3 "Unknown"
;;
esac
}
echoFunc ""
echoFunc "======================== Starting Script ========================"
# Are we running on Intel?
if [ '`/usr/bin/uname -p`'="i386" -o '`/usr/bin/uname -p`'="x86_64" ]; then
## Get OS version and adjust for use with the URL string
OSvers_URL=$( sw_vers -productVersion | sed 's/[.]/_/g' )
## Set the User Agent string for use with curl
userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X ${OSvers_URL}) AppleWebKit/535.6.2 (KHTML, like Gecko) Version/5.2 Safari/535.6.2"
# Get the latest version of Reader available from Adobe's About Reader page.
latestver=``
while [ -z "$latestver" ]
do
latestver=`curl -s -L -A "$userAgent" https://get.adobe.com/reader/ | grep "<strong>Version" | /usr/bin/sed -e 's/<[^>][^>]*>//g' | /usr/bin/awk '{print $2}' | cut -c 3-14`
done
echoFunc "Latest Adobe Reader DC Version is: $latestver"
latestvernorm=`echo ${latestver}`
# Get the version number of the currently-installed Adobe Reader, if any.
if [ -e "/Applications/Adobe Acrobat Reader DC.app" ]; then
currentinstalledapp="Reader DC"
currentinstalledver=`/usr/bin/defaults read /Applications/Adobe Acrobat Reader DC.app/Contents/Info CFBundleShortVersionString`
echoFunc "Current Reader DC installed version is: $currentinstalledver"
if [ ${latestvernorm} = ${currentinstalledver} ]; then
exitFunc 1 "${currentinstalledapp} ${currentinstalledver}"
else
# Not running the latest DC version, check if Reader is running
readerRunningCheck
fi
elif [ -e "/Applications/Adobe Reader.app" ]; then
currentinstalledapp="Reader"
currentinstalledver=`/usr/bin/defaults read /Applications/Adobe Reader.app/Contents/Info CFBundleShortVersionString`
echoFunc "Current Reader installed version is: $currentinstalledver"
processNum=$(ps aux | grep "Adobe Reader" | wc -l)
if [ $processNum -gt 1 ]
then
readerRunning
else
echoFunc "Adobe Reader doesn't appear to be running!"
fi
else
currentinstalledapp="None"
currentinstalledver="N/A"
exitFunc 2
fi
# Build URL and dmg file name
ARCurrVersNormalized=$( echo $latestver | sed -e 's/[.]//g' )
echoFunc "ARCurrVersNormalized: $ARCurrVersNormalized"
url1="http://ardownload.adobe.com/pub/adobe/reader/mac/AcrobatDC/${ARCurrVersNormalized}/AcroRdrDC_${ARCurrVersNormalized}_MUI.dmg"
url2=""
url=`echo "${url1}${url2}"`
echoFunc "Latest version of the URL is: $url"
dmgfile="AcroRdrDC_${ARCurrVersNormalized}_MUI.dmg"
# Compare the two versions, if they are different or Adobe Reader is not present then download and install the new version.
if [ "${currentinstalledver}" != "${latestvernorm}" ]; then
echoFunc "Current Reader DC version: ${currentinstalledapp} ${currentinstalledver}"
echoFunc "Available Reader DC version: ${latestver} => ${ARCurrVersNormalized}"
echoFunc "Downloading newer version."
curl -s -o /tmp/${dmgfile} ${url}
case $? in
0)
echoFunc "Checking if the file exists after downloading."
if [ -e "/tmp/${dmgfile}" ]; then
readerFileSize=$(du -k "/tmp/${dmgfile}" | cut -f 1)
echoFunc "Downloaded File Size: $readerFileSize kb"
else
echoFunc "File NOT downloaded!"
exitFunc 3 "${currentinstalledapp} ${currentinstalledver}"
fi
echoFunc "Checking if Reader is running one last time before we install"
readerRunningCheck
echoFunc "Mounting installer disk image."
hdiutil attach /tmp/${dmgfile} -nobrowse -quiet
echoFunc "Installing..."
installer -pkg /Volumes/AcroRdrDC_${ARCurrVersNormalized}_MUI/AcroRdrDC_${ARCurrVersNormalized}_MUI.pkg -target / > /dev/null
sleep 10
echoFunc "Unmounting installer disk image."
umount "/Volumes/AcroRdrDC_${ARCurrVersNormalized}_MUI"
sleep 10
echoFunc "Deleting disk image."
rm /tmp/${dmgfile}
# double check to see if the new version got updated
if [ -e "/Applications/Adobe Acrobat Reader DC.app" ]; then
newlyinstalledver=`/usr/bin/defaults read /Applications/Adobe Acrobat Reader DC.app/Contents/Info CFBundleShortVersionString`
if [ "${latestvernorm}" = "${newlyinstalledver}" ]; then
echoFunc "SUCCESS: Adobe Reader has been updated to version ${newlyinstalledver}, issuing JAMF recon command"
jamf recon
if [ $readerProcRunning -eq 1 ];
then
/Library/Application Support/JAMF/bin/jamfHelper.app/Contents/MacOS/jamfHelper -windowType hud -lockHUD -title "Adobe Reader DC Updated" -description "Adobe Reader DC has been updated to version ${newlyinstalledver}." -button1 "OK" -defaultButton 1
fi
exitFunc 1 "${newlyinstalledver}"
else
exitFunc 3 "${currentinstalledapp} ${currentinstalledver}"
fi
else
exitFunc 3 "${currentinstalledapp} ${currentinstalledver}"
fi
;;
*)
echoFunc "Curl function failed on primary download! Error: $?. Review error codes here: https://curl.haxx.se/libcurl/c/libcurl-errors.html"
echoFunc "Attempting alternate download from https://admdownload.adobe.com/bin/live/AdobeReader_dc_en_a_install.dmg"
curl -s -o /tmp/AdobeReader_dc_en_a_install.dmg https://admdownload.adobe.com/bin/live/AdobeReader_dc_en_a_install.dmg
case $? in
0)
echoFunc "Checking if the file exists after downloading."
if [ -e "/tmp/AdobeReader_dc_en_a_install.dmg" ]; then
readerFileSize=$(du -k "/tmp/AdobeReader_dc_en_a_install.dmg" | cut -f 1)
echoFunc "Downloaded File Size: $readerFileSize kb"
else
echoFunc "File NOT downloaded!"
exitFunc 3 "${currentinstalledapp} ${currentinstalledver}"
fi
echoFunc "Checking if Reader is running one last time before we install"
readerRunningCheck
echoFunc "Checking with the user if we should proceed"
readerUpdateMan
echoFunc "Mounting installer disk image."
hdiutil attach /tmp/AdobeReader_dc_en_a_install.dmg -nobrowse -quiet
echoFunc "Installing..."
/Volumes/Adobe Acrobat Reader DC Installer/Install Adobe Acrobat Reader DC.app/Contents/MacOS/Install Adobe Acrobat Reader DC
sleep 10
echoFunc "Unmounting installer disk image."
umount "/Volumes/Adobe Acrobat Reader DC Installer"
sleep 10
echoFunc "Deleting disk image."
rm /tmp/AdobeReader_dc_en_a_install.dmg
# double check to see if the new version got updated
if [ -e "/Applications/Adobe Acrobat Reader DC.app" ]; then
newlyinstalledver=`/usr/bin/defaults read /Applications/Adobe Acrobat Reader DC.app/Contents/Info CFBundleShortVersionString`
if [ "${latestvernorm}" = "${newlyinstalledver}" ]; then
echoFunc "SUCCESS: Adobe Reader has been updated to version ${newlyinstalledver}, issuing JAMF recon command"
jamf recon
exitFunc 0 "${newlyinstalledver}"
else
exitFunc 3 "${currentinstalledapp} ${currentinstalledver}"
fi
else
exitFunc 3 "${currentinstalledapp} ${currentinstalledver}"
fi
;;
*)
echoFunc "Curl function failed on alternate download! Error: $?. Review error codes here: https://curl.haxx.se/libcurl/c/libcurl-errors.html"
exitFunc 3 "${currentinstalledapp} ${currentinstalledver}"
;;
esac
;;
esac
else
# If Adobe Reader DC is up to date already, just log it and exit.
exitFunc 1 "${currentinstalledapp} ${currentinstalledver}"
fi
else
# This script is for Intel Macs only.
exitFunc 5
fi
Posted on 05-04-2016 08:55 AM
This is awesome. These could really be the answer I have been seeking to all these teacher that never logout or restart their machines. I think I'll give it a test run here in our environment. Thanks so much.
Posted on 05-04-2016 10:58 AM
@PhillyPhoto Way to go! I do like the logging you built in! So far testing is working well.
Posted on 05-04-2016 01:29 PM
I had a user that I was working with that wasn't getting the download with the first or second URL. It turns out, when he went home it worked. I then realized that some users might be connecting to our in-office WiFi network that only allows internal connections (Citrix gateways, etc) and that's why it was failing. I added the following code to my script and wanted to put it out in case anyone else using this has users on a similar wireless network.
You'll be able to use a passed variable (i.e. $4) for the badSSIDs array with space delimiters, just make sure to escape any spaces in SSID names with a "".
# Are we on a bad wireless network?
if [[ "$4" != "" ]]
then
wifiSSID=`/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk '/ SSID/ {print substr($0, index($0, $2))}'`
echoFunc "Current Wireless SSID: $wifiSSID"
badSSIDs=( $4 )
for (( i = 0; i < "${#badSSIDs[@]}"; i++ ))
do
if [[ "$wifiSSID" == "${badSSIDs[i]}" ]]
then
echoFunc "Connected to a WiFi network that blocks downloads!"
exitFunc 6 "${badSSIDs[i]}"
fi
done
fi
I added this right above the Intel check, and added a 6th case check in the exit function to state that it was connected to a bad SSID:
6) exitCode="6 - ERROR: Wireless connected to a known bad WiFi network that won't allow downloading of the installer! SSID: $2";;
Posted on 06-03-2016 02:40 AM
@joe.farage unfortunately the Adobe Reader script found here my link text no longer works and results in error
Latest Version is:
Adobe Reader is not installed
Latest version of the URL is: http://ardownload.adobe.com/pub/adobe/reader/mac/.x//en_US/AdbeRdr_en_US.dmg
2016-06-03 10:36:04.611 defaults[28860:4321864]
The domain/default pair of (/Applications/Adobe Reader.app/Contents/Info, CFBundleShortVersionString) does not exist
any idea on getting the normal Reader working?
Posted on 06-21-2016 04:46 PM
Which part of that script removes the Adobe Reader.app and replaces it with the Adobe Reader DC app? @PhillyPhoto
Posted on 06-22-2016 07:23 AM
@bbot - It's part of the Reader DC installer package.
Posted on 06-22-2016 01:19 PM
@PhillyPhoto Awesome, thanks for posting!
Everything is working great. I did find in some cases with users running 10.9.5. Not a huge deal as we're moving away from 10.9.5 at the moment.
Script result: Wed Jun 22 10:50:20 :
Wed Jun 22 10:50:20 : ======================== Starting Script ========================
Wed Jun 22 10:50:21 : Latest Adobe Reader DC Version is: 15.016.20039
Wed Jun 22 10:50:21 : Current Reader installed version is: 11.0.15
Wed Jun 22 10:50:21 : Adobe Acrobat Reader (DC) appears to be running!
Wed Jun 22 10:50:21 : Selection: 0
Wed Jun 22 10:50:21 : Exit code: 3 - ERROR: Adobe Reader DC update unsuccessful, version remains at Unknown!
Wed Jun 22 10:50:21 : ======================== Script Complete ========================
Posted on 06-23-2016 06:35 AM
why not just do this.....
https://helpx.adobe.com/creative-cloud/packager/update-server-setup-tool.html
it just works!!
Gluck!
Posted on 09-08-2016 08:02 AM
Anyone know where Reader DC stores its license info? I'd like to deploy it such that users won't have to accept the EULA on launch. I tried capturing it with Composer but it didn't work.
Posted on 11-18-2016 01:42 PM
@joe.farage , @millersc and @PhillyPhoto
Running the latest tweaked version as well as the fixed version Joe posted, thank you all, and thank you for the logging! I see there's still nothing in the script to catch the possibility that Adobe screwed up or downgraded their release. I'm not sure there' s a single good way to handle that, but what Im seeing is that the assumption the the online version is different, is therefore considered newer during the compare, downloads, tries to install, but the app installer fails.
If you run it through the GUI, you get this message
I'm not a great scripter but Perhaps somebody could consider modifying the script so that if it's newer, it logs the message and leaves the newer installed. If it's older, it downloads the newer and updates and if it's the same, it just leaves it alone. Perhaps a popup could be built in to offer the end-user the choice to accept or defer/deny the change?
Since I run the script in the background in Casper, my users wouldn't see the message. But if it's run in Self Service, they see a Policy Failed message and no reason displayed to them, can be annoying.
I'd also like to see the echo's to the log and not just stdout.
these are not criticism, but some feedback based on my experience and could help us to better our product to those we support.
Thanks!
Fri Nov 18 15:18:47 : ======================== Starting Script ========================
Fri Nov 18 15:18:49 : Latest Adobe Reader DC Version is: 15.020.20039
Fri Nov 18 15:18:49 : Current Reader DC installed version is: 15.020.20042
Fri Nov 18 15:18:49 : Adobe Acrobat Reader (DC) doesn't appear to be running!
Fri Nov 18 15:18:49 : ARCurrVersNormalized: 1502020039
Fri Nov 18 15:18:49 : Latest version of the URL is: http://ardownload.adobe.com/pub/adobe/reader/mac/AcrobatDC/1502020039/AcroRdrDC_1502020039_MUI.dmg
Fri Nov 18 15:18:49 : Current Reader DC version: Reader DC 15.020.20042
Fri Nov 18 15:18:49 : Available Reader DC version: 15.020.20039 => 1502020039
Fri Nov 18 15:18:49 : Downloading newer version.
Fri Nov 18 15:19:15 : Checking if the file exists after downloading.
Fri Nov 18 15:19:15 : Downloaded File Size: 151020 kb
Fri Nov 18 15:19:15 : Checking if Reader is running one last time before we install
Fri Nov 18 15:19:15 : Adobe Acrobat Reader (DC) doesn't appear to be running!
Fri Nov 18 15:19:15 : Mounting installer disk image.
Fri Nov 18 15:19:19 : Installing...
Fri Nov 18 15:19:35 : Unmounting installer disk image.
Fri Nov 18 15:19:45 : Deleting disk image.
Fri Nov 18 15:19:45 : Exit code: 3 - ERROR: Adobe Reader DC update unsuccessful, version remains at Reader DC 15.020.20042!
Fri Nov 18 15:19:45 : ======================== Script Complete ========================
Posted on 12-14-2016 10:14 AM
@chuck3000 Sorry no one has updated this thread.... darn turkey coma!
Update line 183 to the following:
if [ "${latestvernorm} -le ${currentinstalledver}" ]; then
You should be able to test and see the following result:
Wed Dec 14 13:08:41 :
Wed Dec 14 13:08:41 : ======================== Starting Script ========================
Wed Dec 14 13:08:42 : Latest Adobe Reader DC Version is: 15.020.20039
Wed Dec 14 13:08:42 : Current Reader DC installed version is: 15.020.20042
Wed Dec 14 13:08:42 : Exit code: 1 - INFO: Adobe Reader DC is current! Version: Reader DC 15.020.20042
Wed Dec 14 13:08:42 : ======================== Script Complete ========================
This should help with Adobe pulling updates, after the script has run. Also, what is the frequency you have your policy running for this?
Stand by.... seeing issues with Philly's script and the exit codes. Will update shortly.