Smart Group of Mojave Supported Macs with Regex

Just_Jack
Contributor

Posted asking how to. Found the answer.
This is what I've come up with to use Regex to sort out hardware that supports Mojave.
I used the Model Identifier

MacBook - ^MacBook(?![1234567],[1-9])[0-9]{1,2},[1-9]
MacBookAir - ^MacBookAir(?![1234],[1-9])[0-9]{1,2},[1-9]
MacBookPro - ^MacBookPro(?![12345678],[1-9])[0-9]{1,2},[1-9]
Macmini - ^Macmini(?![12345],[1-9])[0-9]{1,2},[1-9]
iMac - ^iMac(?![1-9],[1-9]|[0-2]{2},[1-9])[0-9]{1,2},[1-9]
iMacPro - ^iMacPro[0-9]{1,2},[1-9]
MacPro - ^MacPro(?![1234],[1-9])[0-9]{1,2},[1-9]

The only issue I see is the MacPro 5,1 must have a Metal GPU. Would I have to create an EA to pull what video card are in those boxes?

2 REPLIES 2

donmontalvo
Esteemed Contributor II

FWIW, a once-per-computer policy to determine if computer supports Mojave:

#!/bin/bash

outputFile="/tmp/.tempMojaveTestFile.txt"
modelIdentifier=$( sysctl -n hw.model )
folderPath="/Library/COMPANY/SearchResults"

cat << 'EOF' > $outputFile
iMac10,1
iMac11,1
iMac11,2
iMac11,3
iMac12,1
iMac12,2
iMac4,1
iMac4,2
iMac5,1
iMac5,2
iMac6,1
iMac7,1
iMac8,1
iMac9,1
MacBook1,1
MacBook2,1
MacBook3,1
MacBook4,1
MacBook5,1
MacBook5,2
MacBook6,1
MacBook7,1
MacBookAir1,1
MacBookAir2,1
MacBookAir3,1
MacBookAir3,2
MacBookAir4,1
MacBookAir4,2
MacBookPro1,1
MacBookPro1,2
MacBookPro2,1
MacBookPro2,2
MacBookPro3,1
MacBookPro4,1
MacBookPro5,1
MacBookPro5,2
MacBookPro5,3
MacBookPro5,4
MacBookPro5,5
MacBookPro6,1
MacBookPro6,2
MacBookPro7,1
MacBookPro8,1
MacBookPro8,2
MacBookPro8,3
Macmini1,1
Macmini2,1
Macmini3,1
Macmini4,1
Macmini5,1
Macmini5,2
Macmini5,3
MacPro1,1
MacPro2,1
MacPro3,1
MacPro4,1
Xserve1,1
Xserve2,1
Xserve3,1
EOF

if [[ -e "$outputFile" ]]
then
    if grep -R "$modelIdentifier" "$outputFile"
    then
        touch "$folderPath"/SupportsMojaveNOT.txt
    else
        touch "$folderPath"/SupportsMojave.txt
    fi
else
    echo "$outputFile does not exist."
    exit 1
fi

rm "$outputFile"

exit 0

Would then need a simple EA to show which file exists, to feed a Smart Computer Group.

HTH,
Don

--
https://donmontalvo.com

spalmer
Contributor III

You can use the script posted at https://github.com/laurentpertois/Mojave-Compatibility-Checker to return a true or false value in an Extension Attribute.