Applications Adobe Creative Cloud
Comment déployer les applications Adobe (Creative Cloud, Acrobat) sur des appareils macOS via Relution et les maintenir à jour avec le Remote Update Manager.
Les applications Adobe ne peuvent pas être installées via Relution comme une application native classique. La raison : les paquets Adobe ne sont pas de simples installateurs silencieux — ils démarrent pendant l’installation leurs propres processus en arrière-plan (Creative Cloud Desktop / HyperDrive). Ceux-ci ne s’exécutent pas de manière fiable dans le contexte restreint de la commande MDM native — le téléversement du PKG réussit, mais l’installation se bloque ou échoue.
L’installation s’effectue donc via un script (macOS Companion). Les mises à jour sont gérées de manière centralisée via le Remote Update Manager.
Pourquoi un script est nécessaire
- Installation :
installer -pkg … -target /s’exécute avec les pleins droits root, comme documenté par Adobe. L’utilisateur connecté n’a pas besoin de droits administrateur. - Pas de transfert de fichier : le macOS Companion ne livre aucun fichier. Le PKG doit donc être récupéré (téléchargé) via le réseau.
- Mises à jour : dans le paquet géré, la mise à jour automatique pour les utilisateurs finaux est désactivée. Les mises à jour s’effectuent via un script de mise à jour exécuté de manière récurrente qui appelle le Remote Update Manager (RUM) — voir Mises à jour continues.
Créer le paquet dans l’Admin Console
- Se connecter à l’Adobe Admin Console → et accéder à Packages.
- Créer un Managed Package. Sélectionner toutes les applications à installer sur les appareils — plusieurs applications (par ex. Photoshop, Illustrator, Acrobat) sont regroupées dans un seul PKG.
- Dans les options de gestion, activer Remote Update Manager (RUM). Le binaire RUM est ainsi livré avec le PKG sur les appareils et sera disponible pour les mises à jour ultérieures.
- Télécharger le paquet une fois terminé. L’installateur se trouve dans le dossier du paquet sous
Build/<NomDuPaquet>_Install.pkg.
Remarque sur la répartition : si tous les utilisateurs reçoivent le même ensemble d’applications, un paquet combiné suffit. Si différents groupes doivent recevoir des applications différentes, créer un paquet distinct par application ou par ensemble et l’attribuer au groupe d’appareils correspondant. Le script de mise à jour (voir ci-dessous) reste le même dans les deux cas.
Déployer le PKG
Comme le Companion ne livre aucun fichier, le PKG doit être hébergé à un emplacement accessible par le réseau, à partir duquel le script le télécharge — par ex. un serveur web interne ou un stockage cloud.
Important : utiliser un emplacement de stockage permanent. Le lien de téléchargement de l’Adobe Admin Console est temporaire et lié à la session ; il ne convient pas comme source fixe. Télécharger le paquet une seule fois et l’héberger soi-même. Veiller également à ce que le nom de fichier ne contienne aucun espace.
Scripts d’automatisation
Prérequis : le compagnon macOS est activé sous Paramètres → Applications client Relution via Activer le compagnon macOS. Le compagnon n’est pas déployé sur les appareils dont la version de macOS est inférieure à 12 ni sur les appareils inscrits par l’utilisateur ; cette procédure n’y est donc pas applicable.
Le déploiement se compose d’une installation initiale unique et d’une mise à jour récurrente. Les deux scripts sont créés sous Scripts → Scripts via Ajouter un script en tant que scripts shell pour macOS, puis exécutés sur l’appareil par le compagnon macOS :
- Installation initiale : le script est lancé une seule fois via l’action Exécuter un script shell sur l’appareil ou le groupe d’appareils, ou bien via Exécuter sur l’appareil dans la liste des scripts (voir Vue d’ensemble des actions →).
- Mise à jour : dans une politique macOS, la configuration Script est ajoutée et le script de mise à jour est sélectionné. Dans la section Exécution en fonction du temps, les jours de la semaine (Se répète sur) et l’Heure de début sont définis (voir Vue d’ensemble des configurations →).
En plus du fichier journal sur l’appareil, l’état d’exécution ainsi que la sortie de résultat et d’erreur de chaque exécution peuvent être consultés dans l’historique du script concerné sous Scripts → Scripts.
Installation initiale (recommandée)
Les paquets Adobe pèsent souvent plusieurs gigaoctets. Un téléchargement direct dans un script Relution peut dépasser le délai d’expiration du script et être alors interrompu. Ce délai est défini sur le script dans le champ Délai d’attente (en minutes) (5 minutes par défaut, 30 minutes au maximum). Le script suivant contourne ce problème : il installe un LaunchDaemon qui exécute le téléchargement, l’installation et la première mise à jour de manière découplée en arrière-plan. Le script Relution lui-même se termine en quelques secondes.
Pour chaque paquet, définir simplement PKG_URL et APP_LABEL.
Afficher l'exemple de configuration complet
#!/bin/bash
#
# Déploiement géré Adobe – TÂCHE 1 : Installation initiale
# Exécution via le Relution macOS Companion.
set -e
# --- Configuration (à adapter par paquet) ---
PKG_URL="https://votre-partage.example/Photoshop_Install.pkg"
APP_LABEL="photoshop" # uniquement pour le nom du journal/daemon
LABEL="io.relution.adobe.${APP_LABEL}"
WORKER="/usr/local/relution/${LABEL}.sh"
PLIST="/Library/LaunchDaemons/${LABEL}.plist"
LOG="/var/log/relution_adobe_deploy.log"
if [ "$(id -u)" -ne 0 ]; then
echo "ERREUR : doit être exécuté en tant que root." >&2
exit 1
fi
mkdir -p "$(dirname "$WORKER")"
cat > "$WORKER" <<WORKEOF
#!/bin/bash
PKG_URL="${PKG_URL}"
APP_LABEL="${APP_LABEL}"
RUM_BIN="/usr/local/bin/RemoteUpdateManager"
PLIST="${PLIST}"
WORKER="${WORKER}"
LOG="${LOG}"
log() { echo "\$(date '+%Y-%m-%d %H:%M:%S') [\$APP_LABEL] \$1" | tee -a "\$LOG"; }
log "=== Installation initiale démarrée ==="
BEFORE="\$(find /Applications -maxdepth 2 -iname "Adobe*.app" 2>/dev/null | wc -l | tr -d ' ')"
TMP="\$(mktemp -d /tmp/adobe.XXXXXX)"
PKG="\$TMP/install.pkg"
log "Téléchargement du PKG : \$PKG_URL"
if caffeinate -i curl -fL --retry 4 --retry-delay 10 -C - "\$PKG_URL" -o "\$PKG" >>"\$LOG" 2>&1; then
log "Téléchargement réussi. Installation..."
installer -pkg "\$PKG" -target / >>"\$LOG" 2>&1 && log "installer réussi." || log "ERREUR : installer (\$?)."
else
log "ERREUR : téléchargement échoué (\$?)."
fi
rm -rf "\$TMP"
if [ -x "\$RUM_BIN" ]; then
log "Démarrage de RemoteUpdateManager..."
"\$RUM_BIN" --action=install >>"\$LOG" 2>&1
log "RUM terminé (RC \$?)."
else
log "AVERTISSEMENT : RUM introuvable."
fi
AFTER="\$(find /Applications -maxdepth 2 -iname "Adobe*.app" 2>/dev/null | wc -l | tr -d ' ')"
log "Applications Adobe : avant \$BEFORE, après \$AFTER"
find /Applications -maxdepth 2 -iname "Adobe*.app" 2>/dev/null | while read -r a; do
mdimport "\$a" 2>/dev/null || true
VER="\$(defaults read "\$a/Contents/Info.plist" CFBundleShortVersionString 2>/dev/null || echo '?')"
log " - \$a (version \$VER)"
done
log "=== Terminé, nettoyage ==="
launchctl bootout system "\$PLIST" 2>/dev/null || true
rm -f "\$PLIST" "\$WORKER"
WORKEOF
chmod 700 "$WORKER"
cat > "$PLIST" <<PLISTEOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key><string>${LABEL}</string>
<key>ProgramArguments</key>
<array><string>/bin/bash</string><string>${WORKER}</string></array>
<key>RunAtLoad</key><true/>
<key>StandardErrorPath</key><string>${LOG}</string>
</dict>
</plist>
PLISTEOF
chown root:wheel "$PLIST"
chmod 644 "$PLIST"
launchctl bootout system "$PLIST" 2>/dev/null || true
launchctl bootstrap system "$PLIST"
echo "Bootstrap ok : $LABEL démarré."
exit 0
Le résultat est journalisé dans /var/log/relution_adobe_deploy.log.
Mises à jour continues
Ce script est attribué en tant que configuration Script dans une politique macOS et ainsi exécuté de manière récurrente (par ex. une fois par semaine). Il ne nécessite aucun téléchargement — le Remote Update Manager récupère les mises à jour directement auprès d’Adobe. Sans indication de produits, toutes les applications Adobe installées sont mises à jour ensemble ; un script distinct par application n’est pas nécessaire.
#!/bin/bash
RUM_BIN="/usr/local/bin/RemoteUpdateManager"
RUM_PRODUCTS="" # vide = toutes les applications ; sinon codes SAP, par ex. "APRO,PHSP"
LOG="/var/log/relution_adobe_update.log"
log() { echo "$(date '+%Y-%m-%d %H:%M:%S') $1" | tee -a "$LOG"; }
if [ ! -x "$RUM_BIN" ]; then
log "ERREUR : RUM introuvable – une application Adobe est-elle installée ?"
exit 2
fi
log "=== Mise à jour RUM démarrée ==="
if [ -n "$RUM_PRODUCTS" ]; then
"$RUM_BIN" --action=install --productVersions="$RUM_PRODUCTS" >>"$LOG" 2>&1
else
"$RUM_BIN" --action=install >>"$LOG" 2>&1
fi
log "RUM terminé (RC $?)."
Codes SAP pour la mise à jour ciblée d’applications individuelles : APRO (Acrobat), PHSP (Photoshop), ILST (Illustrator), IDSN (InDesign), PPRO (Premiere Pro), AEFT (After Effects).
Alternative : libre-service
Si les utilisateurs doivent installer leurs applications Adobe eux-mêmes, plutôt que via un déploiement centralisé, créer à la place un paquet Self-Service dans l’Admin Console (ou activer dans le paquet les options Enable self-service install et Allow non-admins to update and install apps). Le script installe alors uniquement l’application Creative Cloud Desktop ; les utilisateurs choisissent et installent ensuite eux-mêmes les applications proprement dites. Cela nécessite une licence Named User avec des profils de produits adaptés. Un script de mise à jour centralisé n’est pas nécessaire, les mises à jour passant par l’application Desktop.
Afficher l'exemple de configuration complet
#!/bin/bash
#
# Libre-service – installe uniquement l'application Creative Cloud Desktop.
# Les utilisateurs installent ensuite eux-mêmes les applications proprement dites.
PKG_URL="https://votre-partage.example/CreativeCloud_Install.pkg"
if [ "$(id -u)" -ne 0 ]; then
echo "ERREUR : doit être exécuté en tant que root." >&2
exit 1
fi
TMP="$(mktemp -d /tmp/ccda.XXXXXX)"
PKG="$TMP/install.pkg"
echo "Téléchargement de l'application Creative Cloud Desktop..."
if caffeinate -i curl -fL --retry 4 --retry-delay 10 -C - "$PKG_URL" -o "$PKG"; then
installer -pkg "$PKG" -target /
RC=$?
else
echo "ERREUR : téléchargement échoué."
rm -rf "$TMP"
exit 1
fi
rm -rf "$TMP"
if [ "$RC" -eq 0 ]; then
echo "Application Creative Cloud Desktop installée."
exit 0
else
echo "ERREUR : installation échouée (RC $RC)."
exit 1
fi
Remarque : si le paquet est très volumineux et que le téléchargement direct dépasse le délai d’expiration du script, utiliser la variante LaunchDaemon découplée de l’installation initiale — définir simplement PKG_URL sur le paquet de l’application Creative Cloud Desktop et omettre l’étape RUM.
Surveillance du statut via la Conformité de l’application
Dans cette configuration, l’installation s’effectue via le script — aucun PKG n’est téléversé dans Relution. La Conformité de l’application (configuration Conformité App d’une politique macOS dans le portail) ne sert donc pas à la distribution, mais à la surveillance du statut : l’application est créée via Ajouter une application manuellement, et l’identifiant de bundle est saisi dans le champ Nom interne.
- Dans la configuration Conformité App, sélectionner la source Ajouter une application manuellement sous Apps requises via Ajouter (sans téléversement de PKG).
- Attribuer un Nom et saisir l’identifiant de bundle dans le champ Nom interne, par ex.
com.adobe.acc.AdobeCreativeCloud. - Relution vérifie régulièrement si cet identifiant de bundle figure dans la liste des applications installées sur l’appareil.
- Les appareils sans l’application sont marqués comme Non conforme, à condition que l’option Ajouter une violation de conformité lorsque des applications requises sont manquantes soit activée sous
Paramètres→Gestion des appareils→Gestion des appareils(par défaut). Le script d’installation peut ensuite y être (ré)exécuté.
com.adobe.acc.AdobeCreativeCloud (via Ajouter une application manuellement). L’identifiant de bundle peut être consulté dans la liste des applications installées d’un appareil sur lequel l’application est déjà installée. Cela suppose que macOS signale l’application dans cette liste.Remarques
- Licence (Named User Licensing) : après l’installation, l’utilisateur se connecte avec son identifiant Adobe au premier lancement. Chaque application nécessite un profil de produit correspondant dans l’Admin Console — sans droit d’accès, l’application est installée mais inutilisable.
- Montées de version majeures : le Remote Update Manager ne met à jour qu’au sein de la version majeure installée (mises à jour de base et de sécurité). Le passage à une nouvelle génération annuelle nécessite un nouveau paquet.
- Environnements éducatifs : pour les clients Adobe Éducation, la mise à jour automatique pour les utilisateurs finaux n’est pas disponible ; la gestion via le Remote Update Manager est ici la voie prévue.
- Spotlight : le script d’installation initiale indexe les applications installées via
mdimport, afin qu’elles soient immédiatement trouvables via la recherche Spotlight — et pas seulement dans le Finder.