A major update to the practical, MDM-agnostic, user-friendly approach to surfacing Mac compliance information directly to end-users — and now enterprise reporting data warehouses — via your MDM’s self-service app

Overview
Mac Health Check provides a practical, user-friendly, MDM-agnostic approach to surfacing Mac compliance information directly to end-users via an MDM’s self-service app.
Built using the open-source utility swiftDialog, the solution acts as a “heads-up display” presenting real-time system health and policy compliance status in a clear and interactive format.
Administrators can customize the user interface using swiftDialog’s visual capabilities, making the experience both informative and approachable.
The tool logs results for review, while not altering device configuration, and a “Silent” Operation Mode makes Mac Health Check ideal for IT visibility without end-user intrusion.
🆕 Mac Health Check version
4.0.0generates client-side JSON — leveraging new Inspect Mode features of swiftDialog3.1.0— which can optionally be delivered via Splunk HEC






Screencast
Use Cases
Mac Health Check is particularly valuable in IT support workflows, serving as an initial triage point for Tier 1 support, while also acting as a verification tool for Tier 2 teams both during and after remediation efforts.
Step 0 for Tier 1
- User has a working Internet connection
- User knows their directory credentials
- Mac can execute policies
- Validates Network Access Controls
Step 99 for Tier 2
- Initial assessment for support sessions
- Easily confirms remediation efforts
- Provides peace-of-mind for end-users
Silent Mode
- No dialog is presented to the end-user
- Silently performs all health checks and logs results
- Ideal for background compliance reporting
- Complements existing MDM compliance frameworks
Presentation
Features
The following health checks and information reporting are included in version 4.0.0, which operates in Self Service mode by default. (Change operationMode to Debug, Development or Test when getting ready to deploy in production.)
Health Checks

🎉 Improved in version 4.0.0
- macOS Version
- Available Updates (including deferred and DDM-enforced updates)
- System Integrity Protection
- Signed System Volume (SSV)
- Firewall
- FileVault Encryption
- Gatekeeper / XProtect
- Touch ID
- Password Hint
- AirDrop
- AirPlay Receiver
- Bluetooth Sharing
- VPN Client
- Last Reboot
- Free Disk Space
- User’s Directory Size and Item Count
- Desktop
- Downloads
- Trash
- MDM Profile
- 🆕 Entra ID Registration
- MDM Certificate Expiration
- Apple Push Notification service
- Jamf Pro Check-in
- Jamf Pro Inventory
- Extended Network Checks
- Apple Push Notification Hosts
- Apple Device Management
- Apple Software and Carrier Updates
- Apple Certificate Validation
- Apple Identity and Content Services
- Jamf Hosts
- App Auto-Patch
- 🆕 Homebrew Status
- 🎉 Electron Corner Mask 🔗
- Organizationally required Applications (i.e., Microsoft Teams)
- BeyondTrust Privilege Management*
- Cisco Umbrella*
- CrowdStrike Falcon*
- Palo Alto GlobalProtect*
- 🆕 Wi-Fi Strength
- Network Quality Test
- Update Computer Inventory
*Requires external check
Information Reporting

- IT Support
- Telephone
- Website
- Knowledge Base Article
- User Information
- Full Name
- User Name
- User ID
- Volume Owners
- Secure Token
- Location Services
- Microsoft OneDrive Sync Date
- Platform Single Sign-on Extension
- Computer Information
- macOS version (build)
- System Memory
- System Storage
- Dialog version
- Script version
- Computer Name
- Serial Number
- Wi-Fi SSID
- Wi-Fi IP Address
- VPN IP Address
- Jamf Pro Information**
- Computer ID
- Site
**Payload Variables for Configuration Profiles
Policy Log Reporting
- Warning when logged-in user is a member of
admin - Deferred Software Updates
- Logged-In User Group Membership
- Bootstrap Token
- sudoers
- Kerberos SSOe
- SSH
- Time Machine
- Battery Cycle Count
- Network Time Server
- Jamf Pro Computer ID
- Site
MHC (4.0.0): 2026-07-14 01:02:03 - [NOTICE] WARNING: 'localadmin' IS A MEMBER OF 'admin'; User: macOS Server Administrator (localadmin) [503] staff everyone localaccounts _appserverusr admin _appserveradm com.apple.sharepoint.group.4 com.apple.sharepoint.group.3 com.apple.sharepoint.group.1 _appstore _lpadmin _lpoperator _developer _analyticsusers com.apple.access_ftp com.apple.access_screensharing com.apple.access_ssh com.apple.access_remote_ae com.apple.sharepoint.group.2; Bootstrap Token supported on server: YES; Bootstrap Token escrowed to server: YES; sudo Check: /etc/sudoers: parsed OK; sudoers: root ALL = (ALL) ALL %admin ALL = (ALL) ALL ; Platform SSOe: localadmin NOT logged in; Location Services: Enabled; SSH: On; Microsoft OneDrive Sync Date: Not Configured; Time Machine Backup Date: Not configured; localadmin's Desktop Size: 160M for 116 item(s); localadmin's Trash Size: 1.8M for 3 item(s); Battery Cycle Count: 0; Wi-Fi: Liahona; Ethernet IP address: 17.113.201.250; VPN IP: 17.113.201.250; Network Time Server: time.apple.com; Jamf Pro Computer ID: 007; Site: Servers
Deployment

Deployment of Mac Health Check involves configuring organizational defaults, uploading the script to your MDM server, creating a policy to run it on-demand and testing to ensure proper output and behavior.
1. Local Test
Jumpstart your Mac Health Check implementation by first conducting a local test on a fully enrolled, non-production Mac
- Visit the Mac Health Check repository on GitHub
- Download the
mainbranch by selecting Code > Download ZIP

- In an elevated Terminal session, change to the downloaded
Mac-Health-Check-maindirectory
cd ~/Downloads/Mac-Health-Check-main
- Execute the
Mac-Health-Check.zshscript
zsh Mac-Health-Check.zsh


