Image 1 — DDM OS Reminder (5.0.0)
Image 2 — DDM OS Reminder (5.0.0)
Image 3 — DDM OS Reminder (5.0.0)

DDM OS Reminder (5.0.0)

>A security-hardened upgrade to Mac Admins’ new favorite “set-it-and-forget-it” DDM macOS update reminder, featuring corroborated DDM declaration validation and “Update Tonight” awareness

Overview

While Apple’s Declarative Device Management (DDM) provides Mac Admins with a powerful way to enforce macOS updates, its built-in notification is often too subtle for most administrators.

DDM OS Reminder intelligently resolves DDM-enforced macOS update deadlines, delivering a more prominent end-user reminder dialog.

🆕 5.0.0 Highlights

  • Update Tonight awareness: Confirmed same-day Update Tonight scheduling for the target version pauses normal reminders until local midnight. Evidence must be logged by softwareupdated; pre-deadline thresholds, aggressive mode, and Force mode still apply. 
  • DDM Emergency Fallback: Jamf Pro Script Parameters 5 and 6 can persist an emergency version/deadline requirement at /Library/Management/<rdnn>/dor-fallback-declaration.plist. Runtime can select it after recognized unresolved DDM states; confirmed DDM always wins.

Continue reading …

u/dan-snelson — 8 days ago

SYM-Lite (1.5.1)

>SYM-Lite is a lean, purpose-built script for executing MDM-agnostic Installomator labels and Homebrew casks / formulas, as well as Jamf Pro-specific policy triggers, all through a unified swiftDialog selection and reporting interface.

Key Features

  • Unified execution support — Installomator labels, Homebrew casks / formulas, and / or Jamf Pro policies in a single session
  • Interactive selection UI — Checkbox dialog with per-item icons; selectable items start checked and previously installed items are automatically disabled
  • Homebrew support — Casks and formulas run in the logged-in user context (with ~/Applications for non-admin users) and never hang on a sudo prompt
  • Inspect Mode — Real-time progress monitoring in a moveable, minimizable window
  • Silent mode — CSV-based automation support

Continue reading …

u/dan-snelson — 8 days ago

Microsoft 365 Reset (2.0.0)

>A security-focused update to the MDM-agnostic, unified, user-friendly macOS script to repair, reset, or remove Microsoft 365 components

Overview

The Microsoft-365-Reset.zsh script seeks to provide an MDM-agnostic, unified, user-friendly approach to all of Paul’s Office-Reset goodness.

Additionally, one resolution to the nightmare that is the Adobe Acrobat Add-in Removal for Microsoft 365 is also included.

Continue reading …

u/dan-snelson — 15 days ago
▲ 75 r/jamf+2 crossposts

Microsoft 365 Reset (1.4.0)

>The MDM-agnostic, unified, user-friendly macOS script to repair, reset, or remove Microsoft 365 components, now with admin-configurable skipping of force-quit before Acrobat add-in cleanup

Overview

The Microsoft-365-Reset.zsh script seeks to provide an MDM-agnostic, unified, user-friendly approach to all of Paul’s Office-Reset goodness.

Additionally, one resolution to the nightmare that is the Adobe Acrobat Add-in Removal for Microsoft 365 is also included.

Under-the-hood

The script consolidates the expanded package workflows into one easy-to-use tool with:

  • Interactive swiftDialog UI in self-service, test, and debug modes
  • Non-interactive execution in silent mode
  • Dependency-aware operation resolution
  • Deterministic execution order
  • Shared logging and exit codes for automation
  • Auto-repair for selected Microsoft apps using Microsoft-hosted packages
  • MOFA community-maintained reset script contents adapted into the unified workflow

Changes in 1.4.0

This maintenance release adds a new top-level silentSkipForceQuitOps array which controls whether silent remove_acrobat_addin skips force-quitting Word, Excel, PowerPoint, and Acrobat before cleanup:

silentSkipForceQuitOps=(
    remove_acrobat_addin
)

Remove remove_acrobat_addin from that array to restore force-quit behavior for this operation. This setting affects only the Acrobat add-in preparation path; other selected operations retain their existing process-stop behavior.

Continue reading …

u/dan-snelson — 1 month ago
▲ 29 r/jamf+1 crossposts

SYM-Lite (1.2.0)

>SYM-Lite is a lean, purpose-built script for executing MDM-agnostic Installomator labels and Homebrew casks / formulas, as well as Jamf Pro-specific policy triggers, all through a unified swiftDialog selection and reporting interface.

