-
Notifications
You must be signed in to change notification settings - Fork 36
JAMF Setup Checklist
The JAMF Concepts team came up with this little gem called "Setup Checklist" (https://github.com/Jamf-Concepts/setup-checklist). Often times after an enrollment, you need to make sure that users are logged into specific apps, screen sharing is enabled, dock applications are installed, etc...That is what this program does for you, in a nicely formatted step-by-step GUI window. Here is a sample of what you can do with it
Export.Setup.Video.mp4
Full details on how this application works can be found here: https://github.com/Jamf-Concepts/setup-checklist
For the recording above, I used the open source application called Recordly https://recordly.dev
Learning how to use the JAMF Setup Checklist can be a little overwhelming as there are a lot of configuration options. I have listed my Configuration Profile below for your reference:
Domain: com.jamf.setupchecklist
<?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>
<!-- General configuration -->
<key>DEBUG</key>
<false/>
<key>openWhenFinished</key>
<string>com.apple.safari</string>
<key>accentColor</key>
<string>##red</string>
<key>hideOtherApps</key>
<false/>
<key>icon</key>
<string>/Library/Application Support/GiantEagle/Enrollment/GE_Icon.png</string>
<key>title</key>
<string>Enrollment Checklist</string>
<key>message</key>
<string>Let's finish setting up your new Mac!</string>
<key>showIconInDock</key>
<true/>
<key>steps</key>
<array>
<!-- Welcome step -->
<dict>
<key>identifier</key>
<string>welcome-message</string>
<key>icon</key>
<string>symbol:list.bullet.clipboard</string>
<key>iconColor</key>
<string>##red</string>
<key>image</key>
<string>/Library/Application Support/GiantEagle/Enrollment/HQWallpaper.jpg</string>
<key>kind</key>
<string>message</string>
<key>title</key>
<dict>
<key>en</key>
<string>Welcome to macOS Setup</string>
</dict>
<key>message</key>
<dict>
<key>en</key>
<string>Just a few more steps to configure your new Mac.</string>
</dict>
</dict>
<!-- Device Compliance step -->
<!-- Device Compliance registration happens silently and Company Portal is enabled as an Autofill Extension -->
<dict>
<key>title</key>
<string>Register for Platform SSO</string>
<key>message</key>
<string>Platform SSO allows your computer to sync its password to your organizational account, and enables sign-ins across most of our platforms.</string>
<key>kind</key>
<string>script</string>
<key>identifier</key>
<string>script-psso</string>
<key>icon</key>
<string>/Applications/Company Portal.app</string>
<key>buttonLabel</key>
<string>Register for PSSO</string>
<key>windowPosition</key>
<string>left</string>
<key>openAutomatically</key>
<true/>
<key>buttonScript</key>
<string>if [[ $(/Library/Application\ Support/JAMF/Jamf.app/Contents/MacOS/Jamf\ Conditional\ Access.app/Contents/MacOS/Jamf\ Conditional\ Access gatherAADInfo | grep -c "AAD ID acquired") == 1 ]]; then touch /Users/Shared/.compliance; pluginkit -e use -i com.microsoft.CompanyPortalMac.Mac-Autofill-Extension; else open -a "Company Portal"; fi</string>
<key>updateStatusScript</key>
<string>if [[ -f /Users/Shared/.compliance ]]; then exit 0; else exit 1; fi</string>
<key>prepareScript</key>
<string>if [[ -f /Users/Shared/.compliance ]]; then setupchecklist status script-compliance completed; fi</string>
</dict>
<dict>
<key>identifier</key>
<string>script-companyportal</string>
<key>icon</key>
<string>/Applications/Company Portal.app</string>
<key>image</key>
<string>/Applications/Company Portal.app</string>
<key>kind</key>
<string>script</string>
<key>actionButtonLabel</key>
<string>Register</string>
<key>actionButtonScript</key>
<string>/Library/Application\ Support/JAMF/Jamf.app/Contents/MacOS/Jamf\ Conditional\ Access.app/Contents/MacOS/Jamf\ Conditional\ Access registerWithIntune</string>
<key>title</key>
<dict>
<key>en</key>
<string>Register with Company Portal</string>
</dict>
<key>message</key>
<dict>
<key>en</key>
<string>Company Portal allows access to Giant Eagle cloud resources. Sign in with your Giant Eagle credentials when Company Portal opens and follow the on‑screen prompts. Your device must meet Giant Eagle compliance and security requirements to continue using corporate applications and services, for example Microsoft Teams and Microsoft Outlook</string>
</dict>
<key>updateStatusScript</key>
<string>defaults read com.microsoft.CompanyPortalMac "com.microsoft.intune.connectivityCheck.lastHeartbeatTime" 2>/dev/null | grep -c "+"</string>
</dict>
<!-- Wallpaper step -->
<dict>
<key>identifier</key>
<string>wallpaper</string>
<key>icon</key>
<string>symbol:photo.artframe</string>
<key>iconColor</key>
<string>##red</string>
<key>kind</key>
<string>wallpaper</string>
<key>path</key>
<string>/Library/Application Support/GiantEagle/Wallpapers</string>
<key>title</key>
<dict>
<key>en</key>
<string>Choose a Wallpaper</string>
</dict>
<key>message</key>
<dict>
<key>en</key>
<string>Please choose a background from our list of wallpapers. You can always change it later</string>
</dict>
</dict>
<!-- Dock step -->
<dict>
<key>dockAction</key>
<array>
<string>add</string>
<string>replace</string>
</array>
<key>dockItems</key>
<array>
<string>com.jamf.selfserviceplus</string>
<string>com.apple.apps.launcher</string>
<string>com.apple.systempreferences</string>
<string>com.apple.Safari</string>
<string>com.microsoft.outlook</string>
<string>com.microsoft.teams2</string>
<string>Downloads</string>
</array>
<key>identifier</key>
<string>dock</string>
<key>kind</key>
<string>dock</string>
<key>iconColor</key>
<string>##red</string>
<key>mayKeepCurrent</key>
<true/>
<key>message</key>
<string>For convienient access, we recommend adding these apps and items to your Dock.</string>
</dict>
<!-- Open Outlook step -->
<dict>
<key>identifier</key>
<string>open-outlook</string>
<key>item</key>
<string>/Applications/Microsoft Outlook.app</string>
<key>kind</key>
<string>open</string>
<key>title</key>
<dict>
<key>en</key>
<string>Sign In to Outlook</string>
</dict>
<key>message</key>
<dict>
<key>en</key>
<string>Outlook is a comprehensive personal information manager that integrates email, calendaring, task management, and contact organization. Sign in with your Giant Eagle credentials when prompted.</string>
</dict>
</dict>
<!-- Default mail step -->
<dict>
<key>identifier</key>
<string>default-app-mail</string>
<key>bundle-id</key>
<string>com.microsoft.Outlook</string>
<key>icon</key>
<string>symbol:envelope.badge</string>
<key>iconColor</key>
<string>##red</string>
<key>kind</key>
<string>defaultApp</string>
<key>mayKeepCurrent</key>
<false/>
<key>title</key>
<dict>
<key>en</key>
<string>Set Default Mail App</string>
</dict>
<key>message</key>
<dict>
<key>en</key>
<string>Please verify that your default email app is set to Outlook.</string>
</dict>
<key>urlScheme</key>
<string>mailto</string>
</dict>
<!-- Teams Screen Recording configuration step -->
<dict>
<key>bundle-id</key>
<array>
<string>com.microsoft.teams2</string>
</array>
<key>icon</key>
<string>symbol:rectangle.on.rectangle.angled</string>
<key>iconColor</key>
<string>##red</string>
<key>movie</key>
<string>/Library/Application Support/GiantEagle/Enrollment/Security_Privacy.mp4</string>
<key>identifier</key>
<string>screensharing</string>
<key>kind</key>
<string>screensharing</string>
<key>message</key>
<string>Enable Screen & System Audio Recording for Microsoft Teams</string>
<key>openAutomatically</key>
<true/>
<key>title</key>
<string>Configure Screen Sharing</string>
<key>windowPosition</key>
<string>right</string>
</dict>
<!-- Open Teams step -->
<dict>
<key>identifier</key>
<string>open-teams</string>
<key>item</key>
<string>/Applications/Microsoft Teams.app</string>
<key>kind</key>
<string>script</string>
<key>actionButtonLabel</key>
<string>Open Teams</string>
<key>actionButtonScript</key>
<string>open "/Applications/Microsoft Teams.app"</string>
<key>title</key>
<dict>
<key>en</key>
<string>Sign In to Teams</string>
</dict>
<key>message</key>
<dict>
<key>en</key>
<string>Teams is a cloud-based collaboration platform that centralizes chat, video meetings, and file sharing into a single workspace. Click on your profile name to sign in.</string>
</dict>
<key>updateStatusScript</key>
<string>/usr/bin/plutil -extract "MCMMetadataInfo.SandboxProfileDataValidationInfo.Parameters._USER" raw "$HOME/Library/Containers/com.microsoft.teams2/.com.apple.containermanagerd.metadata.plist" | grep -c "$USER"</string>
</dict>
<!-- Open OneDrive step -->
<dict>
<key>identifier</key>
<string>open-onedrive</string>
<key>item</key>
<string>/Applications/OneDrive.app</string>
<key>image</key>
<string>/Applications/OneDrive.app</string>
<key>kind</key>
<string>script</string>
<key>title</key>
<dict>
<key>en</key>
<string>Sign In to OneDrive</string>
</dict>
<key>message</key>
<dict>
<key>en</key>
<string>OneDrive stores your work files and syncs your Desktop and Documents folders to the cloud. Sign in with your Giant Eagle credentials and complete the folder setup when prompted.</string>
</dict>
<key>buttonLabel</key>
<string>Open OneDrive</string>
<key>prepareScript</key>
<string>#!/bin/zsh
# Verify OneDrive is installed before showing this step.
# If missing, mark error so it's visible rather than silently pending.
if [[ ! -e "/Applications/OneDrive.app" ]]; then
/usr/local/bin/setupchecklist status open-onedrive error 2>/dev/null
exit 1
fi
exit 0
</string>
<key>buttonScript</key>
<string>#!/bin/zsh
open /Applications/OneDrive.app
exit 0
</string>
<key>updateStatusScript</key>
<string>/usr/libexec/PlistBuddy -c "Print AccountInfo_Business1:UserEmail" ~/Library/Group\ Containers/UBF8T346G9.OneDriveStandaloneSuite/Library/Preferences/UBF8T346G9.OneDriveStandaloneSuite.plist</string>
</dict>
<!-- Get help step -->
<!-- This step only shows the Support App recording. -->
<dict>
<key>identifier</key>
<string>gethelp-message</string>
<key>icon</key>
<string>symbol:questionmark.circle</string>
<key>iconColor</key>
<string>##red</string>
<key>movie</key>
<string>/Library/Application Support/GiantEagle/Enrollment/supportapp.mp4</string>
<key>kind</key>
<string>message</string>
<key>title</key>
<dict>
<key>en</key>
<string>Need Help?</string>
</dict>
<key>message</key>
<dict>
<key>en</key>
<string>Use our Support App to get help with your Mac.</string>
</dict>
</dict>
<!-- This step only shows the New to Mac video. Opens Self Service and runs a Send Inventory. -->
<dict>
<key>buttonLabel</key>
<string>Open Self Service</string>
<key>icon</key>
<string>symbol:macbook.badge.checkmark</string>
<key>identifier</key>
<string>open-jamfrecon-selfservice</string>
<key>item</key>
<string>jamfselfservice://content?entity=policy&id=66&action=execute</string>
<key>kind</key>
<string>open</string>
<key>message</key>
<dict>
<key>en</key>
<string>This step hands off to Self Service to run the Jamf inventory update policy and refresh the device information in our MDM.</string>
</dict>
<key>title</key>
<dict>
<key>en</key>
<string>Update device information in Jamf</string>
<key>nl</key>
<string>Update toestel informatie in Jamf</string>
</dict>
<key>icon</key>
<string>symbol:gearshape</string>
<key>iconColor</key>
<string>##red</string>
<key>movie</key>
<string>/Library/Application Support/GiantEagle/Enrollment/NewToMac.mp4</string>
<key>buttonLabel</key>
</dict>
<!-- Thank you step -->
<dict>
<key>identifier</key>
<string>thankyou-message</string>
<key>icon</key>
<string>symbol:quote.bubble</string>
<key>iconColor</key>
<string>##red</string>
<key>image</key>
<string>/Library/Application Support/GiantEagle/Enrollment/SetupCompleted.jpeg</string>
<key>kind</key>
<string>message</string>
<key>title</key>
<dict>
<key>en</key>
<string>Thank you</string>
</dict>
<key>message</key>
<dict>
<key>en</key>
<string>The configuration is complete, enjoy your Mac!</string>
</dict>
</dict>
<!-- end of steps-->
</array>
</dict>
</plist>
Inside of the Checklist app, I have a few other movies, they can be found here: https://github.com/ScottEKendall/JAMF-Pro-Scripts/tree/main/WikiPages/JAMF_CheckList. I have also included the preview(s) below
Apple Support New To Mac:
https://www.youtube.com/watch?v=rqI6Nq9rJ74&t=19s. (too big to embed, so here is the direct link)
Support.app demo:
supportapp.mp4
I am trying to drive my users to use the support.app as much as possible. Details about this app can be found here: https://github.com/root3nl/supportapp and I have some examples on my Wiki pages as well...
