Category Archive

Mac admin'ing

Using the distribution-style flag in munkipkg for PreStage Enrollment in Jamf

Posted on February 1, 2023 by alanysiu

Even though Jamf has its own package creation tool (Jamf Composer), there are lots of great reasons to use munkipkg instead for creating custom packages, as Elliot Jordan outlines in You might like MunkiPkg. One of the keys munkipkg has is the distribution-style key (more details in the munkipkg README), which is usually fine to leave as false. But if you’re using a package for PreStage Enrollment, it has to be both a code-signed package and a distribution-style package (read more in Jamf Pro Documentation). So all you have to do (apart from code-signing), is change the build-info.plist file from


Managed Software Center may get stuck on “Starting Adobe installer…”

Posted on December 7, 2022 by alanysiu

If you import an Adobe installer into your Munki repo, you may get it stuck on the installation part where Managed Software Center (or Munki’s logs) will just say Starting Adobe installer… and get stuck on that perpetually (I waited “only” a half hour, but it could possibly stay indefinitely). I searched in the MacAdmins Slack and found a suggestion from Ben Toms to try changing <key>installer_type</key> <string>AdobeCCPInstaller</string> to <key>installer_type</key> <string></string> But I didn’t have luck with that. When I tried that, I got an error message like ERROR: No filesystem mounted from Adobe XXXXXXXXX.dmg I had better luck just


Modifying a distribution .pkg that has max macOS version requirements

Posted on August 11, 2022 by alanysiu

What’s the problem? A vendor has the option, when creating a macOS distribution package, to put in a minimum and/or maximum macOS version. That can make things slightly annoying if you’re trying, for example, to test out the current vendor package on a beta macOS version (or even a fully released macOS version that the vendor just hasn’t decided to support yet officially). If a vendor doesn’t just say “Hey, we don’t support that macOS version yet” but actually packages their installer to essentially prevent you from installing on a newer macOS version, that can kind of stink for testing


Deploying default Chrome settings to Macs

Posted on July 27, 2022 by alanysiu

You can, of course, manage certain Chrome settings via Google Workspace Admin, but what if you don’t want to manage things like the homepage, but you just want to set defaults for new deployments, and you still want users to be able to change those settings later? Google has something called an Initial Preferences file (what they used to call Master Preferences). Exact details are in Use initial preferences for Chrome browser (including the download link for the sample preferences file), with more details in Configuring Other Preferences on the actual preferences. First, you’ll download the sample preferences file from


Making a custom Nudge launch agent

Posted on April 13, 2022 by alanysiu

Introduction Nudge releases generally come as Nudge, Nudge logger, and the Nudge launch agent. As of this writing, the Nudge launch agent will launch up Nudge every 30 minutes. The package is also signed: If you’re creating your own launch agent, you may want to code-sign it, or you may not have to, depending on how you’re deploying the launch agent. Here’s an example of how you can change the launch agent, in case you don’t want it to run as aggressively (or maybe you want it to run more aggressively!). I’m writing this as a series of terminal commands,


Ensure your VMware Fusion Macs enroll in Jamf as Computers, not Devices

Posted on February 24, 2022 by alanysiu

It used to be that you could create a VMware Fusion virtual machine Mac, enroll it in Jamf (either by spoofing the serial number for Automated Device Enrollment or just using an auto-generated VM serial for manual enrollment). Recently (not sure when, exactly), you may have noticed if you try to enroll a VMware Fusion Mac in Jamf, it will install the MDM profile… and that’s it. No jamf binary. No /var/log/jamf.log file. Your VM did enroll, but it enrolled to Devices, not to Computers. To get it to enroll as a Computer in Jamf, you’ll need to remove the


Using Nudge’s targetedOSVersionsRule

Posted on February 17, 2022 by alanysiu

With a single .json file or a single MDM-delivered configuration profile, you can have various deadlines and desired OS versions for Nudge, depending on the current macOS version of the client. Let’s say, for example, you want an earlier deadline for client machines on a very old build but a later deadline for other client machines. This is what that config could look like:   "osVersionRequirements": [    {       "aboutUpdateURL": "",       "requiredInstallationDate": "2022-03-28T00:00:00Z",       "requiredMinimumOSVersion": "12.2.1",       "targetedOSVersionsRule": "default"     },     {       "aboutUpdateURL": "",       "requiredInstallationDate": "2022-02-28T00:00:00Z",       "requiredMinimumOSVersion": "12.2.1",       "targetedOSVersionsRule": "12"     },     {       "aboutUpdateURL": "",       "requiredInstallationDate": "2022-02-18T00:00:00Z",       "requiredMinimumOSVersion": "12.2",       "targetedOSVersionsRule": "12.0.1"     }   ], Here, any Mac client on Monterey (macOS 12) will have a deadline of February 28 to


Finding out which organization Office 365 is activated with

Posted on January 5, 2022 by alanysiu

If you want to see what organization Office 365 is activated with, you can take a peek at the user preferences: defaults read This is a bit tricky, though. At first glance, it might seem defaults read OfficeActivationEmailAddress is the best indicator of what account is signed in, but that value will remain unchanged if you sign out of that account and sign into a different account. It literally is the email used to activate Office. Once Office is activated, that email will still be the same email that originally activated Office. A more reliable (if less human-readable)


Basic default behavior in Nudge (Swift, not Python)

Posted on December 15, 2021 by alanysiu

A couple of years ago, I published an Introduction to Nudge. At the time, Nudge was written in Python and worked in Catalina. The new version of Nudge is written in Swift and works for Big Sur and Monterey (and presumably Alcatraz and beyond). This new version of Nudge has a whole bunch of configurable options for the user experience. You can allow or disallow user deferrals of Nudge. You can set the maximum number of allowed deferrals. You can have a random delay of up to a certain number of seconds before the Nudge window appears. But what is


How to install macOS 12 (Monterey) as a VMware Fusion guest VM

Posted on November 22, 2021 by alanysiu

Notes These are just more fleshed out steps from a brief overview in the VMware Fusion communities online forums. Hopefully, these instructions will be obsolete soon in a future update of VMware Fusion (where you can just select macOS 12, drag the installer to the install wizard, and have VMware Fusion do everything for you). I am not a VM expert. I cannot support this tutorial. I’m sharing only a more detailed step-by-step guide of a summary I read, and this is only what worked for me. If it doesn’t work for you, I probably don’t know any better than