Skip to main content
Jamf Nation, hosted by Jamf, is the largest Apple IT management community in the world. Dialog with your fellow IT professionals, gain insight about Apple device deployments, share best practices and bounce ideas off each other. Join the conversation.

macOS Mojave incompatible Mac Models - Smart Computer Group

According to the Apple Public Beta Page the following Macs are compatible with macOS 10.14 (Mojave):

MacBook (Early 2015 or newer)
MacBook Air (Mid 2012 or newer)
MacBook Pro (Mid 2012 or newer)
Mac mini (Late 2012 or newer)
iMac (Late 2012 or newer)
iMac Pro (2017)
Mac Pro (Late 2013, plus mid 2010 and mid 2012 models with recommended Metal-capable GPU, including MSI Gaming Radeon RX 560 and Sapphire Radeon PULSE RX 580)

@rtrouton Wrote a nice page about how to create a smart group for High Sierra incompatible Macs

As we have many soon to be unsupported Macs in our infrastructure I adapted his xml-file to reflect the changed compatible models:

<?xml version="1.0" encoding="UTF-8"?>
<computer_group>
  <name>Macs incompatible with macOS Mojave</name>
  <is_smart>true</is_smart>
  <criteria>
    <size>37</size>
    <criterion>
      <name>Model Identifier</name>
      <priority>0</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookPro4,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>1</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacPro2,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>2</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookPro5,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>3</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookPro1,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>4</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookPro5,3</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>5</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookPro5,2</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>6</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>iMac8,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>7</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookPro5,4</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>8</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>iMac5,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>9</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>iMac5,2</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>10</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>iMac6,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>11</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookPro3,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>12</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookPro1,2</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>13</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>iMac9,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>14</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>Macmini3,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>15</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>Macmini1,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>16</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>iMac4,2</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>17</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookPro2,2</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>18</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookPro2,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>19</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBook3,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>20</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBook5,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>21</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBook5,2</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>22</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBook2,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>23</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>iMac4,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>24</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBook1,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>25</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookPro5,5</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>26</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>Xserve2,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>27</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookAir1,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>28</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>Xserve3,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>29</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookAir2,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>30</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>Xserve1,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>31</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>Macmini2,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>32</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacPro3,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>33</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>iMac7,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>34</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBook4,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>35</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacPro1,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>36</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacPro4,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>37</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBook6,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>38</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBook7,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>39</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookPro7,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>40</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookPro6,2</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>41</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookPro6,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>42</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookPro8,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>43</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookPro8,2</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>44</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookPro8,3</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>45</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookAir3,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>46</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookAir3,2</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>47</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookAir4,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>48</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>MacBookAir4,2</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>49</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>Macmini4,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>50</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>Macmini5,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>51</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>Macmini5,2</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>52</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>Macmini5,3</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>53</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>iMac10,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>54</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>iMac11,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>55</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>iMac11,2</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>56</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>iMac11,3</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>57</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>iMac12,1</value>
    </criterion>
    <criterion>
      <name>Model Identifier</name>
      <priority>58</priority>
      <and_or>or</and_or>
      <search_type>is</search_type>
      <value>iMac12,2</value>
    </criterion>
  </criteria>
  <computers/>
</computer_group>

For creating the smart group you will need to use the api as in the original blog post described:

curl -skfu username:password https://jamfpro.server.here:8443/JSSResource/computergroups/id/0 -T /path/to/filename.xml -X POST

I hope that this is useful for some of you guys :)

Like Comment
Order by:
SOLVED Posted: by jwojda

thank you @AndreasRumpl and @rtrouton for doing the heavy lifting for the community!

Like
SOLVED Posted: by Taylor.Armstrong

Thank you!

Working 100% here.

Like
SOLVED Posted: by MLBZ521

I've been considering doing something similar for machines that are not on the proper firmware version per OS. ( See: our large fleet of imaged Macs that haven't been getting firmware updates for years now... :/ )

If anyone would want to do this a different way, given Jamf doesn't recommend so many criteria in a Smart Group, I have an extension attribute to get the Latest OS Supported per Model and Current OS Version.

https://github.com/MLBZ521/macOS.JAMF/blob/master/Extension%20Attributes/jamf_ea_LatestOSSupported.sh

Supports El Capitan to Mojave.

Like
SOLVED Posted: by mm2270

Like @MLBZ521 states, having that many criteria items in one Smart Group is not advisable. While I'm sure it "works", it also creates a lot of stress on the server during Smart Group calculation, which happens a lot more frequently than most people realize - basically every time a machine checks in with new inventory, and some other times as well.
Using an EA that simply creates a Supported/Not Supported result is more efficient. It offloads the work onto the client during a recon. You could also have a one time policy run on each Mac that runs a script to determine Mojave eligibility, and then either drops the result into a file that an EA can pick up easily, or even an API script to write the result into a pop up menu style EA. Any of the above would be better than creating a Smart Group with 59 criteria items in it in my opinion.

Like
SOLVED Posted: by mkolb

I'm not so sure if this really causes such troubles for the database like you said. We all use a lot of smart groups for all kind of things and yes, in this smart group are 59 criteria BUT they are just "connected" with OR. So there wouldn't be much difference between one group with 59 criteria or 59 smart groups with one criteria. And in any bigger environment the amount of ~60 smart groups doesn't seem to be unrealistic. I guess an even higher amount would be totally normal.

I agree, the solution with the extension attribute is an elegant way to solve this, but I don't see any real problems if you go the smart group way. If something like this really stresses your database in a critical way, I think it's time to check the database(-host).

And no matter if you do the EA or the SG way, after your environment upgraded to Mojave and/or you got rid of all the clients that are too old, you can stop to monitor this anyway, so it is just temporary.

Like
SOLVED Posted: by MLBZ521

We've been having some pretty noticeable performance issues in our environment and when I reached out to Jamf, they specifically said:

We normally don't recommend over 10 criteria for smart groups as you will then see some performance issues

The other thing would be, what are you using this Smart Group for? We teach to our Site Admins that Smart Groups are not for Reporting purposes. If they're only creating the Smart Group to see the number in the group, and not using the Group in a Scope some where, we highly request they do not do that.

Our server side environment, resource wise, has more than the recommended resources for the quantity of managed devices (or at least we believe based on what support provided me). Still, if you're not going to use it, it would be better to create an Advanced Search out of the criteria.

Also, for my EA, I have a use for it outside of this as well. I have an macOS Upgrade workflow (script) that can be used to provide a "Self Service" Upgrade to users and/or push a forced upgrade as well. So a Site Admin can scope the Policy to the status of that EA essentially.

Like