- Review the various checks and the static computer information (visible after clicking the Help button in the bottom, right-hand corner).
- Review the script’s output:
root@XDT8675309 Mac-Health-Check-main # zsh Mac-Health-Check.zsh
MHC (4.0.0): 2026-07-15 04:42:13 - [PRE-FLIGHT] ###
MHC (4.0.0): 2026-07-15 04:42:13 - [PRE-FLIGHT] # Mac Health Check (4.0.0)
MHC (4.0.0): 2026-07-15 04:42:13 - [PRE-FLIGHT] # https://snelson.us/mhc
MHC (4.0.0): 2026-07-15 04:42:13 - [PRE-FLIGHT] #
MHC (4.0.0): 2026-07-15 04:42:13 - [PRE-FLIGHT] # Operation Mode: Self Service
MHC (4.0.0): 2026-07-15 04:42:13 - [PRE-FLIGHT] ###
MHC (4.0.0): 2026-07-15 04:42:13 - [PRE-FLIGHT]
MHC (4.0.0): 2026-07-15 04:42:13 - [PRE-FLIGHT] Initiating …
MHC (4.0.0): 2026-07-15 04:42:13 - [PRE-FLIGHT] Dan K. Snelson MacBook Air (M2, 2022) (S/N XDT8675309)
MHC (4.0.0): 2026-07-15 04:42:13 - [PRE-FLIGHT] Dan K. Snelson (dan) [502]
MHC (4.0.0): 2026-07-15 04:42:13 - [PRE-FLIGHT] jq found; using jq for JSON validation and formatting.
MHC (4.0.0): 2026-07-15 04:42:13 - [NOTICE] Client-Side Cache: installing client-side script at /Library/Management/org.churchofjesuschrist/MHC.zsh
MHC (4.0.0): 2026-07-15 04:42:13 - [INFO] Client-Side Cache: generated LaunchDaemon plist validated at /Library/LaunchDaemons/org.churchofjesuschrist.MHC.plist
MHC (4.0.0): 2026-07-15 04:42:13 - [NOTICE] Client-Side Cache: client-side assets already current; install skipped.
MHC (4.0.0): 2026-07-15 04:42:13 - [PRE-FLIGHT] swiftDialog version 3.1.0.4994 found; proceeding …
MHC (4.0.0): 2026-07-15 04:42:13 - [PRE-FLIGHT] Forcible-quit for all other running dialogs …
MHC (4.0.0): 2026-07-15 04:42:13 - [INFO] The 'Dialog' process isn’t running.
MHC (4.0.0): 2026-07-15 04:42:13 - [PRE-FLIGHT] Complete
MHC (4.0.0): 2026-07-15 04:42:13 - [NOTICE] Current Elapsed Time: 0h:0m:2s
MHC (4.0.0): 2026-07-15 04:42:13 - [NOTICE] Operation Mode is Self Service; using MDM-specific dialogJSONFile.
MHC (4.0.0): 2026-07-15 04:42:15 - [INFO] dialogJSONFile verified: /var/tmp/dialogJSONFile_MHC.yCwp
MHC (4.0.0): 2026-07-15 04:42:15 - [INFO] Dock icon source: /var/tmp/dockicon.png
MHC (4.0.0): 2026-07-15 04:42:15 - [INFO] Launching dialog binary: /Library/Application Support/Dialog/Mac Health Check.app/Contents/MacOS/dialogcli
MHC (4.0.0): 2026-07-15 04:42:16 - [INFO] Dialog PID: 25564
MHC (4.0.0): 2026-07-15 04:42:17 - [NOTICE] Operation Mode is Self Service; using MDM-specific Health Checks.
MHC (4.0.0): 2026-07-15 04:42:17 - [NOTICE] Check macOS Version …
MHC (4.0.0): 2026-07-15 04:42:19 - OS Build, 25F80, ends with a number; proceeding with SOFA compliance check …
MHC (4.0.0): 2026-07-15 04:42:19 - Using cached SOFA data (age within 1d)
MHC (4.0.0): 2026-07-15 04:42:19 - Model Identifier: Mac14,2
MHC (4.0.0): 2026-07-15 04:42:19 - System Version: 26.5.1
MHC (4.0.0): 2026-07-15 04:42:19 - Latest Compatible macOS: Tahoe 26
MHC (4.0.0): 2026-07-15 04:42:21 - [INFO] macOS 26.5.1 (25F80)
MHC (4.0.0): 2026-07-15 04:42:22 - [NOTICE] Check Available Software Updates …
MHC (4.0.0): 2026-07-15 04:42:23 - [NOTICE] MDM Client Available OS Updates | Deferred Until
MHC (4.0.0): 2026-07-15 04:42:23 - [INFO] HumanReadableName = XProtectPayloads; | 2026-08-31 17:14:47 +0000";
MHC (4.0.0): 2026-07-15 04:42:24 - [INFO] DDM Resolver: source=currentApplicableDeclaration | date=Wed Jul 15 04:55:44 2026 | dateSource=padded | version=26.5.2 | build=(null)
MHC (4.0.0): 2026-07-15 04:42:24 - [INFO] Found 3 update snapshot(s)
MHC (4.0.0): 2026-07-15 04:42:24 - [INFO] Using Preboot UUID directory: /System/Volumes/Preboot/D1D5F7C8-B608-413F-9DFD-D0FFA24F074A
MHC (4.0.0): 2026-07-15 04:42:24 - [INFO] Analyzing Preboot path: /System/Volumes/Preboot/D1D5F7C8-B608-413F-9DFD-D0FFA24F074A
MHC (4.0.0): 2026-07-15 04:42:24 - [INFO] Listing contents of Preboot UUID directory:
total 0
drwxrwxrwx 4 root wheel 128 Jul 15 02:39 Library
drwxr-xr-x 4 root wheel 128 Jul 15 02:57 PreLoginData
drwxrwxrwx 3 root wheel 96 Jul 15 02:25 System
drwxr-xr-x 3 root wheel 96 Jul 15 03:00 Users
drwxrwxrwx 6 root wheel 192 Jul 15 02:54 boot
drwxrwxrwx 4 root wheel 128 Jul 15 02:47 cryptex1
drwxr-xr-x 3 root wheel 96 Jul 15 02:41 etc
drwxrwxrwx 11 root wheel 352 Jul 15 02:32 restore
drwxr-xr-x 80 _nsurlsessiond wheel 2560 Jul 15 02:54 restore-staged
drwxr-xr-x 4 root wheel 128 Jul 15 02:35 usr
drwxr-xr-x 3 root wheel 96 Jul 15 02:34 var
MHC (4.0.0): 2026-07-15 04:42:24 - [INFO] Staged update detected: 26.57 GB in cryptex1
MHC (4.0.0): 2026-07-15 04:42:24 - [INFO] Additional staged content: 1.59 GB in restore-staged
MHC (4.0.0): 2026-07-15 04:42:24 - [NOTICE] Update Staging Status: Fully staged
MHC (4.0.0): 2026-07-15 04:42:24 - [NOTICE] Update Size: 26.57 GB
MHC (4.0.0): 2026-07-15 04:42:24 - [NOTICE] Location: /System/Volumes/Preboot/D1D5F7C8-B608-413F-9DFD-D0FFA24F074A/cryptex1
MHC (4.0.0): 2026-07-15 04:42:24 - [INFO] Available Software Updates: macOS 26.5.2 (15-Jul-2026)
MHC (4.0.0): 2026-07-15 04:42:25 - [NOTICE] Check System Integrity Protection …
MHC (4.0.0): 2026-07-15 04:42:28 - [INFO] System Integrity Protection: Enabled
MHC (4.0.0): 2026-07-15 04:42:29 - [NOTICE] Check Signed System Volume …
MHC (4.0.0): 2026-07-15 04:42:32 - [INFO] Signed System Volume: Enabled
MHC (4.0.0): 2026-07-15 04:42:33 - [NOTICE] Check Firewall …
MHC (4.0.0): 2026-07-15 04:42:36 - [INFO] Firewall: Enabled
MHC (4.0.0): 2026-07-15 04:42:37 - [NOTICE] Check FileVault …
MHC (4.0.0): 2026-07-15 04:42:39 - [INFO] FileVault: Enabled
MHC (4.0.0): 2026-07-15 04:42:41 - [NOTICE] Check Gatekeeper / XProtect …
MHC (4.0.0): 2026-07-15 04:42:43 - [INFO] Gatekeeper / XProtect: Enabled
MHC (4.0.0): 2026-07-15 04:42:45 - [NOTICE] Check Touch ID …
MHC (4.0.0): 2026-07-15 04:42:48 - [INFO] Touch ID: Enabled & Enrolled (1 template(s))
MHC (4.0.0): 2026-07-15 04:42:49 - [NOTICE] Checking AirDrop Settings …
MHC (4.0.0): 2026-07-15 04:42:52 - [INFO] Run "defaults read /Users/dan/Library/Preferences/com.apple.sharingd.plist DiscoverableMode" as "502" …
MHC (4.0.0): 2026-07-15 04:42:52 - [ERROR] AirDrop Settings: Discoverable by Everyone (value: Everyone)
MHC (4.0.0): 2026-07-15 04:42:53 - [NOTICE] Checking AirPlay Receiver status …
MHC (4.0.0): 2026-07-15 04:42:56 - [INFO] Run "/usr/bin/defaults -currentHost read com.apple.controlcenter AirplayReceiverEnabled" as "502" …
MHC (4.0.0): 2026-07-15 04:42:56 - [INFO] Run "/usr/bin/defaults -currentHost read com.apple.controlcenter AirplayRecieverEnabled" as "502" …
MHC (4.0.0): 2026-07-15 04:42:56 - [INFO] Run "/usr/bin/defaults -currentHost read com.apple.controlcenter AirplayReceiverAdvertising" as "502" …
MHC (4.0.0): 2026-07-15 04:42:56 - [INFO] AirPlay Receiver: Disabled (key not found on macOS 26.5)
MHC (4.0.0): 2026-07-15 04:42:57 - [NOTICE] Checking Bluetooth Sharing status …
MHC (4.0.0): 2026-07-15 04:43:00 - [INFO] Run "defaults -currentHost read com.apple.Bluetooth PrefKeyServicesEnabled" as "502" …
MHC (4.0.0): 2026-07-15 04:43:00 - [INFO] Bluetooth Sharing: Disabled
MHC (4.0.0): 2026-07-15 04:43:01 - [NOTICE] Check GlobalProtect VPN Client …
MHC (4.0.0): 2026-07-15 04:43:02 - [INFO] GlobalProtect VPN Client Connected
MHC (4.0.0): 2026-07-15 04:43:03 - [NOTICE] Check Uptime …
MHC (4.0.0): 2026-07-15 04:43:06 - [INFO] Uptime: 49 mins
MHC (4.0.0): 2026-07-15 04:43:07 - [NOTICE] Check Free Disk Space …
MHC (4.0.0): 2026-07-15 04:43:10 - [INFO] Free Disk Space: 440.7 GB free (89.15% available)
MHC (4.0.0): 2026-07-15 04:43:11 - [NOTICE] Check Desktop directory size and item count …
MHC (4.0.0): 2026-07-15 04:43:14 - [INFO] Desktop: 2.2M (3 items) — 0% of disk
MHC (4.0.0): 2026-07-15 04:43:15 - [NOTICE] Check Downloads directory size and item count …
MHC (4.0.0): 2026-07-15 04:43:17 - [INFO] Downloads: 37M (1 items) — 0% of disk
MHC (4.0.0): 2026-07-15 04:43:19 - [NOTICE] Check Trash directory size and item count …
MHC (4.0.0): 2026-07-15 04:43:21 - [INFO] Trash: 35M (1 items) — 0% of disk
MHC (4.0.0): 2026-07-15 04:43:23 - [NOTICE] Check Jamf Pro MDM Profile …
MHC (4.0.0): 2026-07-15 04:43:25 - [INFO] Jamf Pro MDM Profile: Installed
MHC (4.0.0): 2026-07-15 04:43:27 - [NOTICE] Check Entra ID Registration …
MHC (4.0.0): 2026-07-15 04:43:29 - [INFO] Entra ID Registration: Registered (PSSO registration metadata detected for /Users/dan)
MHC (4.0.0): 2026-07-15 04:43:31 - [NOTICE] Check the expiration date of the Jamf Pro Certificate Authority …
MHC (4.0.0): 2026-07-15 04:43:33 - [INFO] Jamf Pro Certificate Authority Expiration: 09-Dec-2027
MHC (4.0.0): 2026-07-15 04:43:35 - [NOTICE] Check Apple Push Notification service …
MHC (4.0.0): 2026-07-15 04:43:41 - [INFO] Apple Push Notification service: 2026-07-15 04:29:17
MHC (4.0.0): 2026-07-15 04:43:42 - [NOTICE] Checking Last Jamf Pro check-in …
MHC (4.0.0): 2026-07-15 04:43:44 - [INFO] Last Jamf Pro check-in: 4:29 AM
MHC (4.0.0): 2026-07-15 04:43:46 - [NOTICE] Check Last Jamf Pro inventory update …
MHC (4.0.0): 2026-07-15 04:43:48 - [INFO] Last Jamf Pro inventory update: 4:29 AM
MHC (4.0.0): 2026-07-15 04:43:49 - [NOTICE] Check Apple Push Notification Hosts …
MHC (4.0.0): 2026-07-15 04:43:53 - [INFO] Apple Push Notification Hosts: courier.push.apple.com:5223 PASS; courier.push.apple.com:443 PASS; api.push.apple.com:443 PASS; api.push.apple.com:2197 PASS;
MHC (4.0.0): 2026-07-15 04:43:54 - [NOTICE] Check Apple Device Management …
MHC (4.0.0): 2026-07-15 04:43:59 - [INFO] Apple Device Management: albert.apple.com:443 PASS; captive.apple.com:80 PASS; captive.apple.com:443 PASS; gs.apple.com:443 PASS; humb.apple.com:443 PASS; static.ips.apple.com:80 PASS; static.ips.apple.com:443 PASS; sq-device.apple.com:443 PASS; tbsc.apple.com:443 PASS; time-ios.apple.com:123 PASS; time.apple.com:123 PASS; time-macos.apple.com:123 PASS; deviceenrollment.apple.com:443 PASS; deviceservices-external.apple.com:443 PASS; gdmf.apple.com:443 PASS; identity.apple.com:443 PASS; iprofiles.apple.com:443 PASS; mdmenrollment.apple.com:443 PASS; setup.icloud.com:443 PASS; vpp.itunes.apple.com:443 PASS;
MHC (4.0.0): 2026-07-15 04:44:00 - [NOTICE] Check Apple Software and Carrier Updates …
MHC (4.0.0): 2026-07-15 04:44:06 - [INFO] Apple Software and Carrier Updates: appldnld.apple.com:80 PASS; configuration.apple.com:443 PASS; gdmf.apple.com:443 PASS; gg.apple.com:80 PASS; gg.apple.com:443 PASS; gs.apple.com:80 PASS; gs.apple.com:443 PASS; ig.apple.com:443 PASS; mesu.apple.com:80 PASS; mesu.apple.com:443 PASS; oscdn.apple.com:80 PASS; oscdn.apple.com:443 PASS; osrecovery.apple.com:80 PASS; osrecovery.apple.com:443 PASS; skl.apple.com:443 PASS; swcdn.apple.com:80 PASS; swdist.apple.com:443 PASS; swdownload.apple.com:80 PASS; appldnld.apple.com.edgesuite.net:80 PASS; itunes.com:80 PASS; itunes.apple.com:443 PASS; updates-http.cdn-apple.com:80 PASS; updates.cdn-apple.com:443 PASS;
MHC (4.0.0): 2026-07-15 04:44:07 - [NOTICE] Check Apple Certificate Validation …
MHC (4.0.0): 2026-07-15 04:44:11 - [INFO] Apple Certificate Validation: certs.apple.com:80 PASS; certs.apple.com:443 PASS; crl.apple.com:80 PASS; crl.entrust.net:80 PASS; crl3.digicert.com:80 PASS; crl4.digicert.com:80 PASS; ocsp.apple.com:80 PASS; ocsp.digicert.cn:80 PASS; ocsp.digicert.com:80 PASS; ocsp.entrust.net:80 PASS; ocsp2.apple.com:443 PASS; valid.apple.com:443 PASS;
MHC (4.0.0): 2026-07-15 04:44:13 - [NOTICE] Check Apple Identity and Content Services …
MHC (4.0.0): 2026-07-15 04:44:17 - [INFO] Apple Identity and Content Services: appleid.apple.com:443 PASS; appleid.cdn-apple.com:443 PASS; idmsa.apple.com:443 PASS; gsa.apple.com:443 PASS; app-site-association.cdn-apple.com:443 PASS; app-site-association.networking.apple:443 PASS; audiocontentdownload.apple.com:80 PASS; audiocontentdownload.apple.com:443 PASS; devimages-cdn.apple.com:80 PASS; devimages-cdn.apple.com:443 PASS; download.developer.apple.com:80 PASS; download.developer.apple.com:443 PASS; playgrounds-assets-cdn.apple.com:443 PASS; playgrounds-cdn.apple.com:443 PASS; sylvan.apple.com:80 PASS; sylvan.apple.com:443 PASS;
MHC (4.0.0): 2026-07-15 04:44:18 - [NOTICE] Check Jamf Hosts …
MHC (4.0.0): 2026-07-15 04:44:27 - [INFO] Jamf Hosts: jamf.com:443 PASS; test.jamfcloud.com:443 PASS; account.jamf.com:443 PASS; idpcs.jamf.com:443 PASS; account-cdn.jamf.com:443 PASS; cdn.mfe.jamf.io:443 PASS; api.apigw.jamf.com:443 PASS; us.apigw.jamf.com:443 PASS; eu.apigw.jamf.com:443 PASS; apac.apigw.jamf.com:443 PASS; appinstallers-packages.services.jamfcloud.com:443 PASS; registration.cloudconnector.gov.services.jamfcloud.com:443 PASS; registration.cloudconnector.services.jamfcloud.com:443 PASS; ics.services.jamfcloud.com:443 PASS; csa.services.jamfcloud.com:443 PASS; jcds.apne1.inf.jamf.one:443 PASS; jcds.apse2.inf.jamf.one:443 PASS; jcds.euw2.inf.jamf.one:443 PASS; jcds.euc1.inf.jamf.one:443 PASS; jcds.use1.inf.jamf.one:443 PASS; packages.soup.services.jamfcloud.com:443 PASS; www.jamfroutines.com:443 PASS; icon-staging-production-use1-ics-application.s3.amazonaws.com:443 PASS; clientstream.launchdarkly.com:443 PASS; mobile.launchdarkly.com:443 PASS; app.launchdarkly.com:443 PASS; nom.telemetrydeck.com:443 PASS;
MHC (4.0.0): 2026-07-15 04:44:29 - [NOTICE] Checking App Auto-Patch last run …
MHC (4.0.0): 2026-07-15 04:44:31 - [INFO] App Auto-Patch last run: Today
MHC (4.0.0): 2026-07-15 04:44:32 - [NOTICE] Check Homebrew Status …
MHC (4.0.0): 2026-07-15 04:44:35 - [INFO] Homebrew Status: Not installed
MHC (4.0.0): 2026-07-15 04:44:36 - [NOTICE] Check Electron Corner Mask …
MHC (4.0.0): 2026-07-15 04:44:39 - [INFO] Electron Corner Mask: No Electron-based apps detected.
MHC (4.0.0): 2026-07-15 04:44:40 - [NOTICE] Internal Check: /Applications/Microsoft Teams.app …
MHC (4.0.0): 2026-07-15 04:44:43 - [INFO] Microsoft Teams installed
MHC (4.0.0): 2026-07-15 04:44:46 - [NOTICE] External Check: /Applications/PrivilegeManagement.app …
MHC (4.0.0): 2026-07-15 04:44:55 - [INFO] PrivilegeManagement running
MHC (4.0.0): 2026-07-15 04:44:56 - [NOTICE] External Check: /Applications/Cisco/Cisco Secure Client.app …
MHC (4.0.0): 2026-07-15 04:45:04 - [INFO] Cisco Secure Client running
MHC (4.0.0): 2026-07-15 04:45:05 - [NOTICE] External Check: /Applications/Falcon.app …
MHC (4.0.0): 2026-07-15 04:45:14 - [INFO] Falcon running
MHC (4.0.0): 2026-07-15 04:45:15 - [NOTICE] External Check: /Applications/GlobalProtect.app …
MHC (4.0.0): 2026-07-15 04:45:23 - [INFO] GlobalProtect running
MHC (4.0.0): 2026-07-15 04:45:25 - [NOTICE] Check Wi-Fi Signal …
MHC (4.0.0): 2026-07-15 04:45:28 - [INFO] Wi-Fi Signal: Excellent (-35 dBm)
MHC (4.0.0): 2026-07-15 04:45:29 - [NOTICE] Check Network Quality …
MHC (4.0.0): 2026-07-15 04:45:29 - [INFO] Using cached Network Quality Test
MHC (4.0.0): 2026-07-15 04:45:30 - [INFO] Download: 526.44 Mbps, Responsiveness: 996.0095825195312;
MHC (4.0.0): 2026-07-15 04:45:31 - [NOTICE] Update Computer Inventory …
MHC (4.0.0): 2026-07-15 04:45:31 - [NOTICE] Including '-endUsername' in 'jamf recon' (source: Platform SSOe; value: danksnelson)
MHC (4.0.0): 2026-07-15 04:46:08 - [INFO] Update Computer Inventory: Completed "jamf recon -endUsername danksnelson"
MHC (4.0.0): 2026-07-15 04:46:10 - [QUIT] Exiting …
MHC (4.0.0): 2026-07-15 04:46:10 - [NOTICE] User: Dan K. Snelson (dan) [502]; Security Mode: Full; DEP-allowed MDM Control: Enabled; Activation Lock: Disabled; Bootstrap Token supported on server: YES; Bootstrap Token escrowed to server: YES; Location Services: Enabled; SSH: On; Microsoft OneDrive Sync Date: Not Configured; Time Machine Backup Date: Not configured; Battery Cycle Count: 15; Rosetta-required apps: None detected; Wi-Fi: NO SIGNAL; VPN: Connected 10.254.97.89; Network Time Server: time.apple.com
MHC (4.0.0): 2026-07-15 04:46:10 - [NOTICE] Jamf Pro Computer ID: ; Site:
MHC (4.0.0): 2026-07-15 04:46:11 - [ERROR] Available Updates; AirDrop
MHC (4.0.0): 2026-07-15 04:46:11 - [NOTICE] Generating Splunk JSON report …
MHC (4.0.0): 2026-07-15 04:46:11 - [NOTICE] Splunk Reporting: local report written to /var/tmp/MacHealthCheck-Report.json
MHC (4.0.0): 2026-07-15 04:46:11 - [NOTICE] Splunk Reporting: test mode enabled; skipping Splunk HEC transmission.
MHC (4.0.0): 2026-07-15 04:46:13 - [NOTICE] Inspect Summary: wrote /var/tmp/MacHealthCheck-Inspect-Compliance.plist.
MHC (4.0.0): 2026-07-15 04:46:13 - [NOTICE] Inspect Summary: wrote /var/tmp/MacHealthCheck-Inspect-Config.json.
MHC (4.0.0): 2026-07-15 04:46:13 - [NOTICE] Inspect Summary: launched detached Preset 6 summary (PID 32917; log /var/tmp/MacHealthCheck-Inspect-Summary.log).
MHC (4.0.0): 2026-07-15 04:46:14 - [NOTICE] Inspect Summary: detached Preset 6 summary launched; retaining the existing completion countdown on the main dialog.
MHC (4.0.0): 2026-07-15 04:47:12 - [NOTICE] Total Elapsed Time: 0h:5m:1s
MHC (4.0.0): 2026-07-15 04:47:12 - [QUIT] Good manners don’t cost nothing, do they, eh?
- Wait for all checks to complete, then review the client-side report:



