Using Nudge’s targetedOSVersionsRule

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": "https://support.apple.com/en-us/HT211896",
      "requiredInstallationDate": "2022-03-28T00:00:00Z",
      "requiredMinimumOSVersion": "12.2.1",
      "targetedOSVersionsRule": "default"
    },
    {
      "aboutUpdateURL": "https://support.apple.com/en-us/HT211896",
      "requiredInstallationDate": "2022-02-28T00:00:00Z",
      "requiredMinimumOSVersion": "12.2.1",
      "targetedOSVersionsRule": "12"
    },
    {
      "aboutUpdateURL": "https://support.apple.com/en-us/HT211896",
      "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 update to 12.2.1, but Mac clients on macOS 12.0.1 (the oldest version of macOS 12) will have a deadline of February 18 to update to 12.2 (even though they’ll really probably update to 12.2.1, 12.3, or whatever is actually available to update to), and any other clients would have a deadline of March 28.

So even though we have default and 12 listed first, the order doesn’t matter—having a separate entry that specifies 12.0.1 means that will be the exception to the general default and 12 rules.

So the Mac on macOS 12.0.1 will see the earlier deadline:

If, however, we make another build specified, then the 12.0.1 client will just fall back to the default 12 rule.

Here’s how that would look in the .json:

  "osVersionRequirements": [
   {
      "aboutUpdateURL": "https://support.apple.com/en-us/HT211896",
      "requiredInstallationDate": "2022-03-28T00:00:00Z",
      "requiredMinimumOSVersion": "12.2.1",
      "targetedOSVersionsRule": "default"
    },
    {
      "aboutUpdateURL": "https://support.apple.com/en-us/HT211896",
      "requiredInstallationDate": "2022-02-28T00:00:00Z",
      "requiredMinimumOSVersion": "12.2.1",
      "targetedOSVersionsRule": "12"
    },
    {
      "aboutUpdateURL": "https://support.apple.com/en-us/HT211896",
      "requiredInstallationDate": "2022-02-18T00:00:00Z",
      "requiredMinimumOSVersion": "12.2",
      "targetedOSVersionsRule": "12.1"
    }
  ],

And then the macOS 12.0.1 client suddenly has 11 days instead of just 1 day to install the update:

Further reading at the Nudge wiki’s targetedOSVersionsRule page


Posted

in

by

Tags:

Comments

2 responses to “Using Nudge’s targetedOSVersionsRule”

  1. Christopher Avatar
    Christopher

    Hi. My name is Chris and I am a Mac Admin at my organization. I have been testing Nudge as a solution to keep our mac estate OS up to date. We don’t want the devices to be on the very latest version until we have tested it. So, I would like Nudge to only prompt if the current macOS is earlier than our current version which is one version below what is currently available from Apple (Software Update). So far I haven’t figured out how to configure Nudge to do just that. Please help…

    1. alanysiu Avatar
      alanysiu

      I don’t believe you can configure Nudge to perpetually do that, unless you have some server-side automation in place to automatically update a .json file hosted on a web server or to automatically update an MDM configuration profile. You’d have to figure out a way to automatically determine what the latest OS version is and second latest version, and make sure your sources are reliable.

Leave a Reply

Your email address will not be published. Required fields are marked *