-
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
JAMFCheckList_EnrollmentDone.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:
<?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>DEBUG</key>
<true/>
<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>
<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>
<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>/usr/local/jamf/bin/jamfAAD 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>
<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>
<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.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>
<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>
<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>
<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>
/usr/bin/plutil -extract "AccountInfo_Business1.UserEmail" raw ~/Library/Group\ Containers/UBF8T346G9.OneDriveStandaloneSuite/Library/Preferences/UBF8T346G9.OneDriveStandaloneSuite.plist | grep -c "@"
<key>updateStatusScript</key>
<string>/usr/bin/plutil -extract "MCMMetadataInfo.SandboxProfileDataValidationInfo.Parameters._USER" raw "~/Library/Containers/com.microsoft.teams2/.com.apple.containermanagerd.metadata.plist" | grep -c "$USER"</string>
</dict>
<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/bin/plutil -extract "AccountInfo_Business1" raw ~/Library/Group\ Containers/UBF8T346G9.OneDriveStandaloneSuite/Library/Preferences/UBF8T346G9.OneDriveStandaloneSuite.plist | grep -c "LastKFMOptInTime"</string>
</dict>
<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>
<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>
<dict>
<key>identifier</key>
<string>run-jamf-policies</string>
<key>kind</key>
<string>script</string>
<key>title</key>
<string>Finish Giant Eagle Setup</string>
<key>message</key>
<dict>
<key>en</key>
<string>Learn the basics to get started with your Mac—like using the trackpad, menu bar, and Control Center—while we complete the final Giant Eagle setup. This may take a few minutes as your Mac connects to the management server.</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>
<string>Run Final Setup</string>
<key>buttonScript</key>
<string>#!/bin/zsh
[[ ! -x /usr/local/bin/jamf ]] && exit 1
TRIES=0
until /usr/local/bin/jamf checkJSSConnection >/dev/null 2>&1 || [[ "$TRIES" -ge 12 ]]; do
((TRIES++))
/bin/sleep 5
done
if ! /usr/local/bin/jamf checkJSSConnection >/dev/null 2>&1; then
exit 1
fi
/usr/local/bin/jamf policy
exit $?
</string>
<key>updateStatusScript</key>
<string>#!/bin/zsh
exit 0
</string>
<key>willContinueScript</key>
<string>#!/bin/zsh
exit 0
</string>
</dict>
<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>
</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
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...
