Notify Screen

Jamf Connect Login can include the Notify screen (formerly DEPNotify.app), which allows a progress bar, customized text, and images to display when deployed during Automated Device Enrollment (formerly DEP). The Notify screen is configured by a script that writes commands to a control file.This script can then be specified with the Script Path setting.

Note: The RunScript mechanism must also be enabled with the authchanger tool. For more information, see Login Script.

Adding the Notify screen to Jamf Connect Login includes the following steps:

  1. Enable the Notify mechanism.

  2. Create a Notify script.

  3. Add the Notify script to your Jamf Connect Login configuration profile.

Step 1: Enabling Notify

The Notify screen must be enabled by adding its mechanism to the Jamf Connect loginwindow application. Add the Notify mechanism to the loginwindow application by executing the following command:

/usr/local/bin/authchanger -reset -OIDC -preAuth JamfConnectLogin:RunScript,privileged JamfConnectLogin:Notify

Note: If Okta is your cloud identity provider (IdP) replace "-OIDC" with "-Okta".

Step 2: Creating a Notify Script

The Notify mechanism is controlled by a script that writes echo commands to a control file. By default, the control file is in the following location:

/var/tmp/depnotify.log

Notify Commands

The following commands may be used with the Notify mechanism.

General Commands

Command

Description

Image:

This command replaces the default Notify image with an image at a specified path. The image will automatically scale to the correct size.

Example: Command: Image: /tmp/logo.png

MainText:

This command changes the main text displayed to users.

Example: Command: MainText: Please wait while your new MacBook Pro is being set up.

MainTextImage:

This command replaces the main text with a custom icon at a specified path. Images can be up to 660 x 105 pixels and scale proportionally to fit

Example: Command: MainTextImage: /tmp/logo.png

MainTitle:

This command changes the main title displayed to users.

Example: Command: MainTitle: Welcome to yournew MacBook Pro!

Interactive Commands

Interactive commands are used to customize the user interaction during the Notify process.

Command

Description

Determinate:

This command sets the the progress bar to be "determinate", progress in steps, instead of displaying a spinning bar. You must specify the number of steps you want to use during the Notify process. Once set, every status update in your script will increment the bar by one stage.

Example: Command: Determinate: 5

DeterminateManual:

This command sets the progress bar to be determinate and progress manually rather than with stage commands. You must specify the number of steps you want during the Notify process. Once set, you must manually progress the status bar using the DeterminateManualStep: command.

Example: Command: DeterminateManual: 5

DeterminateManualStep:

When in DeterminateManual: mode, this command will advance the progress bar by one step or a specified interval. The example below moves the progress bar by two steps.

Example: Command: DeterminateManualStep: 2

DeterminateOff:

This command disables the determinate state for the progress bar. Steps that already occurred remain completed in the progress bar. This allows you to move between a determinate state and non-determinate state without losing your progress.

Example: Command: DeterminateOff:

DeterminateOffReset:

After turning off the determinate state of the progress bar, you must reset it to zero.

Example: Command: DeterminateOffReset:

Quit

This command quits the Notify process.

Example: Command: Quit

Note: A colon is not used with this command.

You can also specify a message to display to users.

Example: Command: Quit: Thanks for using this app.

Notify Status Updates

You can use echo Status: to update users on the Notify process. The following is an example of a status update:

echo Status: Installing Jamf >>/var/tmp/depnotify.log

Note: If the Determinate: command is used, the progress bar increments with each status update.

Example Script and End User Experience

The following example script has been divided into its respective stages to show how commands display to end users:

Script

End User Experience

#!/bin/bash

#variables
NOTIFY_LOG="/var/tmp/depnotify.log"
TOKEN_BASIC="/var/tmp/idtokenbasic"
TOKEN_RAW="/var/tmp/idtokenraw"
GIVEN_NAME=Archie
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)
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)

echo "STARTING RUN" >> $NOTIFY_LOG

# Define the number of increments for the progress bar

echo "Command: Determinate: 6" >> $NOTIFY_LOG

N/A

#1 - Introduction window with username and animation

echo "Command: Image: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/com.apple.macbookpro-15-retina-touchid-space-gray.icns" >> $NOTIFY_LOG
echo "Command: MainTitle: Welcome, $GIVEN_NAME" >> $NOTIFY_LOG
echo "Command: MainText: Your Mac is now managed and will be automatically configured for you. \n $TOKEN_GIVEN_NAME" >> $NOTIFY_LOG
echo "Status: Preparing your new Mac..." >> $NOTIFY_LOG
sleep 10

images/download/attachments/79190918/Screenshot_2019-12-11_13.44.39.png

#2 - Setting up single sign-on passwords for local account

echo "Command: Image: /Applications/Utilities/Keychain Access.app/Contents/Resources/AppIcon.icns" >> $NOTIFY_LOG
echo "Command: MainTitle: Tired of remembering multiple passwords?" >> $NOTIFY_LOG
echo "Command: MainText: We use single sign-on services to help you log in to each of our corporate services. You can use your email address and account password to sign into all necessary applications - $TOKEN_UPN" >> $NOTIFY_LOG
echo "Status: Setting the account password for your Mac to sync with your network password..." >> $NOTIFY_LOG
sleep 10

images/download/attachments/79190918/Screenshot_2019-12-11_13.45.06.png

#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 the 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 Jamf Self Service..." >> $NOTIFY_LOG
sleep 10

images/download/attachments/79190918/Screenshot_2019-12-11_13.45.47.png

#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'll need today are already being installed. Once we're ready to start, 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/loc÷al/bin/jamf policy -event "InstallOffice"
sleep 5

images/download/attachments/79190918/Screenshot_2019-12-11_13.46.10.png

#5 - Finishing up

echo "Command: Image: /Applications/Slack.app/Contents/Resources/slack.icns" >> $NOTIFY_LOG
echo "Status: Installing Slack..." >> $NOTIFY_LOG
#/usr/local/bin/jamf policy -event "InstallSlack"
sleep 5

echo "Status: Finishing up..." >> $NOTIFY_LOG
sleep 5

###Clean Up
sleep 3

echo "Command: Quit" >> $NOTIFY_LOG
sleep 1

rm -rf $NOTIFY_LOG

images/download/attachments/79190918/Screen_Shot_2019-12-11_at_2.57.02_PM.png

Step 3: Adding the Notify Script to a Configuration Profile

The Notify script must be specified in a Jamf Connect Login configuration profile and added to the Jamf Connect Login deployment package.

  1. In Jamf Connect Configuration, click New.

  2. Complete the setup assistant and Advanced Setup.

  3. Click the Login tab.

  4. In the Script section, enter the file path of your script in the Script Path field.

  5. (Optional) Configure any additional settings for Jamf Connect Login.

  6. Click File > Save.

  7. Choose Jamf Connect Login as the configured application.

  8. Choose Configuration Profile (.mobileconfig) or Property List (.plist) as the file format.

    Note: If saving as a .mobileconfig, you must also complete the payload configuration profile data fields.

  9. Click Save.

Your configuration profile is now ready to be uploaded to target computers.

Related Information

For related information, see the Configuring Jamf Connect Login section of this guide.

For related information about packaging Jamf Connect, see the Customizing the Jamf Connect Login package with Composer Knowledge Base article.

Copyright     Privacy Policy     Terms of Use     Security
© copyright 2002-2020 Jamf. All rights reserved.