shell-intune-samples icon indicating copy to clipboard operation
shell-intune-samples copied to clipboard

AdobeAcrobatReaderDC (installAcrobatDC.zsh) failing to install from the CDN

Open eddie-jimenez opened this issue 1 year ago • 3 comments

`Mon Jan 27 08:20:58 EST 2025 | Creating [/Library/Logs/Microsoft/IntuneScripts/Adobe Acrobat Reader DC] to store logs

##############################################################

Mon Jan 27 08:20:58 EST 2025 | Logging install of [Adobe Acrobat Reader DC] to [/Library/Logs/Microsoft/IntuneScripts/Adobe Acrobat Reader DC/Adobe Acrobat Reader DC.log]

############################################################

Mon Jan 27 08:20:58 EST 2025 | Checking if we need Rosetta 2 or not Mon Jan 27 08:20:58 EST 2025 | Waiting for other [/usr/sbin/softwareupdate] processes to end Mon Jan 27 08:20:58 EST 2025 | No instances of [/usr/sbin/softwareupdate] found, safe to proceed Mon Jan 27 08:20:58 EST 2025 | Rosetta is already installed and running. Nothing to do. Mon Jan 27 08:20:58 EST 2025 | Checking if we need to install or update [Adobe Acrobat Reader DC] Mon Jan 27 08:20:58 EST 2025 | [Adobe Acrobat Reader DC] not installed, need to download and install Mon Jan 27 08:20:58 EST 2025 | Dock is here, lets carry on Mon Jan 27 08:20:58 EST 2025 | Starting downlading of [Adobe Acrobat Reader DC] Mon Jan 27 08:20:58 EST 2025 | Waiting for other [curl -f] processes to end Mon Jan 27 08:20:58 EST 2025 | No instances of [curl -f] found, safe to proceed Mon Jan 27 08:20:58 EST 2025 | Downloading Adobe Acrobat Reader DC [https://ardownload2.adobe.com/pub/adobe/reader/mac/AcrobatDC/2400520393/AcroRdrDC_2400520393_MUI.dmg] Mon Jan 27 08:20:59 EST 2025 | Failure to download [https://ardownload2.adobe.com/pub/adobe/reader/mac/AcrobatDC/2400520393/AcroRdrDC_2400520393_MUI.dmg] to [] ` Navigating to that url shows a 404

Image

eddie-jimenez avatar Jan 27 '25 13:01 eddie-jimenez

It looks like Adobe has change their naming conventions and bundleID. If I download Adobe Reader from their website, it looks like it installs Acrobat DC. In Intune it's showing the following included apps: com.adobe.Acrobat.Pro 24.005.20320 com.adobe.Acrobat.framework 24.005.20320 com.adobe.ICUUnicode 71.1.0 com.adobe.ICUConverter 71.1.0 com.adobe.FileInfo.framework Adobe XMP FileInfo 5 . 0 . 0 . 0 -ia 010 com.adobe.AdobeCrashReporter 16.6.0 com.adobe.CrashReporterClient 16.6.0 com.adobe.boost-system.framework 8.0.0 com.adobe.ACE 6.0.1 com.adobe.AcroSQLite AcroSQLite AcroDunamis.framework 1 com.Adobe.ProjectionEngine 1.0 com.adobe.AXE8SharedExpat 6.0.52225 com.adobe.AIDE 5.7.53286 com.adobe.ARE 4.0.0 com.adobe.PDFPort 4.0.0 com.adobe.piaglbreakfinder 1.0 com.adobe.boost-filesystem.framework 8.0.0 com.adobe.BIB 4.0.0 com.adobe.eulaframework 1.0 com.adobe.AGM 7.1.9 com.adobe.adobe_caps adobe_caps 9.0.0.28 com.adobe.framework.adobe3d 8.0 com.apple.carbonframeworktemplate Adobe2D version 8.0 atmo.mac.macho.3dif.bundle AdobeU3D version 0.0 atmo.mac.macho.zbuffer.bundle AdobeZBuffer version 0.0 atmo.mac.macho.prcr.bundle AdobeU3D version 0.0 atmo.mac.macho.tesselate.bundle AdobeTesselate version 0.0 atmo.mac.macho.gl.bundle AdobeOpenGL version 0.0 com.adobe.pip 8.8.0.7 com.adobe.PDFSettings AdobePDFSettings 2.04.0 org.cef.framework 105.3.44.0 com.adobe.AdobeXMPCore Adobe XMP Core 9.1 -c 1 com.adobe.JP2K 4.0.54782 com.adobe.headlights.LogSessionFramework 8.8.0.7 com.adobe.AXEXSLT 6.0.52225 com.adobe.amtlib 11.0.0.39 com.adobe.BIBUtils AdobeBIBUtils 4.0.0 com.adobe.boost-threads.framework 8.0.0 com.adobe.acrobat.acroamt 1.0 com.adobe.CoolType AdobeCoolType 9.1.0.55773 com.adobe.boost-regex.framework 8.0.0 com.adobe.ahclientframework 4.5.1 com.adobe.ICUData 71.1.0

No reference to "Reader" anywhere.

eddie-jimenez avatar Jan 27 '25 15:01 eddie-jimenez

I have created a new script with and URL. Adobe completely changes their version\bundleID and Reader is no longer a separate applications.

