ESUMDM

Mass Deployment Guide for Jamf Pro

Table of Contents

Introduction

ESUMDM leverages Configuration Profiles to define the functionality and user experience of the tool. Administrators should begin by building Computer Group scopes, then define customizations with Configuration Profiles, and lastly install the ESUMDM software. Use the following guide to deploy according to best practices.


Creating Scopes

Scoping ESUMDM objects in Jamf Pro is best done via Computer Smart Groups. Minor versions of macOS updates (e.g. 15.7.2) are defined on a per-release basis for each major version of macOS (e.g. 15.x), so EDUMDM preferences need to be enforced accordingly.

Smart Computer Groups

Administrators should begin by creating one Smart Group for each major version of macOS.


Configuration Profiles

The ESUMDM Managed Preference Domain is:

io.enterprisesoftwareupdate.esumdm

Administrators may choose to:

A) Deploy a Single Configuration Profile to each major version of macOS, or

B) Deploy Multiple Configuration Profiles to take a layered approach, deploying common settings with a single Configuration Profile to all Macs, then define and deploy target minor versions scoped to each major version of macOS (target_minos_version).

Configuration Profile Example

This example Configuration Profile includes all the Preference Keys available to customize ESUMDM. Refer to the Preference Key Reference for specific details about each setting.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>target_minos_version</key>
	<string>15.7.2</string>
	<key>deadline</key>
	<date>2025-12-31T12:00:00Z</date>
	<key>helpdesk_message</key>
	<string>Contact the Helpdesk at (800) 555-1212 for assistance.</string>
	<key>networkquality_disabled</key>
	<true/>
	<key>org_logo_path</key>
	<string>/usr/local/org/logo.png</string>
	<key>org_name</key>
	<string>My Org Name</string>
	<key>preflight_enabled</key>
	<true/>
	<key>preflight_jamf_array</key>
	<array>
		<string>Updating Software Title 1,pre_event1</string>
		<string>Updating Software Title 2,pre_event2</string>
	</array>
	<key>postflight_enabled</key>
	<true/>
	<key>postflight_forced</key>
	<true/>
	<key>postflight_jamf_array</key>
	<array>
		<string>Installing Post-Update 1,post_event1</string>
		<string>Installing Post-Update 2,post_event2</string>
	</array>
</dict>
</plist>

Preference Key Reference


Minimum Minor OS Version

Key: target_minos_version
String


<key>target_minos_version</key>
<string>15.7.2</string>

Deadline to Update macOS

Key: deadline
Date

<key>deadline</key>
<date>2025-12-31T12:00:00Z</date>

Helpdesk Message

Key: helpdesk_message
String

<key>helpdesk_message</key>
<string>Contact the Helpdesk at (800) 555-1212 for assistance.</string>

Disable Network Quality Check

Key: networkquality_disabled
Boolean

<key>networkquality_disabled</key>
<true/>

Organization Logo

Key: org_logo_path
String

<key>org_logo_path</key>
<string>/usr/local/org/logo.png</string>

Note: Administrators who would like to use their organization’s logo need to place the logo on the Mac filesystem prior to deploying ESUMDM. Recommended permissions are world-readable (e.g. posix 664)


Organization Name

Key: org_name
String

<key>org_name</key>
<string>My Org Name</string>

Preflight and Postflight Sequences

ESUMDM allows Jamf Pro administrators the ability to run a series of Jamf Pro policies before and/or after the macOS Software Update completes. These preflight and postflight policy sequences leverage “custom triggers“ (aka “custom events”) and will only run if a policy is offered by Jamf Pro for any given trigger. Because policies will only display to end users if a policy is offered by Jamf Pro, admins may create comprehensive sequences of custom triggers and use criteria-based scoping within these policies to ensure Macs only run policies they are eligible for. See the Jamf Pro Documentation for further details on custom policy triggers.

Preflight and Postflight sequences are enabled independently from the list (array) of custom triggers. Each policy list follows a syntax that separates the UI Description from the trigger itself.

e.g. User-Facing Text,trigger_name

Enable Preflight Sequence

Key: preflight_enabled
Type: Boolean

Example:

<key>preflight_enabled</key>
<true/>

Preflight Policy Array

Key: preflight_jamf_array
Type: Array

Example:

<key>preflight_jamf_array</key>
<array>
	<string>Updating Software Title 1,pre_event1</string>
	<string>Updating Software Title 2,pre_event2</string>
</array>

Enable Postflight Sequence

Key: postflight_enabled
Type: Boolean

Example:

<key>preflight_enabled</key>
<true/>

Postflight Policy Array

Key: postflight_jamf_array
Type: Array

Example:

<key>postflight_jamf_array</key>
<array>
	<string>Installing Post-Update 1,post_event1</string>
	<string>Installing Post-Update 2,post_event2</string>
</array>

Force Postflight Sequence

Key: postflight_forced
Type: Boolean

Example:

<key>postflight_forced</key>
<true/>

Note: The Postflight sequence may be forced at startup to ensure that Macs run the sequence of postflight policies even when updating macOS via native Apple methods.


Policies

ESUMDM activates by reading the Managed Preferences deployed via Configuration Profile and prompts users accordingly. To deploy via Jamf Pro, Administrators should first scope the Configuration Profile, then deploy the ESUMDM installer .pkg via a Jamf Pro Policy.

Below is an example of a Mass Deployment Policy.

via Mass Deployment Policy

Create a New Policy (Computers > Policies) with the name Install ESUMDM Once. In the below example, we’ll scope the policy to All Computers, however admins may choose to leverage a dedicated Smart Group containing Macs without the ESUMDM installer.

Options

  • General

    • Display Name: Install ESUMDM Once

    • Trigger: Recurring Check-in

    • Frequency: Once Per Computer

  • Packages

    • Add the latest version of ESUMDM
      (refer to Jamf Pro documentation on uploading packages)

Scope

  • All Computers