I know that there's many of you that have workflows that involve the manual install of the SM agents on macOS, such as Silent installer for MacOS However, with the changes in the SM agent 3.1.0 and above, instead of being able to do silent installs, you know have to specify your enrollment code manually, as per Mac Enrollment - Command Line Options You can optionally specify the network enrollment code / string with the following command: sudo launchctl unsetenv enrollment_code && sudo launchctl unsetenv organization_id && sudo launchctl setenv enrollment_code <network enrollment code or enrollment string> && sudo installer -pkg <path/to/package.pkg> -target / && sudo launchctl unsetenv enrollment_code && sudo launchctl unsetenv organization_id There's two optional parameters here: <network enrollment code or enrollment string> : This is the enrollment code that's quoted in Systems Manager > Add Devices, or Network Wide > General <path/to/package.pkg> : This is the path to the SM agent installer This is, understandably, unwieldy, primarily due to not being able to pass parameters to installers in macOS. However, there is an alternative: You can actually build an installer that allows you for silent enrollments, and this is how 1. Download the Current SM Agent Installer From Systems Manager > Add devices > macOS, download the SM agent 2. Create a new folder on your Desktop: SMAgent3.1.1 (for example) 3. Open Terminal and type the following cd ~/Desktop/SMAgent3.1.1 mkdir Scripts cd Scripts touch postinstall chmod a+x postinstall cd .. mkdir Content cd Content open . This last command will open the Content directory Move the previously download SM agent into here and rename it SMAgent.3.1.1.pkg Go back to terminal and type cd .. cd Scripts open . This will open the Scripts directory in Finder. 4. Edit postinstall With a suitable text editor, open the postinstall file and type: #!/bin/bash sudo launchctl unsetenv enrollment_code && sudo launchctl unsetenv organization_id && sudo launchctl setenv enrollment_code XXXX-XXXX-XXXX && sudo installer -pkg /tmp/SMAgent-3.1.1.pkg -target / && sudo launchctl unsetenv enrollment_code && sudo launchctl unsetenv organization_id NOTE: Replace XXXX-XXXX-XXXX with the network enrollment code or string Save this file 5. Create installer Go back to Terminal and type: cd .. sudo pkgbuild --identifier com.meraki.smautoenroll --root Content --script Scripts --install-location /tmp com.meraki.SMAgent3.1.1-autoenroll.pkg This should result in: paulf@Paul-F-MBP-680 SM3.1.1pkg % sudo pkgbuild --identifier com.meraki.smautoenroll --root Content --script Scripts --install-location /tmp com.meraki.SMAgent3.1.1-autoenroll.pkg Password: pkgbuild: Inferring bundle components from contents of Content pkgbuild: Adding top-level postinstall script pkgbuild: Wrote package to com.meraki.SMAgent3.1.1-autoenroll.pkg You should now have an installer that will silently install the SM agent without prompts!
... View more