Key Features

  • Unified execution support — Installomator labels, Homebrew casks / formulas, and / or Jamf Pro policies in a single session
  • Interactive selection UI — Checkbox dialog with per-item icons; previously installed items are automatically disabled
  • Alphabetical sorting — All Installomator, Homebrew and Jamf Pro policy items are sorted together by display name
  • Early Installomator validation — Labels are verified against your active Installomator file
  • Homebrew support — Casks and formulas run in the logged-in user context
  • Inspect Mode — Real-time progress monitoring
  • Silent mode — CSV-based automation support
  • Path-based validation & cache monitoring
  • Completion report — Per-item results with optional restart prompt
  • Graceful interruption — Clean shutdown on SIGINT/SIGTERM

Continue reading …

u/dan-snelson — 2 months ago

Mac Health Check (4.1.0)

>Mac Health Check 4.1.0 sharpens macOS compliance reporting with smarter Bluetooth Sharing detection, safer staged-update checks, richer uptime insight and a more user-friendly reporting summary

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.

Continue reading …

u/dan-snelson — 2 months ago
▲ 28 r/jamf+1 crossposts

Mac Health Check (4.0.0)

>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.0 generates client-side JSON — leveraging new Inspect Mode features of swiftDialog 3.1.0 — which can optionally be delivered via Splunk HEC

Continue reading …

u/dan-snelson — 3 months ago
▲ 24 r/jamf+1 crossposts

DDM OS Reminder (4.0.0)

>Another major upgrade to Mac Admins’ go-to solution for “set-it-and-forget-it” end-user messaging of Apple’s Declarative Device Management-enforced macOS update deadlines features a new, robust heartbeat daemon architecture, easily configurable daily reminder times, pre-deadline threshold alerts, and aggressive past-deadline mode with persistent compliance prompting

Overview

While Apple’s Declarative Device Management (DDM) provides Mac Admins with a powerful way to enforce macOS updates, its built-in notification is often too subtle for most administrators.

DDM OS Reminder intelligently resolves DDM-enforced macOS update deadlines from recent /var/log/install.log activity, while using a declaration-aware resolver which prioritizes applicable enforced-install signals.

4.0.0 Highlights

  • Heartbeat daemon architecture: /Library/LaunchDaemons/<rdnn>.dor.plist now runs lightweight dor-starter.zsh every 60 seconds. The starter checks /Library/Management/<rdnn>/dor-state.plist and only launches dor.zsh when a reminder is due.
  • Runtime scheduler state: NextScheduledReminder, DaemonLastTriggered, delivered pre-deadline thresholds, and the active dor.pid live in /Library/Management/<rdnn>/. Managed and local preferences remain admin-controlled configuration only.
  • Remote session monitoring: Resources/monitorRemoteSession.zsh provides one remote-Terminal snapshot of the heartbeat LaunchDaemon, deployed runtime files, dor-state.plist, dor.pid, matching processes, aggressive-mode kill switch, and recent project log entries. Use --rdnn <value> for your organization's deployments, --watch <seconds> for live refresh, and --log-lines <n> to adjust log tail depth.
  • Baseline reminder schedule: DailyReminderTimes controls local reminder slots in HH:MM CSV format. The default baseline is 08:00,12:00,16:00.
  • Final-minute threshold reminders: MinutesBeforeDeadlineReminderSchedule controls discrete pre-deadline reminders, defaulting to 45,30,15,10,5. These threshold reminders bypass quiet-period suppression and can refresh an already-open daemon-managed dialog when a later threshold becomes due.
  • Pre-deadline copy and emphasis: New PreDeadlineThresholdTitle / PreDeadlineThresholdMessage keys, localized variants, {minutesBeforeDeadline}, and {preDeadlineThresholdEmphasisOpen} / {preDeadlineThresholdEmphasisClose} placeholders support urgent threshold-specific dialog text and color-safe emphasis.
  • Expanded cadence controls: QuietPeriodMinutes, OutsideDisplayWindowPeriodicReminderDays, DisableButton2InsteadOfHide, PastDeadlineRestartMinimumUptimeMinutes, PastDeadlineForceTimerSeconds, and PastDeadlineForceRedisplayDelaySeconds are now preference-backed.
  • Aggressive past-deadline mode: AggressiveModePastDeadlineHours and AggressiveModeFrequencyMinutes control urgent redisplay cadence after the effective deadline. Exact redisplay scheduling continues after Open Software Update until compliance or support suppression with /Library/Management/<rdnn>/dor-aggressive-kill.
  • Effective-deadline display: Reminder copy, deadline placeholders, and infobox Deadline / Day(s) Remaining values now follow the safely resolved effective enforcement deadline, including trusted padded enforcement dates.
