Écran notify

Jamf Connect peut inclure un écran notify qui permet d’afficher une barre de progression, un texte personnalisé et des images pendant l’Enrôlement automatisé des appareils. L’écran notify est configuré par un script qui écrit des commandes dans un fichier de contrôle. Le script peut ensuite être défini à l’aide du réglage Chemin d’accès au script (ScriptPath).

Si vous utilisez Jamf Pro, vous pouvez également configurer l’écran notify pour qu’il lise et affiche les journaux de règles de Jamf Pro aux utilisateurs, en définissant la valeur jamf pour le réglage Style de journal de l’écran notify (NotifyLogStyle).

Activation et configuration de l’écran notify

  1. Ajoutez le mécanisme notify à l’application loginwindow en exécutant la commande suivante :
    /usr/local/bin/authchanger -reset -JamfConnect -Notify
  2. Créer un script notify. Le script notify écrit des commandes echo dans un fichier de contrôle. Le fichier de contrôle est stocké dans l’emplacement suivant : /var/tmp/depnotify.log Voici un exemple de script :
    #!/bin/zsh
    #variables
    NOTIFY_LOG="/var/tmp/depnotify.log"
    #Pour TOKEN_BASIC, utilisez le même chemin de fichier que celui défini pour OIDCIDTokenPath dans com.jamf.connect.login
    TOKEN_BASIC="/tmp/token"
    TOKEN_GIVEN_NAME=$(echo "$(cat $TOKEN_BASIC)" | sed -e 's/\"//g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' | grep given_name | cut -d ":" -f2)
    TOKEN_UPN=$(echo "$(cat $TOKEN_BASIC)" | sed -e 's/\"//g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' | grep upn | cut -d ":" -f2)
    
    echo $TOKEN_GIVEN_NAME
    echo $TOKEN_UPN
     
    echo "STARTING RUN" >> $NOTIFY_LOG # Définir le nombre d’incréments sur la barre de progression
    echo "Command: Determinate: 6" >> $NOTIFY_LOG
    
    #1 – Fenêtre d’introduction avec nom d’utilisateur et animation
    echo "Command: Image: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.macbookpro-15-retina-touchid-silver.icns" >> $NOTIFY_LOG
    echo "Command: MainTitle: Bienvenue, $TOKEN_GIVEN_NAME" >> $NOTIFY_LOG
    echo "Command: MainText: Votre Mac est maintenant enrôlé, il sera automatiquement configuré pour vous. » >> $NOTIFY_LOG
    echo "Status: Préparation de votre nouveau Mac... » >> $NOTIFY_LOG
    sleep 10
     
    #2 – Définition des mots de passe pour l’authentification par signature unique des comptes locaux
    echo "Command: Image: /Applications/Utilities/Keychain Access.app/Contents/Resources/AppIcon.icns" >> $NOTIFY_LOG
    echo "Command: MainTitle: Vous en avez assez de retenir plusieurs mots de passe ? \n $TOKEN_GIVEN_NAME " >> $NOTIFY_LOG
    echo "Command: MainText: Nous utilisons des services d’authentification par signature unique pour vous aider à vous connecter à chacun de nos services d’entreprise.
    Utilisez votre adresse e-mail et le mot de passe de votre compte pour vous connecter à toutes les apps nécessaires." >> $NOTIFY_LOG
    echo "Status: Configuration du mot de passe de votre Mac pour le synchroniser avec votre mot de passe réseau..." >> $NOTIFY_LOG
    sleep 10
     
    #3 - Self Service facilite l’utilisation du Mac
    echo "Command: Image: /Applications/Self Service.app/Contents/Resources/AppIcon.icns" >> $NOTIFY_LOG
    echo "Command: MainTitle: Self Service facilite l’utilisation du Mac" >> $NOTIFY_LOG
    echo "Command: MainText: Self Service contient des signets et des paquets d’installation utiles qui peuvent servir à d’autres apps. » >> $NOTIFY_LOG
    echo "Status: Installation de Self Service... » >> $NOTIFY_LOG
    sleep 10
     
    #4 - Tout ce dont vous avez besoin pour votre premier jour
    ###Jamf Triggers
    echo "Command: Image: /System/Library/CoreServices/Install in Progress.app/Contents/Resources/Installer.icns" >> $NOTIFY_LOG
    echo "Command: MainTitle: Installer tout ce dont vous avez besoin pour votre premier jour. » >> $NOTIFY_LOG
    echo "Command: MainText: Toutes les apps dont vous aurez besoin aujourd’hui sont déjà en cours d’installation. Une fois la configuration terminée, vous constaterez que Microsoft Office, Slack et Zoom sont prêts à l’emploi. Lancez les apps depuis le Dock et profitez-en ! » >> $NOTIFY_LOG
    echo "Status: Installation de Microsoft Office... » >> $NOTIFY_LOG
    /usr/local/bin/jamf policy -event "InstallOffice"
    sleep 5
     
    #5 - Finalisation
    echo "Command: Image: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ApplicationsFolderIcon.icns" >> $NOTIFY_LOG
    echo "Status: Installation de Slack... » >> $NOTIFY_LOG
    /usr/local/bin/jamf policy -event "InstallSlack"
    sleep 5
    echo "Status: Bientôt terminé... \n Nous avons bientôt terminé, $TOKEN_GIVEN_NAME" >> $NOTIFY_LOG
    sleep 3
    
    ###Nettoyage
    sleep 3
    echo "Command: Quit" >> $NOTIFY_LOG
    sleep 1
    rm -rf $NOTIFY_LOG
     
    #6 - Désactiver l’écran notify du processus loginwindow
    /usr/local/bin/authchanger -reset -JamfConnect	
  3. Utilisez votre méthode de configuration préférée pour spécifier le chemin d’accès à votre script avec le réglage Chemin d’accès au script (RunScript). Pour plus d’informations, consultez Configuration.

