Skip to main content

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?

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


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.


Reply