Here is what I have working currently:

`#!/bin/zsh

LOG_FILE="/Library/Logs/Microsoft/IntuneScripts/installReader.log" DMG_URL="https://ardownload2.adobe.com/pub/adobe/acrobat/mac/AcrobatDC/2400520320/AcroRdrSCADC2400520320_MUI.dmg" DMG_PATH="/tmp/AcroRdrSCADC2400520320_MUI.dmg" appname="Adobe Acrobat"

Function to update the Swift Dialog status

function updateSplashScreen() { ################################################################################################################# ################################################################################################################# ## ## This function is designed to update the Splash Screen status (if required) ## ############################################################### ###############################################################

# Is Swift Dialog present
if [[ -a "/Library/Application Support/Dialog/Dialog.app/Contents/MacOS/Dialog" ]]; then
    log_message "Updating Swift Dialog monitor for [Adobe Acrobat] to [$1]"
    echo listitem: title: Adobe Acrobat, status: $1, statustext: $2 >> /var/tmp/dialog.log
    # Supported status: wait, success, fail, error, pending, or progress:xx
fi

}

echo "$(date) | Starting installation of $appname" | tee -a "$LOG_FILE" updateSplashScreen wait Initializing

Kill lingering Acrobat mounts

echo "$(date) | Checking for existing mounts..." | tee -a "$LOG_FILE" MOUNTED_VOLUMES=$(hdiutil info | grep "/Volumes/AcroRdrSCADC" | awk '{print $3}') if [[ -n "$MOUNTED_VOLUMES" ]]; then echo "$(date) | Found existing mounts. Unmounting..." | tee -a "$LOG_FILE" for volume in ${(f)MOUNTED_VOLUMES}; do hdiutil detach "$volume" -force -quiet sleep 2 done fi

Ensure old DMG is removed before downloading

if [[ -f "$DMG_PATH" ]]; then echo "$(date) | Removing old DMG from /tmp..." | tee -a "$LOG_FILE" rm -f "$DMG_PATH" sleep 1 fi

Download Adobe Acrobat Reader DC

echo "$(date) | Downloading $appname from $DMG_URL" | tee -a "$LOG_FILE" updateSplashScreen wait Downloading curl -L -o "$DMG_PATH" "$DMG_URL"

Verify the DMG exists

if [[ ! -f "$DMG_PATH" ]]; then echo "$(date) | ERROR: DMG download failed!" | tee -a "$LOG_FILE" updateSplashScreen fail Failed exit 1 fi

Mount the DMG

echo "$(date) | Mounting DMG..." | tee -a "$LOG_FILE" updateSplashScreen wait Mounting MOUNT_OUTPUT=$(hdiutil attach "$DMG_PATH" -nobrowse -quiet 2>&1)

Extract mount point dynamically

MOUNT_POINT=$(echo "$MOUNT_OUTPUT" | grep "/Volumes/AcroRdrSCADC" | awk '{$1=$2=""; print $0}' | sed 's/^[ \t]*//')

Retry mount detection if needed

if [[ -z "$MOUNT_POINT" ]]; then sleep 2 MOUNT_POINT=$(hdiutil info | grep "/Volumes/AcroRdrSCADC" | awk '{$1=$2=""; print $0}' | sed 's/^[ \t]*//') fi

if [[ -z "$MOUNT_POINT" ]]; then echo "$(date) | ERROR: Could not determine mount point!" | tee -a "$LOG_FILE" updateSplashScreen fail Failed exit 1 fi

echo "$(date) | DMG mounted at $MOUNT_POINT" | tee -a "$LOG_FILE"

Find the PKG inside the mounted DMG

PKG_PATH=$(find "$MOUNT_POINT" -name "*.pkg" -type f | head -n 1)

if [[ -z "$PKG_PATH" ]]; then echo "$(date) | ERROR: No PKG found inside DMG!" | tee -a "$LOG_FILE" updateSplashScreen fail Failed hdiutil detach "$MOUNT_POINT" -force exit 1 fi

echo "$(date) | Found package: $PKG_PATH. Beginning installation..." | tee -a "$LOG_FILE" updateSplashScreen wait Installing

Install the PKG

installer -pkg "$PKG_PATH" -target / -verboseR | tee -a "$LOG_FILE"

Check if installation was successful

if [[ $? -ne 0 ]]; then echo "$(date) | ERROR: Installation failed!" | tee -a "$LOG_FILE" updateSplashScreen fail Failed hdiutil detach "$MOUNT_POINT" -force exit 1 fi

echo "$(date) | Installation completed successfully!" | tee -a "$LOG_FILE" updateSplashScreen success Installed

Unmount and clean up

echo "$(date) | Unmounting DMG..." | tee -a "$LOG_FILE" hdiutil detach "$MOUNT_POINT" -force -quiet rm -f "$DMG_PATH"

echo "$(date) | Cleanup complete. Exiting." | tee -a "$LOG_FILE" exit 0 `

eddie-jimenez avatar Jan 28 '25 00:01 eddie-jimenez

one workaround could be to pull the data from brew's api https://formulae.brew.sh/api/cask/adobe-acrobat-reader.json

the 'url' field on that response will be the dmg download url

ITJamie avatar Mar 07 '25 18:03 ITJamie