Extension Attribute to View Latest Available macOS

myers022
New Contributor II

I created a script that will tell you what the latest available macOS is that you can install on your hardware but will not run as an extension attribute, it shows blank but if I run it manually it will show the macOS version.
Does anyone know how I can fix the script to make it work for an extension attribute?

Thanks in advance,

#!/bin/bash

# All models, model indentifiers, and macOS compatibility provided by Apple.
# List will need to be updated when new model come out.

# MacBook Pro - https://support.apple.com/en-us/HT201300
# MacBook Air - https://support.apple.com/en-us/HT201862
# iMac - https://support.apple.com/en-us/HT201634
# Mac Mini - https://support.apple.com/en-us/HT201894
# Mac Pro - https://support.apple.com/en-us/HT202888
# Mac Studio - https://support.apple.com/en-us/HT213073


# Read system profile and extract the model identifier
system_profile=$(system_profiler SPHardwareDataType)
model_identifier=$(echo "$system_profile" | awk -F': ' '/Model Identifier/ {print $2}' | tr -d ' ')

# Define the list of system profiles
system_profiles=(
  "MacBook Pro (14-inch, M1 Pro, 2023)|Mac14,5, Mac14,9|macOS Ventura"
  "MacBook Pro (14-inch, M1 Max, 2023)|Mac14,5, Mac14,9|macOS Ventura"
  "MacBook Pro (16-inch, 2023)|Mac14,6, Mac14,10|macOS Ventura"
  "MacBook Pro (13-inch, M1 Pro, 2023)|MacBookPro17,1|macOS Ventura"
  "MacBook Pro (14-inch, 2023)|Mac14,5, Mac14,9|macOS Ventura"
  "MacBook Pro (16-inch, 2023)|Mac14,6, Mac14,10|macOS Ventura"
  "MacBook Pro (13-inch, M2, 2022)|Mac14,7|macOS Ventura"
  "MacBook Pro (14-inch, 2021)|MacBookPro18,3, MacBookPro18,4|macOS Ventura"
  "MacBook Pro (16-inch, 2021)|MacBookPro18,1, MacBookPro18,2|macOS Ventura"
  "MacBook Pro (13-inch, M1, 2020)|MacBookPro17,1|macOS Ventura"
  "MacBook Pro (13-inch, 2020, Two Thunderbolt 3 ports)|MacBookPro16,3|macOS Ventura"
  "MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports)|MacBookPro16,2|macOS Ventura"
  "MacBook Pro (16-inch, 2019)|MacBookPro16,1, MacBookPro16,4|macOS Ventura"
  "MacBook Pro (13-inch, 2019, Two Thunderbolt 3 ports)|MacBookPro15,4|macOS Ventura"
  "MacBook Pro (15-inch, 2019)|MacBookPro15,1, MacBookPro15,3|macOS Ventura"
  "MacBook Pro (13-inch, 2019, Four Thunderbolt 3 ports)|MacBookPro15,2|macOS Ventura"
  "MacBook Pro (15-inch, 2018)|MacBookPro15,1|macOS Ventura"
  "MacBook Pro (13-inch, 2018, Four Thunderbolt 3 ports)|MacBookPro15,2|macOS Ventura"
  "MacBook Pro (13-inch, 2018, Two Thunderbolt 3 ports)|MacBookPro15,4|macOS Ventura"
  "MacBook Pro (15-inch, 2017)|MacBookPro14,3|macOS Ventura"
  "MacBook Pro (13-inch, 2017, Four Thunderbolt 3 ports)|MacBookPro14,2|macOS Ventura"
  "MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)|MacBookPro14,1|macOS Ventura"
  "MacBook Pro (15-inch, 2016)|MacBookPro13,3|macOS Monterey"
  "MacBook Pro (13-inch, 2016, Four Thunderbolt 3 ports)|MacBookPro13,2|macOS Monterey"
  "MacBook Pro (13-inch, 2016, Two Thunderbolt 3 ports)|MacBookPro13,1|macOS Monterey"
  "MacBook Pro (Retina, 15-inch, Mid 2015)|MacBookPro11,4, MacBookPro11,5|macOS Monterey"
  "MacBook Pro (Retina, 13-inch, Early 2015)|MacBookPro12,1|macOS Monterey"
  "MacBook Pro (Retina, 15-inch, Mid 2014)|MacBookPro11,2, MacBookPro11,3|macOS Big Sur"
  "MacBook Pro (Retina, 13-inch, Mid 2014)|MacBookPro11,1|macOS Big Sur"
  "MacBook Pro (Retina, 15-inch, Late 2013)|MacBookPro11,2, MacBookPro11,3|macOS Big Sur"
  "MacBook Pro (Retina, 13-inch, Late 2013)|MacBookPro11,1|macOS Big Sur"
  "MacBook Pro (Retina, 15-inch, Early 2013)|MacBookPro10,1|macOS Catalina"
  "MacBook Pro (Retina, 13-inch, Early 2013)|MacBookPro10,2|macOS Catalina"
  "MacBook Pro (Retina, 13-inch, Late 2012)|MacBookPro10,2|macOS Catalina"
  "MacBook Pro (Retina, 15-inch, Mid 2012)|MacBookPro10,1|macOS Catalina"
  "MacBook Pro (15-inch, Mid 2012)|MacBookPro9,1|macOS Catalina"
  "MacBook Pro (13-inch, Mid 2012)|MacBookPro9,2|macOS Catalina"
  "MacBook Pro (Retina, 13-inch, Mid 2012)|MacBookPro10,2|macOS Catalina"
  "MacBook Pro (Retina, 15-inch, Early 2012)|MacBookPro10,1|macOS Catalina"
  "MacBook Pro (15-inch, Early 2011)|MacBookPro8,2|macOS High Sierra"
  "MacBook Pro (13-inch, Early 2011)|MacBookPro8,1|macOS High Sierra"
  "MacBook Pro (17-inch, Early 2011)|MacBookPro8,3|macOS High Sierra"
  "MacBook Pro (15-inch, Late 2011)|MacBookPro8,2|macOS High Sierra"
  "MacBook Pro (13-inch, Late 2011)|MacBookPro8,1|macOS High Sierra"
  "MacBook Pro (17-inch, Late 2011)|MacBookPro8,3|macOS High Sierra"
  "MacBook Pro (15-inch, Mid 2010)|MacBookPro6,2|macOS High Sierra"
  "MacBook Pro (13-inch, Mid 2010)|MacBookPro7,1|macOS High Sierra"
  "MacBook Pro (17-inch, Mid 2010)|MacBookPro6,1|macOS High Sierra"
  "MacBook Pro (15-inch, Mid 2009)|MacBookPro5,3|OS X El Capitan"
  "MacBook Pro (13-inch, Mid 2009)|MacBookPro5,5|OS X El Capitan"
  "MacBook Pro (17-inch, Mid 2009)|MacBookPro5,2|OS X El Capitan"
  "MacBook Pro (15-inch, Early 2009)|MacBookPro5,3|OS X El Capitan"
  "MacBook Pro (13-inch, Early 2009)|MacBookPro5,5|OS X El Capitan"
  "MacBook Pro (17-inch, Early 2008)|MacBookPro4,1|OS X El Capitan"
  "MacBook Pro (15-inch, Early 2008)|MacBookPro4,1|OS X El Capitan"
  "MacBook Pro (15-inch, Late 2008)|MacBookPro5,1|OS X El Capitan"
  "MacBook Pro (13-inch, Late 2008)|MacBookPro5,1|OS X El Capitan"

  "MacBook Air (M2, 2022)|Mac14,2|macOS Ventura"
  "MacBook Air (M1, 2020)|MacBookAir10,1|macOS Ventura"
  "MacBook Air (Retina, 13-inch, 2020)|MacBookAir9,1|macOS Ventura"
  "MacBook Air (Retina, 13-inch, 2019)|MacBookAir8,2|macOS Ventura"
  "MacBook Air (Retina, 13-inch, 2018)|MacBookAir8,1|macOS Ventura"
  "MacBook Air (13-inch, 2017)|MacBookAir7,2|macOS Monterey"
  "MacBook Air (13-inch, Early 2015)|MacBookAir7,2|macOS Monterey"
  "MacBook Air (11-inch, Early 2015)|MacBookAir7,1|macOS Monterey"
  "MacBook Air (13-inch, Early 2014)|MacBookAir6,2|macOS Big Sur"
  "MacBook Air (11-inch, Early 2014)|MacBookAir6,1|macOS Big Sur"
  "MacBook Air (13-inch, Mid 2013)|MacBookAir6,2|macOS Big Sur"
  "MacBook Air (11-inch, Mid 2013)|MacBookAir6,1|macOS Big Sur"
  "MacBook Air (13-inch, Mid 2012)|MacBookAir5,2|macOS Catalina"
  "MacBook Air (11-inch, Mid 2012)|MacBookAir5,1|macOS Catalina"
  "MacBook Air (13-inch, Mid 2011)|MacBookAir4,2|macOS High Sierra"
  "MacBook Air (11-inch, Mid 2011)|MacBookAir4,1|macOS High Sierra"
  "MacBook Air (13-inch, Late 2010)|MacBookAir3,2|macOS High Sierra"
  "MacBook Air (11-inch, Late 2010)|MacBookAir3,1|macOS High Sierra"
  "MacBook Air (Mid 2009)|MacBookAir2,1|OS X El Capitan"

  "Mac Pro (2019)|MacPro7,1|macOS Monterey"
  "Mac Pro (Rack, 2019)|MacPro7,1|macOS Monterey"
  "Mac Pro (Late 2013)|MacPro6,1|macOS Monterey"
  "Mac Pro (Mid 2012)|MacPro5,1|macOS Mojave 10.14.6.*"
  "Mac Pro Server (Mid 2012)|MacPro5,1|macOS Mojave 10.14.6.*"
  "Mac Pro (Mid 2010)|MacPro5,1|macOS Mojave 10.14.6.*"
  "Mac Pro Server (Mid 2010)|MacPro5,1|macOS Mojave 10.14.6.*"
  "Mac Pro (Early 2009)|MacPro4,1|OS X El Capitan 10.11.6"

  "iMac (24-inch, M1, 2021)|iMac21,1|iMac21,2|macOS Ventura"
  "iMac (Retina 5K, 27-inch, 2020)|iMac20,1|iMac20,2|macOS Ventura"
  "iMac (Retina 5K, 27-inch, 2019)|iMac19,1|macOS Ventura"
  "iMac (Retina 4K, 21.5-inch, 2019)|iMac19,2|macOS Ventura"
  "iMac Pro|iMacPro1,1|macOS Ventura"
  "iMac (Retina 5K, 27-inch, 2017)|iMac18,3|macOS Ventura"
  "iMac (Retina 4K, 21.5-inch, 2017)|iMac18,2|macOS Ventura"
  "iMac (21.5-inch, 2017)|iMac18,1|macOS Ventura"
  "iMac (Retina 5K, 27-inch, Late 2015)|iMac17,1|macOS Monterey"
  "iMac (Retina 4K, 21.5-inch, Late 2015)|iMac16,2|macOS Monterey"
  "iMac (21.5-inch, Late 2015)|iMac16,1|macOS Monterey"
  "iMac (Retina 5K, 27-inch, Mid 2015)|iMac15,1|macOS Monterey"
  "iMac (Retina 5K, 27-inch, Late 2014)|iMac15,1|macOS Big Sur"
  "iMac (21.5-inch, Mid 2014)|iMac14,4|macOS Big Sur"
  "iMac (27-inch, Late 2013)|iMac14,2|macOS Catalina"
  "iMac (21.5-inch, Late 2013)|iMac14,1|macOS Catalina"
  "iMac (27-inch, Late 2012)|iMac13,2|macOS Catalina"
  "iMac (21.5-inch, Late 2012)|iMac13,1|macOS Catalina"
  "iMac (27-inch, Mid 2011)|iMac12,2|macOS High Sierra"
  "iMac (21.5-inch, Mid 2011)|iMac12,1|macOS High Sierra"
  "iMac (27-inch, Mid 2010)|iMac11,3|macOS High Sierra"
  "iMac (21.5-inch, Mid 2010)|iMac11,2|macOS High Sierra"
  "iMac (27-inch, Late 2009)|iMac10,1|macOS High Sierra"
  "iMac (21.5-inch, Late 2009)|iMac10,1|macOS High Sierra"
  "iMac (24-inch, Early 2009)|iMac9,1|OS X El Capitan"
  "iMac (20-inch, Early 2009)|iMac9,1|OS X El Capitan"

  "Mac Studio (2022)|Mac13,1|macOS Ventura"
  "Mac Studio (2022)|Mac13,2|macOS Ventura"

  "Mac mini (2023, M2 chip)|Mac14,3|macOS Ventura"
  "Mac mini (2023, M2 Pro chip)|Mac14,12|macOS Ventura"
  "Mac mini (M1, 2020)|Macmini9,1|macOS Ventura"
  "Mac mini (2018)|Macmini8,1|macOS Ventura"
  "Mac mini (Late 2014)|Macmini7,1|macOS Monterey"
  "Mac mini (Late 2012)|Macmini6,1; Macmini6,2|macOS Catalina"
  "Mac mini (Mid 2011)|Macmini5,1; Macmini5,2|macOS High Sierra"
  "Mac mini (Mid 2010)|Macmini4,1|macOS High Sierra"
  "Mac mini (Late 2009)|Macmini3,1|OS X El Capitan"
  "Mac mini (Early 2009)|Macmini3,1|OS X El Capitan"
)

# Iterate over the system profiles and find a match
matched_profile=""
for profile in "${system_profiles[@]}"; do
  identifier=$(echo "$profile" | awk -F'|' '{print $2}' | tr -d ' ')
  if [[ $model_identifier == $identifier ]]; then
    matched_profile=$profile
    break
  fi
done

# Output the matched information
if [[ -n $matched_profile ]]; then
  matched_info=$(echo "$matched_profile" | awk -F'|' '{print $3}')
  echo "$matched_info"
else
  echo "System Not Found"
fi






1 ACCEPTED SOLUTION

jamf-42
Valued Contributor

you've not added the 'result' for the EA? 

echo "<result>$matched_info</result>"

View solution in original post

4 REPLIES 4

jamf-42
Valued Contributor

you've not added the 'result' for the EA? 

echo "<result>$matched_info</result>"

sdagley
Esteemed Contributor II

@myers022 The output of an EA must be enclosed by a <result> tag, so your echos need to be

 

echo "<result>$matched_info</result>"
or
echo "<result>System Not Found</result>"

 

 

myers022
New Contributor II

Does anyone know of a URL list that I can reference instead of maintaining my own list?

thomasC
Contributor