Platform Support

pymdm supports macOS (Jamf Pro) and Windows (Intune) managed endpoints.

Feature Matrix

Feature

macOS (Jamf)

Windows (Intune)

JamfParamParser

Yes

IntuneParamParser

Yes

GenericParamParser

Yes

Yes

Dialog (swiftDialog)

Yes

Graceful no-op

CommandRunner

Yes

Yes

TextTools

Yes

Yes

SystemInfo

Yes

Yes

MdmLogger

Yes

Yes

WebhookSender

Yes

Yes

DarwinDefaults

Yes

DarwinServiceManager

Yes

Win32Registry

Yes

Win32ServiceManager

Yes

Environment Variables

Variable

Purpose

Values

PYMDM_PLATFORM

Override platform auto-detection

darwin, win32

PYMDM_MDM_PROVIDER

Override MDM provider auto-detection

jamf, intune, generic

Auto-Detection

pymdm auto-detects the current platform and MDM provider at import time. Override with environment variables when testing cross-platform scripts locally:

from pymdm.platforms import get_platform
from pymdm.mdm import get_provider

platform = get_platform()    # DarwinPlatformInfo or Win32PlatformInfo
provider = get_provider()    # JamfParamParser, IntuneParamParser, or GenericParamParser

Task Mapping: Jamf vs Intune

Jamf Pro

Intune Equivalent

pymdm API

$4 positional param

PARAM_NAME env var

get_provider().get(4) / get_provider().get("PARAM_NAME")

$5 boolean param

FLAG env var

get_provider().get_bool(5) / get_provider().get_bool("FLAG")

Script params via sys.argv[4-11]

Env vars or sys.argv

Provider-specific

jamf recon

Microsoft Graph API

Not in pymdm (use provider SDK)

swiftDialog

Windows toast/WPF

Dialog (macOS only)