snelson.us
u/dan-snelson — 3 months ago
▲ 29 r/jamf+1 crossposts

DDM OS Reminder (3.3.0)

>Another Mac Admin quality-of-life update focused on leaner multi-language artifacts, smarter interactive assembly, region-aware formatting and hardened DDM handling

Overview

While Apple’s Declarative Device Management (DDM) provides Mac Admins with a powerful way to enforce macOS updates, its built-in notification is often too subtle for most administrators.

DDM OS Reminder intelligently resolves DDM-enforced macOS update deadlines from recent /var/log/install.log activity, while using a declaration-aware resolver which prioritizes applicable enforced-install signals. End-user reminders are suppressed when declaration state is missing, conflicting, or invalid, only honoring setPastDuePaddedEnforcementDate when it safely matches the resolved declaration. Failed stale SoftwareUpdateSubscriber attempts are ignored, and enforcement timestamps with full timezone offsets such as +05:30 are accepted before using a swiftDialog-enabled script and LaunchDaemon to deliver a more prominent end-user reminder dialog.

New Feature

  • Lean Artifact Options: assemble.zsh and Resources/createPlist.zsh can keep the full localization surface, generate a minimal artifact (--minimal = base keys + exact _Localized_en keys only), or retain only selected language families with --languages <csv>. In assemble.zsh --interactive, same choice appears as Full, Minimal, or Selected languages.
snelson.us
u/dan-snelson — 5 months ago
▲ 21 r/jamf+3 crossposts

Microsoft 365 Reset (1.2.0)

>A maintenance update to correct — and enhance — handling of comma-separated values (CSV) for the --operations parameter in the MDM-agnostic, unified, user-friendly macOS script to repair, reset, or remove Microsoft 365 components.

Background

A December 2023 Microsoft 365 Reset (2.0.0b1) via Jamf Pro Self Service post detailed a “quick-and-dirty Jamf Pro Policy hack for testing Microsoft_Office_Reset_2.0.0.pkg” (which still works as advertised today, more than 895 days later).

However, while conducting some internal training, I was pained by how user un-friendly the workflow seemed — even if it did get the job done — which motivated the development of the modern, unified approach that Microsoft-365-Reset.zsh now delivers.

Overview

The Microsoft-365-Reset.zsh script seeks to provide an MDM-agnostic, unified, user-friendly approach to all of Paul’s Office-Reset goodness.

Additionally, one resolution to the nightmare that is the Adobe Acrobat Add-in Removal for Microsoft 365 is also included.

Changes in 1.2.0

This maintenance release focuses on CSV handling for the --operations parameter:

  • Constrained the interactive operation picker to only the operations listed in the CSV when --operations / Jamf $5 is provided (addresses #15; thanks, andreilabin!)
  • Fixed --operations / Jamf $5 CSV parsing so comma-separated operation IDs are treated as separate selections in silent mode (addresses #16; thanks, meschwartz!)
snelson.us
u/dan-snelson — 5 months ago
▲ 38 r/jamf+1 crossposts

>A Mac Admin quality-of-life update to the new favorite MDM-agnostic, “set-it-and-forget-it” reminder with improved multi-language support, granular control for displaying IT Support information and a new, easy-to-use reminderDialogPreferenceTest.zsh script for validating preference configurations and dialog appearance in real-time

Overview

While Apple’s Declarative Device Management (DDM) provides Mac Admins with a powerful way to enforce macOS updates, its built-in notification is often too subtle for most administrators.

DDM OS Reminder intelligently resolves DDM-enforced macOS update deadlines from recent /var/log/install.log activity, while using a declaration-aware resolver which prioritizes applicable enforced-install signals. End-user reminders are suppressed when declaration state is missing, conflicting, or invalid, only honoring setPastDuePaddedEnforcementDate when it safely matches the resolved declaration, before using a swiftDialog-enabled script and LaunchDaemon to deliver a more prominent end-user reminder dialog.

New Features

  • Granular Control for Displaying IT Support Information: New HideSupport* preferences allow Mac Admins to easily choose which IT Support fields are displayed to their end-users.
  • Use Resources/reminderDialogPreferenceTest.zsh when you want to easily validate dialog copy, localization, branding, support contact details, button visibility, and infobox rendering from deployed preferences without waiting for an actual DDM deadline.
u/dan-snelson — 6 months ago