Commandes de script Notify

Commandes générales

Les commandes suivantes sont généralement utilisées pour afficher l’écran notify.

Image:

Cette commande remplace l’image notify par défaut par une image avec un chemin spécifié. L’image sera automatiquement mise à l’échelle à la taille correcte.

Exemple :

Command: Image: /tmp/logo.png

MainText:
Cette commande modifie le texte principal affiché aux utilisateurs.
Exemple :

Command: MainText: Veuillez patienter pendant la configuration de votre nouveau MacBook Pro.

MainTextImage:

Cette commande remplace le texte principal par une icône personnalisée avec un chemin spécifié. Les images peuvent atteindre 660 x 105 pixels et leur taille peut être adaptée.

Exemple :

Command: MainTextImage: /tmp/logo.png

MainTitle:

Cette commande modifie le titre principal affiché aux utilisateurs.

Exemple :

Command: MainTitle: Bienvenue dans votre nouveau MacBook Pro

Commandes interactives

Les commandes interactives sont utilisées pour personnaliser l’interaction avec l’utilisateur pendant le processus notify.
Determinate:
Cette commande définit la barre de progression comme étant « déterminée », la progression par étapes, au lieu d’afficher une barre de défilement. Vous devez spécifier le nombre d’étapes que vous souhaitez utiliser pendant le processus notify. Une fois cette option définie, chaque mise à jour du statut dans votre script incrémentera la barre d’une étape.
Exemple :

Command: Determinate: 5

DeterminateManual:
Cette commande définit la barre de progression comme étant déterminée, avec une progression manuelle plutôt qu’avec des commandes par étapes. Vous devez spécifier le nombre d’étapes souhaité pendant le processus notify. Une fois cette option définie, vous devez faire avancer manuellement la barre d’état à l’aide de la commande DeterminateManualStep:.
Exemple :

Command: DeterminateManual: 5

DeterminateManualStep:
En mode DeterminateManual:, cette commande fait avancer la barre de progression d’une étape ou d’un intervalle spécifié. L’exemple ci-dessous déplace la barre de progression de deux étapes.
Exemple :

Command: DeterminateManualStep: 2

DeterminateOff:
Cette commande désactive l’état déterminé de la barre de progression. Les étapes déjà effectuées restent terminées dans la barre de progression. Cela vous permet de passer d’un état déterminé à un état non déterminé sans perdre votre progression.
Exemple :

Command: DeterminateOff:

DeterminateOffReset:
Après avoir désactivé l’état déterminé de la barre de progression, vous devez le remettre à zéro.
Exemple :

Command: DeterminateOffReset:

Quit
Cette commande quitte le processus notify.
Exemple :

Command: Quit

Cette commande n’utilise pas les deux-points.
Vous pouvez également spécifier un message à afficher aux utilisateurs.
Exemple :

Command: Quit: Thanks for using this app.

Mises à jour de l’état Notify

Vous pouvez utiliser echo Status: pour informer les utilisateurs du processus notify. Voici un exemple de mise à jour de l’état :

echo Status: Installation de Jamf >>/var/tmp/depnotify.log
Remarque :

Si la commande Determinate: est utilisée, la barre de progression est incrémentée à chaque mise à jour de l’état.

Si vous utilisez Jamf Pro, vous pouvez également configurer l’écran notify pour qu’il lise et affiche les journaux de règles de Jamf Pro aux utilisateurs, en définissant la valeur jamf pour le réglage Style de journal de l’écran notify (NotifyLogStyle).

Expérience de l’utilisateur final avec l’écran notify

L’écran suivant affiche l’expérience attendue de l’utilisateur final lorsque l’écran notify est activé pendant Enrôlement automatisé des appareils :

  1. Fenêtre d’introduction avec nom d'utilisateur et animation
  2. Définition des mots de passe de connexion unique pour des comptes locaux
  3. Self Service facilite l’utilisation du Mac
  4. Installation de tout ce dont vous avez besoin pour votre premier jour
  5. Finalisation