AirWatch 9.1 introduces the ability to apply custom MDM commands to iOS, macOS, and tvOS devices. As Apple introduces new MDM functionality with new devices and new versions of operating systems, there may be functionality that you want to take advantage of before you are able to upgrade your AirWatch environment, or before that functionality is fully introduced into the AirWatch UI. In previous versions of AirWatch, the "Custom XML" profile payload could be used for new profile options and restrictions that were introduced in these updated versions, but now similar functionality is available for newly introduced MDM commands, such as the example commands listed below.
To send these custom commands from an AirWatch 9.1+ environment, navigate in the AirWatch Console to Devices > List View, select an appropriate device, and select More Actions > Custom Command. From here, you must specify the Command XML that will be sent to the device. These custom commands can be sent to a group of devices in bulk, depending on the Bulk Management settings configured in your console environment. Additionally, these commands can be sent through the AirWatch API.
The Mobile Device Management (MDM) Protocol for Apple devices outlines all available MDM commands for these devices, and can be leveraged to generate the custom commands if AirWatch does not support any specific command/functionality in the AirWatch Console UI.
Custom MDM Command Examples
Shut Down Device (iOS 10.3+ Supervised only)
# The device will shut down immediately
<dict> <key>RequestType</key> <string>ShutDownDevice</string> </dict>
Restart Device (iOS 10.3+ & tvOS 10.2+ Supervised only)
# The device will restart immediately. Passcode‐locked iOS devices do not rejoin Wi-Fi networks # after restarting, so they may not be able to communicate with the server.
<dict> <key>RequestType</key> <string>RestartDevice</string> </dict>
Set Computer/Host Name for macOS (10.9+)
# DeviceName key will set ComputerName and LocalHostName # HostName key will set HostName # Verify on device with # /usr/sbin/scutil ‐-get ComputerName/LocalHostName/HostName
<dict> <key>RequestType</key> <string>Settings</string> <key>Settings</key> <array> <dict> <key>Item</key> <string>DeviceName</string> <key>DeviceName</key> <string>test‐ComputerName‐test</string> </dict> <dict> <key>Item</key> <string>HostName</string> <key>HostName</key> <string>test‐HostName‐test</string> </dict> </array> </dict>