- Re-execute the
Mac-Health-Check.zshscript
zsh Mac-Health-Check.zsh
- Observe the cached report is immediately displayed
root@F7NPN93H-22AE57 Mac-Health-Check-main # zsh Mac-Health-Check.zsh MHC (4.0.0): 2026-07-15 04:34:29 - [PRE-FLIGHT] Created specified scriptLog: /var/log/org.churchofjesuschrist.log MHC (4.0.0): 2026-07-15 04:34:29 - [PRE-FLIGHT] ### MHC (4.0.0): 2026-07-15 04:34:29 - [PRE-FLIGHT] # Mac Health Check (4.0.0) MHC (4.0.0): 2026-07-15 04:34:29 - [PRE-FLIGHT] # https://snelson.us/mhc MHC (4.0.0): 2026-07-15 04:34:29 - [PRE-FLIGHT] # MHC (4.0.0): 2026-07-15 04:34:29 - [PRE-FLIGHT] # Operation Mode: Self Service MHC (4.0.0): 2026-07-15 04:34:29 - [PRE-FLIGHT] ### MHC (4.0.0): 2026-07-15 04:34:29 - [PRE-FLIGHT] MHC (4.0.0): 2026-07-15 04:34:29 - [PRE-FLIGHT] Initiating … MHC (4.0.0): 2026-07-15 04:34:29 - [PRE-FLIGHT] Dan K. Snelson MacBook Air (M2, 2022) (S/N F7NPN93HJ4) MHC (4.0.0): 2026-07-15 04:34:29 - [PRE-FLIGHT] Dan K. Snelson (dan) [502] MHC (4.0.0): 2026-07-15 04:34:29 - [PRE-FLIGHT] jq found; using jq for JSON validation and formatting. MHC (4.0.0): 2026-07-15 04:34:29 - [NOTICE] Client-Side Cache: installing client-side script at /Library/Management/org.churchofjesuschrist/MHC.zsh MHC (4.0.0): 2026-07-15 04:34:29 - [INFO] Client-Side Cache: generated LaunchDaemon plist validated at /Library/LaunchDaemons/org.churchofjesuschrist.MHC.plist MHC (4.0.0): 2026-07-15 04:34:29 - [NOTICE] Client-Side Cache: installed client-side script and LaunchDaemon org.churchofjesuschrist.MHC. MHC (4.0.0): 2026-07-15 04:34:30 - [PRE-FLIGHT] swiftDialog version 3.1.0.4994 found; proceeding … MHC (4.0.0): 2026-07-15 04:34:30 - [PRE-FLIGHT] Forcible-quit for all other running dialogs … MHC (4.0.0): 2026-07-15 04:34:30 - [INFO] The 'Dialog' process isn’t running. MHC (4.0.0): 2026-07-15 04:34:30 - [PRE-FLIGHT] Complete MHC (4.0.0): 2026-07-15 04:34:30 - [NOTICE] Inspect Summary Replay: launching cached Preset 6 summary from the last 900 seconds. MHC (4.0.0): 2026-07-15 04:34:30 - [NOTICE] Inspect Summary: launched detached Preset 6 summary (PID 24098; log /var/tmp/MacHealthCheck-Inspect-Summary.log). MHC (4.0.0): 2026-07-15 04:34:30 - [QUIT] Replayed cached inspect summary.

