---
title: Shell scripts on macOS devices
slug: device-management-apple/shell-scripts-on-macos-devices
createdAt: 2026-10-06T07:47:38.090Z
---

Ivanti EPMM allows you to create and sign your own macOS shell scripts, which you can then upload to Ivanti EPMM and run on managed macOS devices. You can write a script that configures any setting within macOS System Preferences on macOS devices. Or, you may wish to run scripts that:

- force device users to change their passwords monthly
- lock the screen after 5 minutes of idle time
- or configures a secured Wi-Fi network.

After uploading scripts to Ivanti EPMM and configuring macOS script configuration and policy components, Ivanti EPMM executes your scripts on macOS devices using Ivanti Mobile\@Work for macOS. Ivanti Mobile\@Work for macOS polls Ivanti EPMM periodically to check whether there are any scripts awaiting execution. If there are scripts in the queue, Ivanti Mobile\@Work for macOS downloads and runs the scripts on macOS devices according to settings you define on Ivanti EPMM. Ivanti Mobile\@Work runs the scripts as the device user or as root, depending on how you signed the script. Ivanti Mobile\@Work then returns the script execution results to Ivanti EPMM, which are shown in the audit logs.

## Components required to run shell scripts on macOS devices

To run shell scripts on macOS devices, you need:

- Ivanti Mobile\@Work for macOS on macOS devices
- Ivanti EPMM 9.7.0.0, or supported newer versions, configured with mutual authentication
- Script signing tool, provided by Ivanti, Inc
- macOS script configuration on Ivanti EPMM
- macOS script policy on Ivanti EPMM

## Main steps of running shell scripts on macOS devices

Running shell scripts on macOS devices involves the following main steps:

1. [Registering macOS devices with Ivanti EPMM using Ivanti Mobile@Work for macOS](docId\:D8kiNfUW65-GOx2rz5Hst)
2. [Creating certificates for your shell scripts for macOS](docId\:cUsDYrURDQxYrazku_HH9)
3. [Creating a shell script for macOS](docId\:uux_4wLfktesw37af5V0t)
4. [Testing your shell script for macOS](docId\:hnq59nP_PnfxidzjW3lrw)
5. [Signing your shell script for macOS](docId\:tAr1blvYL3FZOxmh-FjTi)
6. [Configuring a macOS script configuration on Ivanti EPMM](docId\:XuxuMgcUgau_P5_dZQGmT)
7. [Configuring a macOS script policy on Ivanti EPMM](docId\:SdIJiD2U4kTlueVRE16XR)
8. [Viewing macOS script execution logs](docId\:CVh8TQGMUVhegEeGl31Lo)
