É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"
    #For TOKEN_BASIC, use same file path location as set for OIDCIDTokenPath in 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 # Define the number of increments for the progress bar
    echo "Command: Determinate: 6" >> $NOTIFY_LOG
     
    #1 - Introduction window with username and animation
    echo "Command: Image: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.macbookpro-15-retina-touchid-silver.icns" >> $NOTIFY_LOG
    echo "Command: MainTitle: Welcome, $TOKEN_GIVEN_NAME" >> $NOTIFY_LOG
    echo "Command: MainText: Your Mac is now enrolled and will be automatically configured for you." >> $NOTIFY_LOG
    echo "Status: Preparing your new Mac..." >> $NOTIFY_LOG
    sleep 10
     
    #2 - Setting up single sign-on passwords for local account
    echo "Command: Image: /System/Applications/Utilities/Keychain Access.app/Contents/Resources/AppIcon.icns" >> $NOTIFY_LOG
    echo "Command: MainTitle: Tired of remembering multiple passwords? \n $TOKEN_GIVEN_NAME " >> $NOTIFY_LOG
    echo "Command: MainText: We use single sign-on services to help you sign in to each of our corporate services.
    Use your email address and account password to sign in to all necessary applications." >> $NOTIFY_LOG
    echo "Status: Setting the password for your Mac to sync with your network password..." >> $NOTIFY_LOG
    sleep 10
     
    #3 - Self Service makes the Mac life easier
    echo "Command: Image: /Applications/Self Service.app/Contents/Resources/AppIcon.icns" >> $NOTIFY_LOG
    echo "Command: MainTitle: Self Service makes Mac life easier" >> $NOTIFY_LOG
    echo "Command: MainText: Self Service includes helpful bookmarks and installers for other applications that may interest you." >> $NOTIFY_LOG
    echo "Status: Installing Self Service..." >> $NOTIFY_LOG
    sleep 10
     
    #4 - Everything you need for your first day
    ###Jamf Triggers
    echo "Command: Image: /System/Library/CoreServices/Install in Progress.app/Contents/Resources/Installer.icns" >> $NOTIFY_LOG
    echo "Command: MainTitle: Installing everything you need for your first day." >> $NOTIFY_LOG
    echo "Command: MainText: All the apps you will need today are already being installed. When setup is complete, you'll find Microsoft Office, Slack, and Zoom are all ready to go. Launch apps from the Dock and have fun!" >> $NOTIFY_LOG
    echo "Status: Installing Microsoft Office..." >> $NOTIFY_LOG
    /usr/local/bin/jamf policy -event "InstallOffice"
    sleep 5
     
    #5 - Finishing up
    echo "Command: Image: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/ApplicationsFolderIcon.icns" >> $NOTIFY_LOG
    echo "Status: Installing Slack..." >> $NOTIFY_LOG
    /usr/local/bin/jamf policy -event "InstallSlack"
    sleep 5
    echo "Status: Finishing up... We're almost ready for you, $TOKEN_GIVEN_NAME" >> $NOTIFY_LOG
    sleep 3
     
    ###Clean Up
    sleep 3
    echo "Command: Quit" >> $NOTIFY_LOG
    sleep 1
    rm -rf $NOTIFY_LOG
     
    #6 - Disable notify screen from loginwindow process
    /usr/local/bin/authchanger -reset -JamfConnect	

    Pour télécharger des exemples de scripts utilisables comme point de départ, consultez le référentiel GitHub de Jamf : https://github.com/jamf/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