2. Customize Variables
Customize variables for your environment
- Review and adjust the Global Variables and Script Parameters as required for your environment
scriptLog(i.e., the location of your client-side logs)operationMode(i.e., Change toSelf Servicewhen ready to deploy in production)webhookURL(i.e., Microsoft Teams or Slack Webhook URL; Leave blank to disable)
###############################################################################################
#
# Global Variables
#
###############################################################################################
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin/
# Script Version
scriptVersion="4.0.0"
# Client-side Log
scriptLog="/var/log/org.churchofjesuschrist.log"
# Load is-at-least for version comparison
autoload -Uz is-at-least
# Minimum Required Version of swiftDialog
swiftDialogMinimumRequiredVersion="3.1.0.4994"
# Force locale to English (so `date` does not error on localization formatting)
LANG="en_us_88591"
# Elapsed Time
SECONDS="0"
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Script Parameters
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Parameter 4: Operation Mode [ Debug | Development | Self Service | Silent | Test ]
operationMode="${4:-"Self Service"}"
# Enable `set -x` if operation mode is "Debug" to help identify issues
[[ "${operationMode}" == "Debug" ]] && set -x
# Parameter 5: Microsoft Teams or Slack Webhook URL [ Leave blank to disable (default) | https://microsoftTeams.webhook.com/URL | https://hooks.slack.com/services/URL ]
webhookURL="${5:-""}"
- Set your preferred Organization Variables, some of which include:
organizationBrandingBannerURL(i.e., the URL of your banner)organizationOverlayiconURL(i.e., the URL of your Self Service branding icon)organizationDefaultsDomain(i.e., for External Checks)organizationColorScheme(i.e., your organization’s corporate colors)previousMinorOS(i.e., the number of previous minor OS versions which can pass the OS health check; thanks, @robjschroeder!)allowedMinimumFreeDiskPercentage(i.e., the allowed minimum percentage of free disk space)allowedMaximumDirectoryPercentage(i.e., the allowed maximum percentage of disk space for user directories such as Desktop, Downloads and Trash)networkQualityTestMaximumAge(i.e., frequently with which the time-intensive Network Quality Test should be executed)allowedUptimeMinutes(i.e., the allowed number of minutes since the last reboot)excessiveUptimeAlertStyle(i.e., should excessive uptime result in a “warning” or “error” ?)
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Organization Variables
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Script Human-readable Name
humanReadableScriptName="Mac Health Check"
# Organization's Script Name
organizationScriptName="MHC"
# Organization's Reverse Domain Name Notation (i.e., com.company.division; used for plist domains)
reverseDomainNameNotation="org.churchofjesuschrist"
# Client-side Deployment
# Organization's Directory (i.e., where client-side scripts reside)
organizationDirectory="/Library/Management/${reverseDomainNameNotation}"
clientSideScriptPath="${organizationDirectory}/${organizationScriptName}.zsh"
# LaunchDaemon Name & Path
launchDaemonLabel="${reverseDomainNameNotation}.${organizationScriptName}"
launchDaemonPath="/Library/LaunchDaemons/${launchDaemonLabel}.plist"
clientSideSkipChecks="false"
clientSideMaximumCacheAgeSeconds="129600"
currentScriptPath="${0:A}"
forceFreshRunTriggerFilePath="/var/tmp/MacHealthCheck-Force-Fresh-Run"
forceFreshRunDetected="false"
forceFreshRunSource="not_requested"
# Splunk and JSON reporting defaults
splunkJSONReportPath="/var/tmp/MacHealthCheck-Report.json"
cachedReportJSON=""
cachedReportModificationEpoch="0"
cachedReportAgeSeconds="0"
cachedReportValidationStatus="not_checked"
function validateCachedSplunkReport() {
local cachedReportPath="${1:-${splunkJSONReportPath}}"
cachedReportJSON=""
cachedReportModificationEpoch="0"
cachedReportAgeSeconds="0"
cachedReportValidationStatus="missing"
if [[ ! -f "${cachedReportPath}" ]]; then
return 1
fi
cachedReportModificationEpoch=$( stat -f %m "${cachedReportPath}" 2>/dev/null )
if [[ "${cachedReportModificationEpoch}" != <-> ]] || (( cachedReportModificationEpoch <= 0 )); then
cachedReportValidationStatus="invalid_mtime"
return 1
fi
cachedReportAgeSeconds=$(( $( date +%s ) - cachedReportModificationEpoch ))
if (( cachedReportAgeSeconds > clientSideMaximumCacheAgeSeconds )); then
cachedReportValidationStatus="stale"
return 1
fi
cachedReportJSON="$( < "${cachedReportPath}" )"
if ! printf '%s' "${cachedReportJSON}" | jq -e . >/dev/null 2>&1; then
cachedReportValidationStatus="invalid_json"
return 1
fi
cachedReportValidationStatus="valid"
return 0
}
case "${splunkOperationMode:l}" in
"off" )
splunkOperationMode="off"
;;
"test" )
splunkOperationMode="test"
;;
* )
splunkOperationMode="production"
;;
esac
if [[ "${operationMode}" == "Silent" ]] && [[ "${splunkOperationMode}" == "production" ]]; then
suppressNonSplunkConsoleLogging="true"
if { : >> "${scriptLog}" } 2>/dev/null; then
exec 2>> "${scriptLog}"
fi
else
suppressNonSplunkConsoleLogging="false"
fi
function clientSideEarlyLog() {
local messageText="${1}"
messageText="${messageText//$'\r'/ }"
messageText="${messageText//$'\n'/; }"
local logEntry="${organizationScriptName} (${scriptVersion}): $( date +%Y-%m-%d\ %H:%M:%S ) - [NOTICE] Client-Side Cache: ${messageText}"
printf '%s\n' "${logEntry}" >> "${scriptLog}" 2>/dev/null
if [[ "${suppressNonSplunkConsoleLogging}" != "true" ]]; then
printf '%s\n' "Client-Side Cache: ${messageText}"
fi
}
# Client-Side Cache version check
if [[ "${operationMode}" == "Silent" ]] && [[ "${splunkOperationMode}" == "production" ]]; then
if [[ -f "${forceFreshRunTriggerFilePath}" ]] || [[ "${forceFreshRun:l}" == "true" ]]; then
forceFreshRunDetected="true"
if [[ -f "${forceFreshRunTriggerFilePath}" ]] && [[ "${forceFreshRun:l}" == "true" ]]; then
forceFreshRunSource="trigger file and Parameter 11"
elif [[ -f "${forceFreshRunTriggerFilePath}" ]]; then
forceFreshRunSource="trigger file"
else
forceFreshRunSource="Parameter 11"
fi
clientSideSkipChecks="false"
clientSideEarlyLog "FORCE FRESH RUN triggered via ${forceFreshRunSource} — bypassing cache and forcing complete health check run."
if [[ -f "${forceFreshRunTriggerFilePath}" ]]; then
rm -f "${forceFreshRunTriggerFilePath}"
fi
if [[ -f "${splunkJSONReportPath}" ]]; then
rm -f "${splunkJSONReportPath}"
clientSideEarlyLog "Removed cached Splunk report at ${splunkJSONReportPath} before forced run."
fi
elif [[ "${currentScriptPath}" == "${clientSideScriptPath}" ]]; then
clientSideEarlyLog "Running from client-side script path; skipping cached-upload shortcut."
elif [[ -f "${clientSideScriptPath}" ]]; then
clientVersion=$( grep -m1 '^scriptVersion=' "${clientSideScriptPath}" 2>/dev/null | awk -F'"' '{print $2}' )
if [[ "${clientVersion}" == "${scriptVersion}" ]]; then
if validateCachedSplunkReport "${splunkJSONReportPath}"; then
clientSideSkipChecks="true"
clientSideEarlyLog "Client-side script version matches (${scriptVersion}); cached report is valid and ${cachedReportAgeSeconds}s old. Skipping health checks."
else
case "${cachedReportValidationStatus}" in
"missing" )
clientSideEarlyLog "Client-side script version matches (${scriptVersion}) but no cached report exists. Falling back to full health check."
;;
"invalid_json" )
clientSideEarlyLog "Cached report exists but is invalid JSON. Falling back to full health check."
;;
"stale" )
clientSideEarlyLog "Cached report is stale (${cachedReportAgeSeconds}s old; maximum ${clientSideMaximumCacheAgeSeconds}s). Falling back to full health check."
;;
* )
clientSideEarlyLog "Cached report could not be validated (${cachedReportValidationStatus}). Falling back to full health check."
;;
esac
fi
else
clientSideEarlyLog "Version mismatch (client=${clientVersion:-not found}, server=${scriptVersion}). Running full health check."
fi
else
clientSideEarlyLog "Client-side script not found at ${clientSideScriptPath}. Running full health check."
fi
fi
# Organization's Self Service Marketing Name
organizationSelfServiceMarketingName="Workforce App Store"
# Organization's Boilerplate Compliance Message
organizationBoilerplateComplianceMessage="Meets organizational standards"
# Organization's Branding Banner URL
organizationBrandingBannerURL="https://img.freepik.com/free-photo/black-wall-texture_1194-5564.jpg" # [Image by rawpixel.com on Freepik](https://www.freepik.com/author/rawpixel-com)
# Organization's Overlayicon URL
organizationOverlayiconURL="/System/Library/CoreServices/Apple Diagnostics.app"
# Enable Dock integration in non-Silent modes [ true | false ]
enableDockIntegration="true"
# Organization's Dock Icon URL / Path [ default | file://path | /local/path | https://... ]
dockIcon="https://usw2.ics.services.jamfcloud.com/icon/hash_08f287b1d7a9da36b733c0784031a4943bef3b82a2981eb937ab2f5b2bd55e91"
# Organization's Defaults Domain for External Checks
organizationDefaultsDomain="org.churchofjesuschrist.external"
# Organization's Color Scheme
if [[ $( defaults read /Users/$(stat -f %Su /dev/console)/Library/Preferences/.GlobalPreferences.plist AppleInterfaceStyle 2>/dev/null ) == "Dark" ]]; then
# Dark Mode
organizationColorScheme="weight=semibold,colour1=#D1D5DC,colour2=#F5F5F5"
else
# Light Mode
organizationColorScheme="weight=semibold,colour1=#18181B,colour2=#4D4D56"
fi
# Status Colors
statusColorSuccess="#65C466"
statusColorFail="#EB4C46"
statusColorError="#F5BE0A"
# Organization's Kerberos Realm (leave blank to disable check)
kerberosRealm=""
# Organization's Firewall Type [ socketfilterfw | pf ]
organizationFirewall="socketfilterfw"
# Organization's VPN client type [ none | paloalto | cisco | tailscale ]
vpnClientVendor="paloalto"
# Organization's VPN data type [ basic | extended ]
vpnClientDataType="extended"
# "Anticipation" Duration (in seconds)
if [[ "${operationMode}" == "Silent" ]]; then
anticipationDuration="0"
else
anticipationDuration="2"
fi
# How many previous minor OS versions will be marked as compliant
previousMinorOS="2"
# Allowed minimum percentage of free disk space
allowedMinimumFreeDiskPercentage="10"
# Allowed maximum percentage of disk space for user directories (i.e., Desktop, Downloads, Trash)
allowedMaximumDirectoryPercentage="5"
# Network Quality Test Maximum Age
# Leverages `date -v-`; One of either y, m, w, d, H, M or S
# must be used to specify which part of the date is to be adjusted
networkQualityTestMaximumAge="4H"
# SOFA Cache Maximum Age
# Leverages `date -v-`; One of either y, m, w, d, H, M or S
# must be used to specify which part of the date is to be adjusted
sofaCacheMaximumAge="1d"
# Allowed number of uptime minutes
# - 1 day = 24 hours × 60 minutes/hour = 1,440 minutes
# - 7 days, multiply: 7 × 1,440 minutes = 10,080 minutes
allowedUptimeMinutes="10080"
# Should excessive uptime result in a "warning" or "error" ?
excessiveUptimeAlertStyle="warning"
# Completion Timer (in seconds)
completionTimer="60"
- Adjust the various IT Support-related variables for your environment
- Dynamic
supportLabel1/supportValue1throughsupportLabel6/supportValue6 - Empty Label / Value pairs are skipped automatically
- Legacy fallback still works when all dynamic pairs are empty:
- Telephone (
supportTeamPhone) - Email (
supportTeamEmail) - Website (
supportTeamWebsite) - Knowledge Base Article (
supportKBURL)
- Telephone (
- Info button target now uses the first URL-like dynamic support value; if none is found, it falls back to legacy Knowledge Base values
- Dynamic
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# IT Support Variables
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
supportTeamName="IT Support"
supportTeamPhone="+1 (801) 555-1212"
supportTeamEmail="rescue@domain.org"
supportTeamWebsite="https://support.domain.org"
supportTeamHyperlink="[${supportTeamWebsite}](${supportTeamWebsite})"
supportKB="KB8675309"
infobuttonaction="https://servicenow.domain.org/support?id=kb_article_view&sysparm_article=${supportKB}"
supportKBURL="[${supportKB}](${infobuttonaction})"
infobuttontext="${supportKB}"
# Optional dynamic IT support label/value pairs
# Leave a supportLabel blank (or its matching supportValue blank) to hide that line.
supportLabel1="Telephone"
supportValue1="${supportTeamPhone}"
supportLabel2="Email"
supportValue2="${supportTeamEmail}"
supportLabel3="Website"
supportValue3="${supportTeamWebsite}"
supportLabel4="Knowledge Base Article"
supportValue4="${supportKBURL}"
supportLabel5=""
supportValue5=""
supportLabel6=""
supportValue6=""
3. Customize Health Checks
Mac Health Check includes MDM-specific pairs of List Items and Health Checks
MDM-specific List Items determine what is displayed to the end-user, while matching individual Health Checks control which functions are executed. (See: List Items & Checks.)
List Items
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Main Dialog Window
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
mainDialogJSON='
{
"commandfile" : "'"${dialogCommandFile}"'",
"bannerimage" : "'"${organizationBrandingBannerURL}"'",
"bannertext" : "'"${humanReadableScriptName} (${scriptVersion})"'",
"title" : "'"${humanReadableScriptName} (${scriptVersion})"'",
"titlefont" : "shadow=true, size=36, colour=#FFFDF4",
"ontop" : true,
"moveable" : true,
"windowbuttons" : "min",
"quitkey" : "k",
"icon" : "'"${icon}"'",
"overlayicon" : "'"${overlayicon}"'",
"message" : "none",
"iconsize" : "198",
"infobox" : "**User:** '"{userfullname}"'<br><br>**Computer Model:** '"{computermodel}"'<br><br>**Serial Number:** '"{serialnumber}"'<br><br>**System Memory:** '"${systemMemory}"'<br><br>**System Storage:** '"${systemStorage}"' ",
"infobuttontext" : "'"${infobuttontext}"'",
"infobuttonaction" : "'"${infobuttonaction}"'",
"button1text" : "Wait",
"button1disabled" : "true",
"helpmessage" : "'"${helpmessage}"'",
"helpimage" : "'"${helpimage}"'",
"position" : "center",
"progress" : "'"${progressSteps}"'",
"progresstext" : "Please wait …",
"height" : "750",
"width" : "975",
"messagefont" : "size=14"
}
'
# Validate mainDialogJSON is valid JSON
if ! validateJson "${mainDialogJSON}"; then
echo "Error: mainDialogJSON is invalid JSON"
echo "$mainDialogJSON"
exit 1
fi
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Addigy MDM List Items
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
addigyMdmListitemJSON='
[
{"title" : "macOS Version", "subtitle" : "Organizational standards are the current and immediately previous versions of macOS", "icon" : "SF=01.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Available Updates", "subtitle" : "Keep your Mac up-to-date to ensure its security and performance", "icon" : "SF=02.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "App Auto-Patch", "subtitle" : "Keep your apps up-to-date to ensure their security and performance", "icon" : "SF=03.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "System Integrity Protection", "subtitle" : "System Integrity Protection (SIP) in macOS protects the entire system by preventing the execution of unauthorized code.", "icon" : "SF=04.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Signed System Volume", "subtitle" : "Signed System Volume (SSV) ensures macOS is booted from a signed, cryptographically protected volume.", "icon" : "SF=05.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Firewall", "subtitle" : "The built-in macOS firewall helps protect your Mac from unauthorized access.", "icon" : "SF=06.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "FileVault Encryption", "subtitle" : "FileVault is built-in to macOS and provides full-disk encryption to help prevent unauthorized access to your Mac", "icon" : "SF=07.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Gatekeeper / XProtect", "subtitle" : "Prevents the execution of Apple-identified malware and adware.", "icon" : "SF=08.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Touch ID", "subtitle" : "Touch ID provides secure biometric authentication for unlock your Mac and authorize third-party apps.", "icon" : "SF=09.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "VPN Client", "subtitle" : "Your Mac should have the proper VPN client installed and usable", "icon" : "SF=10.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Last Reboot", "subtitle" : "Restart your Mac regularly — at least once a week — can help resolve many common issues", "icon" : "SF=11.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Free Disk Space", "subtitle" : "Checks for the amount of free disk space on your Mac’s boot volume", "icon" : "SF=12.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Desktop Size and Item Count", "subtitle" : "Checks the size and item count of the Desktop", "icon" : "SF=13.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Downloads Size and Item Count", "subtitle" : "Checks the size and item count of the Downloads folder", "icon" : "SF=14.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Trash Size and Item Count", "subtitle" : "Checks the size and item count of the Trash", "icon" : "SF=15.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Password Hint", "subtitle" : "Ensure no password hint is set for better security", "icon" : "SF=16.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "AirDrop", "subtitle" : "Ensure AirDrop is not set to Everyone for security", "icon" : "SF=17.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "AirPlay Receiver", "subtitle" : "Ensure AirPlay Receiver is disabled when not needed", "icon" : "SF=18.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Bluetooth Sharing", "subtitle" : "Ensure Bluetooth Sharing is disabled when not needed", "icon" : "SF=19.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "'${mdmVendor}' MDM Profile", "subtitle" : "The presence of the '${mdmVendor}' MDM profile helps ensure your Mac is enrolled", "icon" : "SF=20.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "'${mdmVendor}' MDM Certificate Expiration", "subtitle" : "Validate the expiration date of the '${mdmVendor}' MDM certificate", "icon" : "SF=21.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Apple Push Notification service", "subtitle" : "Validate communication between Apple, '${mdmVendor}' and your Mac", "icon" : "SF=22.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Apple Push Notification Hosts","subtitle":"Test connectivity to Apple Push Notification hosts","icon":"SF=23.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Device Management","subtitle":"Test connectivity to Apple device enrollment and MDM services","icon":"SF=24.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Software and Carrier Updates","subtitle":"Test connectivity to Apple software update endpoints","icon":"SF=25.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Certificate Validation","subtitle":"Test connectivity to Apple certificate and OCSP services","icon":"SF=26.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Identity and Content Services","subtitle":"Test connectivity to Apple Identity and Content services","icon":"SF=27.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Microsoft Teams", "subtitle" : "The hub for teamwork in Microsoft 365.", "icon" : "SF=28.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Homebrew Status", "subtitle" : "If installed, compares the latest Homebrew release and any outdated packages", "icon" : "SF=29.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Electron Corner Mask", "subtitle" : "Detects susceptible Electron apps that may cause GPU slowdowns on macOS 26 Tahoe", "icon" : "SF=30.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Wi-Fi Strength", "subtitle" : "Checks current Wi-Fi signal strength and gives a simple quality rating.", "icon" : "SF=31.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Network Quality Test", "subtitle" : "Various networking-related tests of your Mac’s Internet connection", "icon" : "SF=32.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5}
]
'
# Validate addigyMdmListitemJSON is valid JSON
if ! validateJson "${addigyMdmListitemJSON}"; then
echo "Error: addigyMdmListitemJSON is invalid JSON"
echo "$addigyMdmListitemJSON"
exit 1
fi
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Filewave MDM List Items
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
filewaveMdmListitemJSON='
[
{"title" : "macOS Version", "subtitle" : "Organizational standards are the current and immediately previous versions of macOS", "icon" : "SF=01.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Available Updates", "subtitle" : "Keep your Mac up-to-date to ensure its security and performance", "icon" : "SF=02.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "App Auto-Patch", "subtitle" : "Keep your apps up-to-date to ensure their security and performance", "icon" : "SF=03.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "System Integrity Protection", "subtitle" : "System Integrity Protection (SIP) in macOS protects the entire system by preventing the execution of unauthorized code.", "icon" : "SF=04.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Signed System Volume", "subtitle" : "Signed System Volume (SSV) ensures macOS is booted from a signed, cryptographically protected volume.", "icon" : "SF=05.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Firewall", "subtitle" : "The built-in macOS firewall helps protect your Mac from unauthorized access.", "icon" : "SF=06.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "FileVault Encryption", "subtitle" : "FileVault is built-in to macOS and provides full-disk encryption to help prevent unauthorized access to your Mac", "icon" : "SF=07.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Gatekeeper / XProtect", "subtitle" : "Prevents the execution of Apple-identified malware and adware.", "icon" : "SF=08.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Touch ID", "subtitle" : "Touch ID provides secure biometric authentication for unlock your Mac and authorize third-party apps.", "icon" : "SF=09.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "VPN Client", "subtitle" : "Your Mac should have the proper VPN client installed and usable", "icon" : "SF=10.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Last Reboot", "subtitle" : "Restart your Mac regularly — at least once a week — can help resolve many common issues", "icon" : "SF=11.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Free Disk Space", "subtitle" : "Checks for the amount of free disk space on your Mac’s boot volume", "icon" : "SF=12.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Desktop Size and Item Count", "subtitle" : "Checks the size and item count of the Desktop", "icon" : "SF=13.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Downloads Size and Item Count", "subtitle" : "Checks the size and item count of the Downloads folder", "icon" : "SF=14.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Trash Size and Item Count", "subtitle" : "Checks the size and item count of the Trash", "icon" : "SF=15.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Password Hint", "subtitle" : "Ensure no password hint is set for better security", "icon" : "SF=16.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "AirDrop", "subtitle" : "Ensure AirDrop is not set to Everyone for security", "icon" : "SF=17.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "AirPlay Receiver", "subtitle" : "Ensure AirPlay Receiver is disabled when not needed", "icon" : "SF=18.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Bluetooth Sharing", "subtitle" : "Ensure Bluetooth Sharing is disabled when not needed", "icon" : "SF=19.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "'${mdmVendor}' MDM Profile", "subtitle" : "The presence of the '${mdmVendor}' MDM profile helps ensure your Mac is enrolled", "icon" : "SF=20.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "'${mdmVendor}' MDM Certificate Expiration", "subtitle" : "Validate the expiration date of the '${mdmVendor}' MDM certificate", "icon" : "SF=21.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Apple Push Notification service", "subtitle" : "Validate communication between Apple, '${mdmVendor}' and your Mac", "icon" : "SF=22.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Apple Push Notification Hosts","subtitle":"Test connectivity to Apple Push Notification hosts","icon":"SF=23.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Device Management","subtitle":"Test connectivity to Apple device enrollment and MDM services","icon":"SF=24.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Software and Carrier Updates","subtitle":"Test connectivity to Apple software update endpoints","icon":"SF=25.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Certificate Validation","subtitle":"Test connectivity to Apple certificate and OCSP services","icon":"SF=26.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Identity and Content Services","subtitle":"Test connectivity to Apple Identity and Content services","icon":"SF=27.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Homebrew Status", "subtitle" : "If installed, compares the latest Homebrew release and any outdated packages", "icon" : "SF=28.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Electron Corner Mask", "subtitle" : "Detects susceptible Electron apps that may cause GPU slowdowns on macOS 26 Tahoe", "icon" : "SF=29.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Wi-Fi Strength", "subtitle" : "Checks current Wi-Fi signal strength and gives a simple quality rating.", "icon" : "SF=30.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Network Quality Test", "subtitle" : "Various networking-related tests of your Mac’s Internet connection", "icon" : "SF=31.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5}
]
'
# Validate filewaveMdmListitemJSON is valid JSON
if ! validateJson "${filewaveMdmListitemJSON}"; then
echo "Error: filewaveMdmListitemJSON is invalid JSON"
echo "$filewaveMdmListitemJSON"
exit 1
fi
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Fleet MDM List Items
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
fleetMdmListitemJSON='
[
{"title" : "macOS Version", "subtitle" : "Organizational standards are the current and immediately previous versions of macOS", "icon" : "SF=01.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Available Updates", "subtitle" : "Keep your Mac up-to-date to ensure its security and performance", "icon" : "SF=02.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "App Auto-Patch", "subtitle" : "Keep your apps up-to-date to ensure their security and performance", "icon" : "SF=03.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "System Integrity Protection", "subtitle" : "System Integrity Protection (SIP) in macOS protects the entire system by preventing the execution of unauthorized code.", "icon" : "SF=04.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Signed System Volume", "subtitle" : "Signed System Volume (SSV) ensures macOS is booted from a signed, cryptographically protected volume.", "icon" : "SF=05.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Firewall", "subtitle" : "The built-in macOS firewall helps protect your Mac from unauthorized access.", "icon" : "SF=06.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "FileVault Encryption", "subtitle" : "FileVault is built-in to macOS and provides full-disk encryption to help prevent unauthorized access to your Mac", "icon" : "SF=07.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Gatekeeper / XProtect", "subtitle" : "Prevents the execution of Apple-identified malware and adware.", "icon" : "SF=08.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Touch ID", "subtitle" : "Touch ID provides secure biometric authentication for unlock your Mac and authorize third-party apps.", "icon" : "SF=09.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "VPN Client", "subtitle" : "Your Mac should have the proper VPN client installed and usable", "icon" : "SF=10.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Last Reboot", "subtitle" : "Restart your Mac regularly — at least once a week — can help resolve many common issues", "icon" : "SF=11.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Free Disk Space", "subtitle" : "Checks for the amount of free disk space on your Mac’s boot volume", "icon" : "SF=12.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Desktop Size and Item Count", "subtitle" : "Checks the size and item count of the Desktop", "icon" : "SF=13.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Downloads Size and Item Count", "subtitle" : "Checks the size and item count of the Downloads folder", "icon" : "SF=14.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Trash Size and Item Count", "subtitle" : "Checks the size and item count of the Trash", "icon" : "SF=15.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Password Hint", "subtitle" : "Ensure no password hint is set for better security", "icon" : "SF=16.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "AirDrop", "subtitle" : "Ensure AirDrop is not set to Everyone for security", "icon" : "SF=17.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "AirPlay Receiver", "subtitle" : "Ensure AirPlay Receiver is disabled when not needed", "icon" : "SF=18.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Bluetooth Sharing", "subtitle" : "Ensure Bluetooth Sharing is disabled when not needed", "icon" : "SF=19.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "'${mdmVendor}' MDM Profile", "subtitle" : "The presence of the '${mdmVendor}' MDM profile helps ensure your Mac is enrolled", "icon" : "SF=20.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "'${mdmVendor}' MDM Certificate Expiration", "subtitle" : "Validate the expiration date of the '${mdmVendor}' MDM certificate", "icon" : "SF=21.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Apple Push Notification service", "subtitle" : "Validate communication between Apple, '${mdmVendor}' and your Mac", "icon" : "SF=22.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Apple Push Notification Hosts","subtitle":"Test connectivity to Apple Push Notification hosts","icon":"SF=23.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Device Management","subtitle":"Test connectivity to Apple device enrollment and MDM services","icon":"SF=24.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Software and Carrier Updates","subtitle":"Test connectivity to Apple software update endpoints","icon":"SF=25.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Certificate Validation","subtitle":"Test connectivity to Apple certificate and OCSP services","icon":"SF=26.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Identity and Content Services","subtitle":"Test connectivity to Apple Identity and Content services","icon":"SF=27.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Fleet Desktop", "subtitle" : "Visibility into the security posture of your Mac.", "icon" : "SF=28.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Homebrew Status", "subtitle" : "If installed, compares the latest Homebrew release and any outdated packages", "icon" : "SF=29.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Electron Corner Mask", "subtitle" : "Detects susceptible Electron apps that may cause GPU slowdowns on macOS 26 Tahoe", "icon" : "SF=30.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Wi-Fi Strength", "subtitle" : "Checks current Wi-Fi signal strength and gives a simple quality rating.", "icon" : "SF=31.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Network Quality Test", "subtitle" : "Various networking-related tests of your Mac’s Internet connection", "icon" : "SF=32.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5}
]
'
# Validate fleetMdmListitemJSON is valid JSON
if ! validateJson "${fleetMdmListitemJSON}"; then
echo "Error: fleetMdmListitemJSON is invalid JSON"
echo "$fleetMdmListitemJSON"
exit 1
fi
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Kandji MDM List Items
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
kandjiMdmListitemJSON='
[
{"title" : "macOS Version", "subtitle" : "Organizational standards are the current and immediately previous versions of macOS", "icon" : "SF=01.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Available Updates", "subtitle" : "Keep your Mac up-to-date to ensure its security and performance", "icon" : "SF=02.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "System Integrity Protection", "subtitle" : "System Integrity Protection (SIP) in macOS protects the entire system by preventing the execution of unauthorized code.", "icon" : "SF=03.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Signed System Volume", "subtitle" : "Signed System Volume (SSV) ensures macOS is booted from a signed, cryptographically protected volume.", "icon" : "SF=04.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Firewall", "subtitle" : "The built-in macOS firewall helps protect your Mac from unauthorized access.", "icon" : "SF=05.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "FileVault Encryption", "subtitle" : "FileVault is built-in to macOS and provides full-disk encryption to help prevent unauthorized access to your Mac", "icon" : "SF=06.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Gatekeeper / XProtect", "subtitle" : "Prevents the execution of Apple-identified malware and adware.", "icon" : "SF=07.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Touch ID", "subtitle" : "Touch ID provides secure biometric authentication for unlock your Mac and authorize third-party apps.", "icon" : "SF=08.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "VPN Client", "subtitle" : "Your Mac should have the proper VPN client installed and usable", "icon" : "SF=09.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Last Reboot", "subtitle" : "Restart your Mac regularly — at least once a week — can help resolve many common issues", "icon" : "SF=10.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Free Disk Space", "subtitle" : "Checks for the amount of free disk space on your Mac’s boot volume", "icon" : "SF=11.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Desktop Size and Item Count", "subtitle" : "Checks the size and item count of the Desktop", "icon" : "SF=12.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Downloads Size and Item Count", "subtitle" : "Checks the size and item count of the Downloads folder", "icon" : "SF=13.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Trash Size and Item Count", "subtitle" : "Checks the size and item count of the Trash", "icon" : "SF=14.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Bluetooth Sharing", "subtitle" : "Ensure Bluetooth Sharing is disabled when not needed", "icon" : "SF=15.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "'${mdmVendor}' MDM Certificate Expiration", "subtitle" : "Validate the expiration date of the '${mdmVendor}' MDM certificate", "icon" : "SF=16.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Apple Push Notification service", "subtitle" : "Validate communication between Apple, '${mdmVendor}' and your Mac", "icon" : "SF=17.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Apple Push Notification Hosts","subtitle":"Test connectivity to Apple Push Notification hosts","icon":"SF=18.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Device Management","subtitle":"Test connectivity to Apple device enrollment and MDM services","icon":"SF=19.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Software and Carrier Updates","subtitle":"Test connectivity to Apple software update endpoints","icon":"SF=20.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Certificate Validation","subtitle":"Test connectivity to Apple certificate and OCSP services","icon":"SF=21.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Identity and Content Services","subtitle":"Test connectivity to Apple Identity and Content services","icon":"SF=22.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Microsoft Teams", "subtitle" : "The hub for teamwork in Microsoft 365.", "icon" : "SF=23.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Microsoft One Drive", "subtitle" : "Microsoft cloud storage for your important files.", "icon" : "SF=24.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Microsoft Outlook", "subtitle" : "Email and Calendar from Microsoft.", "icon" : "SF=25.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Company Portal", "subtitle" : "Required for Platform Single Sign-On.", "icon" : "SF=26.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Zoom", "subtitle" : "Web Conferencing Tool.", "icon" : "SF=27.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Cortex", "subtitle" : "Cortex Security Software.", "icon" : "SF=28.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Netskope", "subtitle" : "Netskope Connection Software.", "icon" : "SF=29.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Wi-Fi Strength", "subtitle" : "Checks current Wi-Fi signal strength and gives a simple quality rating.", "icon" : "SF=30.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Network Quality Test", "subtitle" : "Various networking-related tests of your Mac’s Internet connection", "icon" : "SF=31.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5}]
'
# Validate kandjiMdmListitemJSON is valid JSON
if ! validateJson "${kandjiMdmListitemJSON}"; then
echo "Error: kandjiMdmListitemJSON is invalid JSON"
echo "$kandjiMdmListitemJSON"
exit 1
fi
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Jamf Pro List Items
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
jamfProListitemJSON='
[
{"title" : "macOS Version", "subtitle" : "Organizational standards are the current and immediately previous versions of macOS", "icon" : "SF=01.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Available Updates", "subtitle" : "Keep your Mac up-to-date to ensure its security and performance", "icon" : "SF=02.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "System Integrity Protection", "subtitle" : "System Integrity Protection (SIP) in macOS protects the entire system by preventing the execution of unauthorized code.", "icon" : "SF=03.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Signed System Volume", "subtitle" : "Signed System Volume (SSV) ensures macOS is booted from a signed, cryptographically protected volume.", "icon" : "SF=04.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Firewall", "subtitle" : "The built-in macOS firewall helps protect your Mac from unauthorized access.", "icon" : "SF=05.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "FileVault Encryption", "subtitle" : "FileVault is built-in to macOS and provides full-disk encryption to help prevent unauthorized access to your Mac", "icon" : "SF=06.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Gatekeeper / XProtect", "subtitle" : "Prevents the execution of Apple-identified malware and adware.", "icon" : "SF=07.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Touch ID", "subtitle" : "Touch ID provides secure biometric authentication for unlock your Mac and authorize third-party apps.", "icon" : "SF=08.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "AirDrop", "subtitle" : "Ensure AirDrop is not set to Everyone for security", "icon" : "SF=09.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "AirPlay Receiver", "subtitle" : "Ensure AirPlay Receiver is disabled when not needed", "icon" : "SF=10.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Bluetooth Sharing", "subtitle" : "Ensure Bluetooth Sharing is disabled when not needed", "icon" : "SF=11.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "VPN Client", "subtitle" : "Your Mac should have the proper VPN client installed and usable", "icon" : "SF=12.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Last Reboot", "subtitle" : "Restart your Mac regularly — at least once a week — can help resolve many common issues", "icon" : "SF=13.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Free Disk Space", "subtitle" : "Checks for the amount of free disk space on your Mac’s boot volume", "icon" : "SF=14.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Desktop Size and Item Count", "subtitle" : "Checks the size and item count of the Desktop", "icon" : "SF=15.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Downloads Size and Item Count", "subtitle" : "Checks the size and item count of the Downloads folder", "icon" : "SF=16.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Trash Size and Item Count", "subtitle" : "Checks the size and item count of the Trash", "icon" : "SF=17.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "'${mdmVendor}' MDM Profile", "subtitle" : "The presence of the '${mdmVendor}' MDM profile helps ensure your Mac is enrolled", "icon" : "SF=18.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Entra ID Registration", "subtitle" : "Checks Microsoft Entra registration for current user context", "icon" : "SF=19.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "'${mdmVendor}' MDM Certificate Expiration", "subtitle" : "Validate the expiration date of the '${mdmVendor}' MDM certificate", "icon" : "SF=20.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Apple Push Notification service", "subtitle" : "Validate communication between Apple, '${mdmVendor}' and your Mac", "icon" : "SF=21.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Jamf Pro Check-In", "subtitle" : "Your Mac should check-in with the Jamf Pro MDM server multiple times each day", "icon" : "SF=22.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Jamf Pro Inventory", "subtitle" : "Your Mac should submit its inventory to the Jamf Pro MDM server daily", "icon" : "SF=23.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Apple Push Notification Hosts","subtitle":"Test connectivity to Apple Push Notification hosts","icon":"SF=24.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Device Management","subtitle":"Test connectivity to Apple device enrollment and MDM services","icon":"SF=25.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Software and Carrier Updates","subtitle":"Test connectivity to Apple software update endpoints","icon":"SF=26.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Certificate Validation","subtitle":"Test connectivity to Apple certificate and OCSP services","icon":"SF=27.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Identity and Content Services","subtitle":"Test connectivity to Apple Identity and Content services","icon":"SF=28.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Jamf Hosts","subtitle":"Test connectivity to Jamf Pro cloud and on-prem endpoints","icon":"SF=29.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "App Auto-Patch", "subtitle" : "Keep your apps up-to-date to ensure their security and performance", "icon" : "SF=30.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Homebrew Status", "subtitle" : "If installed, compares the latest Homebrew release and any outdated packages", "icon" : "SF=31.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Electron Corner Mask", "subtitle" : "Detects susceptible Electron apps that may cause GPU slowdowns on macOS 26 Tahoe", "icon" : "SF=32.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Microsoft Teams", "subtitle" : "The hub for teamwork in Microsoft 365.", "icon" : "SF=33.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "BeyondTrust Privilege Management", "subtitle" : "Privilege Management for Mac pairs powerful least-privilege management and application control", "icon" : "SF=34.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Cisco Umbrella", "subtitle" : "Cisco Umbrella combines multiple security functions so you can extend data protection anywhere.", "icon" : "SF=35.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "CrowdStrike Falcon", "subtitle" : "Technology, intelligence, and expertise come together in CrowdStrike Falcon to deliver security that works.", "icon" : "SF=36.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Palo Alto GlobalProtect", "subtitle" : "Virtual Private Network (VPN) connection to Church headquarters", "icon" : "SF=37.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Wi-Fi Strength", "subtitle" : "Checks current Wi-Fi signal strength and gives a simple quality rating.", "icon" : "SF=38.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Network Quality Test", "subtitle" : "Various networking-related tests of your Mac’s Internet connection", "icon" : "SF=39.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Computer Inventory", "subtitle" : "The listing of your Mac’s apps and settings", "icon" : "SF=40.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5}
]
'
# Validate jamfProListitemJSON is valid JSON
if ! validateJson "${jamfProListitemJSON}"; then
echo "Error: jamfProListitemJSON is invalid JSON"
echo "$jamfProListitemJSON"
exit 1
fi
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# JumpCloud MDM List Items
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
jumpcloudMdmListitemJSON='
[
{"title" : "macOS Version", "subtitle" : "Organizational standards are the current and immediately previous versions of macOS", "icon" : "SF=01.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Available Updates", "subtitle" : "Keep your Mac up-to-date to ensure its security and performance", "icon" : "SF=02.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "App Auto-Patch", "subtitle" : "Keep your apps up-to-date to ensure their security and performance", "icon" : "SF=03.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "System Integrity Protection", "subtitle" : "System Integrity Protection (SIP) in macOS protects the entire system by preventing the execution of unauthorized code.", "icon" : "SF=04.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Signed System Volume", "subtitle" : "Signed System Volume (SSV) ensures macOS is booted from a signed, cryptographically protected volume.", "icon" : "SF=05.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Firewall", "subtitle" : "The built-in macOS firewall helps protect your Mac from unauthorized access.", "icon" : "SF=06.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "FileVault Encryption", "subtitle" : "FileVault is built-in to macOS and provides full-disk encryption to help prevent unauthorized access to your Mac", "icon" : "SF=07.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Gatekeeper / XProtect", "subtitle" : "Prevents the execution of Apple-identified malware and adware.", "icon" : "SF=08.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Touch ID", "subtitle" : "Touch ID provides secure biometric authentication for unlock your Mac and authorize third-party apps.", "icon" : "SF=09.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "VPN Client", "subtitle" : "Your Mac should have the proper VPN client installed and usable", "icon" : "SF=10.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Last Reboot", "subtitle" : "Restart your Mac regularly — at least once a week — can help resolve many common issues", "icon" : "SF=11.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Free Disk Space", "subtitle" : "Checks for the amount of free disk space on your Mac’s boot volume", "icon" : "SF=12.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Desktop Size and Item Count", "subtitle" : "Checks the size and item count of the Desktop", "icon" : "SF=13.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Downloads Size and Item Count", "subtitle" : "Checks the size and item count of the Downloads folder", "icon" : "SF=14.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Trash Size and Item Count", "subtitle" : "Checks the size and item count of the Trash", "icon" : "SF=15.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Password Hint", "subtitle" : "Ensure no password hint is set for better security", "icon" : "SF=16.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "AirDrop", "subtitle" : "Ensure AirDrop is not set to Everyone for security", "icon" : "SF=17.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "AirPlay Receiver", "subtitle" : "Ensure AirPlay Receiver is disabled when not needed", "icon" : "SF=18.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Bluetooth Sharing", "subtitle" : "Ensure Bluetooth Sharing is disabled when not needed", "icon" : "SF=19.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "'${mdmVendor}' MDM Profile", "subtitle" : "The presence of the '${mdmVendor}' MDM profile helps ensure your Mac is enrolled", "icon" : "SF=20.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "'${mdmVendor}' MDM Certificate Expiration", "subtitle" : "Validate the expiration date of the '${mdmVendor}' MDM certificate", "icon" : "SF=21.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Apple Push Notification service", "subtitle" : "Validate communication between Apple, '${mdmVendor}' and your Mac", "icon" : "SF=22.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Apple Push Notification Hosts","subtitle":"Test connectivity to Apple Push Notification hosts","icon":"SF=23.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Device Management","subtitle":"Test connectivity to Apple device enrollment and MDM services","icon":"SF=24.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Software and Carrier Updates","subtitle":"Test connectivity to Apple software update endpoints","icon":"SF=25.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Certificate Validation","subtitle":"Test connectivity to Apple certificate and OCSP services","icon":"SF=26.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Identity and Content Services","subtitle":"Test connectivity to Apple Identity and Content services","icon":"SF=27.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Microsoft Teams", "subtitle" : "The hub for teamwork in Microsoft 365.", "icon" : "SF=28.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Homebrew Status", "subtitle" : "If installed, compares the latest Homebrew release and any outdated packages", "icon" : "SF=29.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Electron Corner Mask", "subtitle" : "Detects susceptible Electron apps that may cause GPU slowdowns on macOS 26 Tahoe", "icon" : "SF=30.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Wi-Fi Strength", "subtitle" : "Checks current Wi-Fi signal strength and gives a simple quality rating.", "icon" : "SF=31.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Network Quality Test", "subtitle" : "Various networking-related tests of your Mac’s Internet connection", "icon" : "SF=32.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5}
]
'
# Validate jumpcloudMdmListitemJSON is valid JSON
if ! validateJson "${jumpcloudMdmListitemJSON}"; then
echo "Error: jumpcloudMdmListitemJSON is invalid JSON"
echo "$jumpcloudMdmListitemJSON"
exit 1
fi
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Microsoft Intune MDM List Items
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
microsoftMdmListitemJSON='
[
{"title" : "macOS Version", "subtitle" : "Organizational standards are the current and immediately previous versions of macOS", "icon" : "SF=01.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Available Updates", "subtitle" : "Keep your Mac up-to-date to ensure its security and performance", "icon" : "SF=02.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "App Auto-Patch", "subtitle" : "Keep your apps up-to-date to ensure their security and performance", "icon" : "SF=03.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "System Integrity Protection", "subtitle" : "System Integrity Protection (SIP) in macOS protects the entire system by preventing the execution of unauthorized code.", "icon" : "SF=04.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Signed System Volume", "subtitle" : "Signed System Volume (SSV) ensures macOS is booted from a signed, cryptographically protected volume.", "icon" : "SF=05.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Firewall", "subtitle" : "The built-in macOS firewall helps protect your Mac from unauthorized access.", "icon" : "SF=06.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "FileVault Encryption", "subtitle" : "FileVault is built-in to macOS and provides full-disk encryption to help prevent unauthorized access to your Mac", "icon" : "SF=07.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Gatekeeper / XProtect", "subtitle" : "Prevents the execution of Apple-identified malware and adware.", "icon" : "SF=08.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Touch ID", "subtitle" : "Touch ID provides secure biometric authentication for unlock your Mac and authorize third-party apps.", "icon" : "SF=09.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "VPN Client", "subtitle" : "Your Mac should have the proper VPN client installed and usable", "icon" : "SF=10.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Last Reboot", "subtitle" : "Restart your Mac regularly — at least once a week — can help resolve many common issues", "icon" : "SF=11.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Free Disk Space", "subtitle" : "Checks for the amount of free disk space on your Mac’s boot volume", "icon" : "SF=12.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Desktop Size and Item Count", "subtitle" : "Checks the size and item count of the Desktop", "icon" : "SF=13.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Downloads Size and Item Count", "subtitle" : "Checks the size and item count of the Downloads folder", "icon" : "SF=14.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Trash Size and Item Count", "subtitle" : "Checks the size and item count of the Trash", "icon" : "SF=15.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Password Hint", "subtitle" : "Ensure no password hint is set for better security", "icon" : "SF=16.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "AirDrop", "subtitle" : "Ensure AirDrop is not set to Everyone for security", "icon" : "SF=17.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "AirPlay Receiver", "subtitle" : "Ensure AirPlay Receiver is disabled when not needed", "icon" : "SF=18.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Bluetooth Sharing", "subtitle" : "Ensure Bluetooth Sharing is disabled when not needed", "icon" : "SF=19.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "'${mdmVendor}' MDM Profile", "subtitle" : "The presence of the '${mdmVendor}' MDM profile helps ensure your Mac is enrolled", "icon" : "SF=20.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "'${mdmVendor}' MDM Certificate Expiration", "subtitle" : "Validate the expiration date of the '${mdmVendor}' MDM certificate", "icon" : "SF=21.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Apple Push Notification service", "subtitle" : "Validate communication between Apple, '${mdmVendor}' and your Mac", "icon" : "SF=22.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Apple Push Notification Hosts","subtitle":"Test connectivity to Apple Push Notification hosts","icon":"SF=23.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Device Management","subtitle":"Test connectivity to Apple device enrollment and MDM services","icon":"SF=24.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Software and Carrier Updates","subtitle":"Test connectivity to Apple software update endpoints","icon":"SF=25.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Certificate Validation","subtitle":"Test connectivity to Apple certificate and OCSP services","icon":"SF=26.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Identity and Content Services","subtitle":"Test connectivity to Apple Identity and Content services","icon":"SF=27.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Microsoft Company Portal", "subtitle" : "Securely access and manage corporate apps, resources, and devices via Intune.", "icon" : "SF=28.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Homebrew Status", "subtitle" : "If installed, compares the latest Homebrew release and any outdated packages", "icon" : "SF=29.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Electron Corner Mask", "subtitle" : "Detects susceptible Electron apps that may cause GPU slowdowns on macOS 26 Tahoe", "icon" : "SF=30.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Wi-Fi Strength", "subtitle" : "Checks current Wi-Fi signal strength and gives a simple quality rating.", "icon" : "SF=31.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Network Quality Test", "subtitle" : "Various networking-related tests of your Mac’s Internet connection", "icon" : "SF=32.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5}
]
'
# Validate microsoftMdmListitemJSON is valid JSON
if ! validateJson "${microsoftMdmListitemJSON}"; then
echo "Error: microsoftMdmListitemJSON is invalid JSON"
echo "$microsoftMdmListitemJSON"
exit 1
fi
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Mosyle List Items (thanks, @precursorca and @bigdoodr!)
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
mosyleListitemJSON='
[
{"title" : "macOS Version", "subtitle" : "Organizational standards are the current and immediately previous versions of macOS", "icon" : "SF=01.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Available Updates", "subtitle" : "Keep your Mac up-to-date to ensure its security and performance", "icon" : "SF=02.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "App Auto-Patch", "subtitle" : "Keep your apps up-to-date to ensure their security and performance", "icon" : "SF=03.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "System Integrity Protection", "subtitle" : "System Integrity Protection (SIP) in macOS protects the entire system by preventing the execution of unauthorized code.", "icon" : "SF=04.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Signed System Volume", "subtitle" : "Signed System Volume (SSV) ensures macOS is booted from a signed, cryptographically protected volume.", "icon" : "SF=05.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Firewall", "subtitle" : "The built-in macOS firewall helps protect your Mac from unauthorized access.", "icon" : "SF=06.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "FileVault Encryption", "subtitle" : "FileVault is built-in to macOS and provides full-disk encryption to help prevent unauthorized access to your Mac", "icon" : "SF=07.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Gatekeeper / XProtect", "subtitle" : "Prevents the execution of Apple-identified malware and adware.", "icon" : "SF=08.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Touch ID", "subtitle" : "Touch ID provides secure biometric authentication for unlock your Mac and authorize third-party apps.", "icon" : "SF=09.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "VPN Client", "subtitle" : "Your Mac should have the proper VPN client installed and usable", "icon" : "SF=10.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Last Reboot", "subtitle" : "Restart your Mac regularly — at least once a week — can help resolve many common issues", "icon" : "SF=11.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Free Disk Space", "subtitle" : "Checks for the amount of free disk space on your Mac’s boot volume", "icon" : "SF=12.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Desktop Size and Item Count", "subtitle" : "Checks the size and item count of the Desktop", "icon" : "SF=13.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Downloads Size and Item Count", "subtitle" : "Checks the size and item count of the Downloads folder", "icon" : "SF=14.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Trash Size and Item Count", "subtitle" : "Checks the size and item count of the Trash", "icon" : "SF=15.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Password Hint", "subtitle" : "Ensure no password hint is set for better security", "icon" : "SF=16.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "AirDrop", "subtitle" : "Ensure AirDrop is not set to Everyone for security", "icon" : "SF=17.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "AirPlay Receiver", "subtitle" : "Ensure AirPlay Receiver is disabled when not needed", "icon" : "SF=18.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Bluetooth Sharing", "subtitle" : "Ensure Bluetooth Sharing is disabled when not needed", "icon" : "SF=19.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "'${mdmVendor}' MDM Profile", "subtitle" : "The presence of the '${mdmVendor}' MDM profile helps ensure your Mac is enrolled", "icon" : "SF=20.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "'${mdmVendor}' MDM Certificate Expiration", "subtitle" : "Validate the expiration date of the '${mdmVendor}' MDM certificate", "icon" : "SF=21.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Apple Push Notification service", "subtitle" : "Validate communication between Apple, '${mdmVendor}' and your Mac", "icon" : "SF=22.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Mosyle Check-In", "subtitle" : "Your Mac should check-in with the Mosyle MDM server multiple times each day", "icon" : "SF=23.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.4},
{"title" : "Apple Push Notification Hosts","subtitle":"Test connectivity to Apple Push Notification hosts","icon":"SF=24.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Device Management","subtitle":"Test connectivity to Apple device enrollment and MDM services","icon":"SF=25.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Software and Carrier Updates","subtitle":"Test connectivity to Apple software update endpoints","icon":"SF=26.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Certificate Validation","subtitle":"Test connectivity to Apple certificate and OCSP services","icon":"SF=27.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Identity and Content Services","subtitle":"Test connectivity to Apple Identity and Content services","icon":"SF=28.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "'${mdmVendor}' Self-Service", "subtitle" : "Your one-stop shop for all things '${mdmVendor}'.", "icon" : "SF=29.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Homebrew Status", "subtitle" : "If installed, compares the latest Homebrew release and any outdated packages", "icon" : "SF=30.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Electron Corner Mask", "subtitle" : "Detects susceptible Electron apps that may cause GPU slowdowns on macOS 26 Tahoe", "icon" : "SF=31.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Wi-Fi Strength", "subtitle" : "Checks current Wi-Fi signal strength and gives a simple quality rating.", "icon" : "SF=32.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Network Quality Test", "subtitle" : "Various networking-related tests of your Mac’s Internet connection", "icon" : "SF=33.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5}
]
'
# Validate mosyleListitemJSON is valid JSON
if ! validateJson "${mosyleListitemJSON}"; then
echo "Error: mosyletitemJSON is invalid JSON"
echo "$mosyleListitemJSON"
exit 1
fi
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Generic MDM List Items
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
genericMdmListitemJSON='
[
{"title" : "macOS Version", "subtitle" : "Organizational standards are the current and immediately previous versions of macOS", "icon" : "SF=01.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Available Updates", "subtitle" : "Keep your Mac up-to-date to ensure its security and performance", "icon" : "SF=02.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "System Integrity Protection", "subtitle" : "System Integrity Protection (SIP) in macOS protects the entire system by preventing the execution of unauthorized code.", "icon" : "SF=03.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Signed System Volume", "subtitle" : "Signed System Volume (SSV) ensures macOS is booted from a signed, cryptographically protected volume.", "icon" : "SF=04.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Firewall", "subtitle" : "The built-in macOS firewall helps protect your Mac from unauthorized access.", "icon" : "SF=05.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "FileVault Encryption", "subtitle" : "FileVault is built-in to macOS and provides full-disk encryption to help prevent unauthorized access to your Mac", "icon" : "SF=06.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Gatekeeper / XProtect", "subtitle" : "Prevents the execution of Apple-identified malware and adware.", "icon" : "SF=07.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Touch ID", "subtitle" : "Touch ID provides secure biometric authentication for unlock your Mac and authorize third-party apps.", "icon" : "SF=08.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "VPN Client", "subtitle" : "Your Mac should have the proper VPN client installed and usable", "icon" : "SF=09.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Last Reboot", "subtitle" : "Restart your Mac regularly — at least once a week — can help resolve many common issues", "icon" : "SF=10.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Free Disk Space", "subtitle" : "Checks for the amount of free disk space on your Mac’s boot volume", "icon" : "SF=11.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Desktop Size and Item Count", "subtitle" : "Checks the size and item count of the Desktop", "icon" : "SF=12.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Downloads Size and Item Count", "subtitle" : "Checks the size and item count of the Downloads folder", "icon" : "SF=13.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Trash Size and Item Count", "subtitle" : "Checks the size and item count of the Trash", "icon" : "SF=14.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Password Hint", "subtitle" : "Ensure no password hint is set for better security", "icon" : "SF=15.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "AirDrop", "subtitle" : "Ensure AirDrop is not set to Everyone for security", "icon" : "SF=16.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "AirPlay Receiver", "subtitle" : "Ensure AirPlay Receiver is disabled when not needed", "icon" : "SF=17.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Bluetooth Sharing", "subtitle" : "Ensure Bluetooth Sharing is disabled when not needed", "icon" : "SF=18.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Apple Push Notification service", "subtitle" : "Validate communication between Apple, '${mdmVendor}' and your Mac", "icon" : "SF=19.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Apple Push Notification Hosts","subtitle":"Test connectivity to Apple Push Notification hosts","icon":"SF=20.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Device Management","subtitle":"Test connectivity to Apple device enrollment and MDM services","icon":"SF=21.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Software and Carrier Updates","subtitle":"Test connectivity to Apple software update endpoints","icon":"SF=22.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Certificate Validation","subtitle":"Test connectivity to Apple certificate and OCSP services","icon":"SF=23.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Apple Identity and Content Services","subtitle":"Test connectivity to Apple Identity and Content services","icon":"SF=24.circle,'"${organizationColorScheme}"'", "status":"pending","statustext":"Pending …", "iconalpha" : 0.5},
{"title" : "Homebrew Status", "subtitle" : "If installed, compares the latest Homebrew release and any outdated packages", "icon" : "SF=25.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Electron Corner Mask", "subtitle" : "Detects susceptible Electron apps that may cause GPU slowdowns on macOS 26 Tahoe", "icon" : "SF=26.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Wi-Fi Strength", "subtitle" : "Checks current Wi-Fi signal strength and gives a simple quality rating.", "icon" : "SF=27.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5},
{"title" : "Network Quality Test", "subtitle" : "Various networking-related tests of your Mac’s Internet connection", "icon" : "SF=28.circle,'"${organizationColorScheme}"'", "status" : "pending", "statustext" : "Pending …", "iconalpha" : 0.5}
]
'
# Validate genericMdmListitemJSON is valid JSON
if ! validateJson "${genericMdmListitemJSON}"; then
echo "Error: genericMdmListitemJSON is invalid JSON"
echo "$genericMdmListitemJSON"
exit 1
fi
Health Checks
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Generate Health Checks based on Operation Mode and MDM Vendor (where "n" represents the listitem order)
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
if [[ "${operationMode}" == "Development" ]]; then
# Operation Mode: Development
notice "Operation Mode is ${operationMode}; using ${operationMode}-specific Health Check."
dialogUpdate "title: ${humanReadableScriptName} (${scriptVersion})<br>Operation Mode: ${operationMode}"
# set -x
checkEntraIDRegistration "0"
# set +x
else
notice "Operation Mode is ${operationMode}; using MDM-specific Health Checks."
if [[ "${operationMode}" != "Test" ]]; then
# Operation Mode: Debug
if [[ "${operationMode}" == "Debug" ]]; then
dialogUpdate "title: ${humanReadableScriptName} (${scriptVersion})<br>Operation Mode: ${operationMode}"
fi
# Operation Mode: Self Service
case ${mdmVendor} in
"Addigy" )
checkOS "0"
checkAvailableSoftwareUpdates "1"
checkAppAutoPatch "2"
checkSIP "3"
checkSSV "4"
checkFirewall "5"
checkFileVault "6"
checkGatekeeperXProtect "7"
checkTouchID "8"
checkVPN "9"
checkUptime "10"
checkFreeDiskSpace "11"
checkUserDirectorySizeItems "12" "Desktop" "desktopcomputer.and.macbook" "Desktop"
checkUserDirectorySizeItems "13" "Downloads" "folder.fill.badge.plus" "Downloads"
checkUserDirectorySizeItems "14" ".Trash" "trash.fill" "Trash"
checkPasswordHint "15"
checkAirDropSettings "16"
checkAirPlayReceiver "17"
checkBluetoothSharing "18"
checkMdmProfile "19"
checkMdmCertificateExpiration "20"
checkAPNs "21"
checkNetworkHosts "22" "Apple Push Notification Hosts" "${pushHosts[@]}"
checkNetworkHosts "23" "Apple Device Management" "${deviceMgmtHosts[@]}"
checkNetworkHosts "24" "Apple Software and Carrier Updates" "${updateHosts[@]}"
checkNetworkHosts "25" "Apple Certificate Validation" "${certHosts[@]}"
checkNetworkHosts "26" "Apple Identity and Content Services" "${idAssocHosts[@]}"
checkInternal "27" "/Applications/Microsoft Teams.app" "/Applications/Microsoft Teams.app" "Microsoft Teams"
checkHomebrewStatus "28"
checkElectronCornerMask "29"
checkWiFiStrength "30"
checkNetworkQuality "31"
;;
"Filewave" )
checkOS "0"
checkAvailableSoftwareUpdates "1"
checkAppAutoPatch "2"
checkSIP "3"
checkSSV "4"
checkFirewall "5"
checkFileVault "6"
checkGatekeeperXProtect "7"
checkTouchID "8"
checkVPN "9"
checkUptime "10"
checkFreeDiskSpace "11"
checkUserDirectorySizeItems "12" "Desktop" "desktopcomputer.and.macbook" "Desktop"
checkUserDirectorySizeItems "13" "Downloads" "folder.fill.badge.plus" "Downloads"
checkUserDirectorySizeItems "14" ".Trash" "trash.fill" "Trash"
checkPasswordHint "15"
checkAirDropSettings "16"
checkAirPlayReceiver "17"
checkBluetoothSharing "18"
checkMdmProfile "19"
checkMdmCertificateExpiration "20"
checkAPNs "21"
checkNetworkHosts "22" "Apple Push Notification Hosts" "${pushHosts[@]}"
checkNetworkHosts "23" "Apple Device Management" "${deviceMgmtHosts[@]}"
checkNetworkHosts "24" "Apple Software and Carrier Updates" "${updateHosts[@]}"
checkNetworkHosts "25" "Apple Certificate Validation" "${certHosts[@]}"
checkNetworkHosts "26" "Apple Identity and Content Services" "${idAssocHosts[@]}"
checkHomebrewStatus "27"
checkElectronCornerMask "28"
checkWiFiStrength "29"
checkNetworkQuality "30"
;;
"Fleet" )
checkOS "0"
checkAvailableSoftwareUpdates "1"
checkAppAutoPatch "2"
checkSIP "3"
checkSSV "4"
checkFirewall "5"
checkFileVault "6"
checkGatekeeperXProtect "7"
checkTouchID "8"
checkVPN "9"
checkUptime "10"
checkFreeDiskSpace "11"
checkUserDirectorySizeItems "12" "Desktop" "desktopcomputer.and.macbook" "Desktop"
checkUserDirectorySizeItems "13" "Downloads" "folder.fill.badge.plus" "Downloads"
checkUserDirectorySizeItems "14" ".Trash" "trash.fill" "Trash"
checkPasswordHint "15"
checkAirDropSettings "16"
checkAirPlayReceiver "17"
checkBluetoothSharing "18"
checkMdmProfile "19"
checkMdmCertificateExpiration "20"
checkAPNs "21"
checkNetworkHosts "22" "Apple Push Notification Hosts" "${pushHosts[@]}"
checkNetworkHosts "23" "Apple Device Management" "${deviceMgmtHosts[@]}"
checkNetworkHosts "24" "Apple Software and Carrier Updates" "${updateHosts[@]}"
checkNetworkHosts "25" "Apple Certificate Validation" "${certHosts[@]}"
checkNetworkHosts "26" "Apple Identity and Content Services" "${idAssocHosts[@]}"
checkInternal "27" "/opt/orbit/bin/desktop/macos/stable/Fleet Desktop.app" "/opt/orbit/bin/desktop/macos/stable/Fleet Desktop.app" "Fleet Desktop"
checkHomebrewStatus "28"
checkElectronCornerMask "29"
checkWiFiStrength "30"
checkNetworkQuality "31"
;;
"Jamf Pro" )
checkOS "0"
checkAvailableSoftwareUpdates "1"
checkSIP "2"
checkSSV "3"
checkFirewall "4"
checkFileVault "5"
checkGatekeeperXProtect "6"
checkTouchID "7"
checkAirDropSettings "8"
checkAirPlayReceiver "9"
checkBluetoothSharing "10"
checkVPN "11"
checkUptime "12"
checkFreeDiskSpace "13"
checkUserDirectorySizeItems "14" "Desktop" "desktopcomputer.and.macbook" "Desktop"
checkUserDirectorySizeItems "15" "Downloads" "folder.fill.badge.plus" "Downloads"
checkUserDirectorySizeItems "16" ".Trash" "trash.fill" "Trash"
checkMdmProfile "17"
checkEntraIDRegistration "18"
checkMdmCertificateExpiration "19"
checkAPNs "20"
checkJamfProCheckIn "21"
checkJamfProInventory "22"
checkNetworkHosts "23" "Apple Push Notification Hosts" "${pushHosts[@]}"
checkNetworkHosts "24" "Apple Device Management" "${deviceMgmtHosts[@]}"
checkNetworkHosts "25" "Apple Software and Carrier Updates" "${updateHosts[@]}"
checkNetworkHosts "26" "Apple Certificate Validation" "${certHosts[@]}"
checkNetworkHosts "27" "Apple Identity and Content Services" "${idAssocHosts[@]}"
checkNetworkHosts "28" "Jamf Hosts" "${jamfHosts[@]}"
checkAppAutoPatch "29"
checkHomebrewStatus "30"
checkElectronCornerMask "31"
checkInternal "32" "/Applications/Microsoft Teams.app" "/Applications/Microsoft Teams.app" "Microsoft Teams"
checkExternalJamfPro "33" "symvBeyondTrustPMfM" "/Applications/PrivilegeManagement.app"
checkExternalJamfPro "34" "symvCiscoUmbrella" "/Applications/Cisco/Cisco Secure Client.app"
checkExternalJamfPro "35" "symvCrowdStrikeFalcon" "/Applications/Falcon.app"
checkExternalJamfPro "36" "symvGlobalProtect" "/Applications/GlobalProtect.app"
checkWiFiStrength "37"
checkNetworkQuality "38"
updateComputerInventory "39"
;;
"JumpCloud" )
checkOS "0"
checkAvailableSoftwareUpdates "1"
checkAppAutoPatch "2"
checkSIP "3"
checkSSV "4"
checkFirewall "5"
checkFileVault "6"
checkGatekeeperXProtect "7"
checkTouchID "8"
checkVPN "9"
checkUptime "10"
checkFreeDiskSpace "11"
checkUserDirectorySizeItems "12" "Desktop" "desktopcomputer.and.macbook" "Desktop"
checkUserDirectorySizeItems "13" "Downloads" "folder.fill.badge.plus" "Downloads"
checkUserDirectorySizeItems "14" ".Trash" "trash.fill" "Trash"
checkPasswordHint "15"
checkAirDropSettings "16"
checkAirPlayReceiver "17"
checkBluetoothSharing "18"
checkMdmProfile "19"
checkMdmCertificateExpiration "20"
checkAPNs "21"
checkNetworkHosts "22" "Apple Push Notification Hosts" "${pushHosts[@]}"
checkNetworkHosts "23" "Apple Device Management" "${deviceMgmtHosts[@]}"
checkNetworkHosts "24" "Apple Software and Carrier Updates" "${updateHosts[@]}"
checkNetworkHosts "25" "Apple Certificate Validation" "${certHosts[@]}"
checkNetworkHosts "26" "Apple Identity and Content Services" "${idAssocHosts[@]}"
checkInternal "27" "/Applications/Microsoft Teams.app" "/Applications/Microsoft Teams.app" "Microsoft Teams"
checkHomebrewStatus "28"
checkElectronCornerMask "29"
checkWiFiStrength "30"
checkNetworkQuality "31"
;;
"Kandji" )
checkOS "0"
checkAvailableSoftwareUpdates "1"
checkSIP "2"
checkSSV "3"
checkFirewall "4"
checkFileVault "5"
checkGatekeeperXProtect "6"
checkTouchID "7"
checkVPN "8"
checkUptime "9"
checkFreeDiskSpace "10"
checkUserDirectorySizeItems "11" "Desktop" "desktopcomputer.and.macbook" "Desktop"
checkUserDirectorySizeItems "12" "Downloads" "arrow.down.circle.fill" "Downloads"
checkUserDirectorySizeItems "13" ".Trash" "trash.fill" "Trash"
checkBluetoothSharing "14"
checkMdmCertificateExpiration "15"
checkAPNs "16"
checkNetworkHosts "17" "Apple Push Notification Hosts" "${pushHosts[@]}"
checkNetworkHosts "18" "Apple Device Management" "${deviceMgmtHosts[@]}"
checkNetworkHosts "19" "Apple Software and Carrier Updates" "${updateHosts[@]}"
checkNetworkHosts "20" "Apple Certificate Validation" "${certHosts[@]}"
checkNetworkHosts "21" "Apple Identity and Content Services" "${idAssocHosts[@]}"
checkInternal "22" "/Applications/Microsoft Teams.app" "/Applications/Microsoft Teams.app" "Microsoft Teams"
checkInternal "23" "/Applications/OneDrive.app" "/Applications/OneDrive.app" "Microsoft OneDrive"
checkInternal "24" "/Applications/Microsoft Outlook.app" "/Applications/Microsoft Outlook.app" "Microsoft Outlook"
checkInternal "25" "/Applications/Company Portal.app" "/Applications/Company Portal.app" "Company Portal"
checkInternal "26" "/Applications/zoom.us.app" "/Applications/zoom.us.app" "Zoom"
checkInternal "27" "/Applications/Cortex XDR.app" "/Applications/Cortex XDR.app" "Cortex"
checkInternal "28" "/Applications/Netskope Client.app" "/Applications/Netskope Client.app" "Netskope"
checkWiFiStrength "29"
checkNetworkQuality "30"
;;
"Microsoft Intune" )
checkOS "0"
checkAvailableSoftwareUpdates "1"
checkAppAutoPatch "2"
checkSIP "3"
checkSSV "4"
checkFirewall "5"
checkFileVault "6"
checkGatekeeperXProtect "7"
checkTouchID "8"
checkVPN "9"
checkUptime "10"
checkFreeDiskSpace "11"
checkUserDirectorySizeItems "12" "Desktop" "desktopcomputer.and.macbook" "Desktop"
checkUserDirectorySizeItems "13" "Downloads" "folder.fill.badge.plus" "Downloads"
checkUserDirectorySizeItems "14" ".Trash" "trash.fill" "Trash"
checkPasswordHint "15"
checkAirDropSettings "16"
checkAirPlayReceiver "17"
checkBluetoothSharing "18"
checkMdmProfile "19"
checkMdmCertificateExpiration "20"
checkAPNs "21"
checkNetworkHosts "22" "Apple Push Notification Hosts" "${pushHosts[@]}"
checkNetworkHosts "23" "Apple Device Management" "${deviceMgmtHosts[@]}"
checkNetworkHosts "24" "Apple Software and Carrier Updates" "${updateHosts[@]}"
checkNetworkHosts "25" "Apple Certificate Validation" "${certHosts[@]}"
checkNetworkHosts "26" "Apple Identity and Content Services" "${idAssocHosts[@]}"
checkInternal "27" "/Applications/Company Portal.app" "/Applications/Company Portal.app" "Microsoft Company Portal"
checkHomebrewStatus "28"
checkElectronCornerMask "29"
checkWiFiStrength "30"
checkNetworkQuality "31"
;;
"Mosyle" )
checkOS "0"
checkAvailableSoftwareUpdates "1"
checkAppAutoPatch "2"
checkSIP "3"
checkSSV "4"
checkFirewall "5"
checkFileVault "6"
checkGatekeeperXProtect "7"
checkTouchID "8"
checkVPN "9"
checkUptime "10"
checkFreeDiskSpace "11"
checkUserDirectorySizeItems "12" "Desktop" "desktopcomputer.and.macbook" "Desktop"
checkUserDirectorySizeItems "13" "Downloads" "folder.fill.badge.plus" "Downloads"
checkUserDirectorySizeItems "14" ".Trash" "trash.fill" "Trash"
checkPasswordHint "15"
checkAirDropSettings "16"
checkAirPlayReceiver "17"
checkBluetoothSharing "18"
checkMdmProfile "19"
checkMdmCertificateExpiration "20"
checkAPNs "21"
checkMosyleCheckIn "22"
checkNetworkHosts "23" "Apple Push Notification Hosts" "${pushHosts[@]}"
checkNetworkHosts "24" "Apple Device Management" "${deviceMgmtHosts[@]}"
checkNetworkHosts "25" "Apple Software and Carrier Updates" "${updateHosts[@]}"
checkNetworkHosts "26" "Apple Certificate Validation" "${certHosts[@]}"
checkNetworkHosts "27" "Apple Identity and Content Services" "${idAssocHosts[@]}"
checkInternal "28" "/Applications/Self-Service.app" "/Applications/Self-Service.app" "Self-Service"
checkHomebrewStatus "29"
checkElectronCornerMask "30"
checkWiFiStrength "31"
checkNetworkQuality "32"
;;
* )
checkOS "0"
checkAvailableSoftwareUpdates "1"
checkSIP "2"
checkSSV "3"
checkFirewall "4"
checkFileVault "5"
checkGatekeeperXProtect "6"
checkTouchID "7"
checkVPN "8"
checkUptime "9"
checkFreeDiskSpace "10"
checkUserDirectorySizeItems "11" "Desktop" "desktopcomputer.and.macbook" "Desktop"
checkUserDirectorySizeItems "12" "Downloads" "folder.fill.badge.plus" "Downloads"
checkUserDirectorySizeItems "13" ".Trash" "trash.fill" "Trash"
checkPasswordHint "14"
checkAirDropSettings "15"
checkAirPlayReceiver "16"
checkBluetoothSharing "17"
checkAPNs "18"
checkNetworkHosts "19" "Apple Push Notification Hosts" "${pushHosts[@]}"
checkNetworkHosts "20" "Apple Device Management" "${deviceMgmtHosts[@]}"
checkNetworkHosts "21" "Apple Software and Carrier Updates" "${updateHosts[@]}"
checkNetworkHosts "22" "Apple Certificate Validation" "${certHosts[@]}"
checkNetworkHosts "23" "Apple Identity and Content Services" "${idAssocHosts[@]}"
checkHomebrewStatus "24"
checkElectronCornerMask "25"
checkWiFiStrength "26"
checkNetworkQuality "27"
;;
esac
dialogUpdate "icon: ${icon}"
dialogUpdate "progresstext: Final Analysis …"
sleep "${anticipationDuration}"
else
# Operation Mode: Test
dialogUpdate "title: ${humanReadableScriptName} (${scriptVersion})<br>Operation Mode: ${operationMode}"
for (( i=0; i<listitemLength; i++ )); do
notice "[Operation Mode: ${operationMode}] Check ${i} …"
dialogUpdate "icon: SF=$(printf "%02d" $(($i+1))).square,${organizationColorScheme}"
dialogUpdate "listitem: index: ${i}, icon: SF=$(printf "%02d" $(($i+1))).circle.fill $(echo "${organizationColorScheme}" | tr ',' ' '), iconalpha: 1, status: wait, statustext: Checking …"
dialogUpdate "progress: increment"
dialogUpdate "progresstext: [Operation Mode: ${operationMode}] • Item No. ${i} …"
# sleep "${anticipationDuration}"
dialogUpdate "listitem: index: ${i}, icon: SF=$(printf "%02d" $(($i+1))).circle.fill weight=semibold colour=${statusColorSuccess}, iconalpha: 0.9, subtitle: ${organizationBoilerplateComplianceMessage}, status: success, statustext: ${operationMode}"
done
dialogUpdate "icon: ${icon}"
dialogUpdate "progresstext: Final Analysis …"
sleep "${anticipationDuration}"
fi
fi
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
# Quit Script
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
quitScript
4. Resources
Support
Community-based, best-effort support is available on the Mac Admins Slack (free, registration required) #mac-health-check Channel, or you can open an issue on GitHub.