A good extension attribute is worth it’s weight a thousand times over it if can save you time.

I’ve included here a collection of the extension attributes that I’ve collected/written for the Casper Suite that have saved me countless hours. Some of them are quite specific but hopefully they can be of use to you. If you have any questions or would like some help with writing a custom extension tweet me @jacobcurulli

Battery Health Status

#!/bin/sh

result=`ioreg -r -c "AppleSmartBattery" | grep "PermanentFailureStatus" | awk '{print $3}' | sed s/\"//g`

if [ "$result" == "1" ]; then
result="Failure"
elif [ "$result" == "0" ]; then
result="OK"
fi

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

 

Java Version Installed

#Check if java_home is defined
javaHome=`/usr/libexec/java_home 2> /dev/null`;

if [ ! -z $javaHome ]
then
vers=`java -version 2>&1 | grep "java version" | awk '{print substr($3,2,length($3)-2);}'`
echo "<result>$vers</result>"
else
echo "<result>Not Installed</result>"
fi

 

Flash Version Installed

#!/bin/sh

result=`/usr/bin/defaults read /Library/Internet\ Plug-Ins/Flash\ Player.plugin/Contents/version CFBundleShortVersionString`

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

 

Battery Serial Number

#!/bin/sh
battery='ioreg -r -c "AppleSmartBattery" | grep "BatterySerialNumber" | awk '{print $3}' | sed s/\"//g'

echo "<result>$battery</result>"

 

Firewall Status (on or off)

result=`/usr/bin/defaults read /Library/Preferences/com.apple.alf globalstate`
if [ "$result" == "0" ]; then
  echo "<result>Off</result>"
else
  echo "<result>On</result>"
fi

 

List all users on the local machine

# Get a list of users, filter out service accounts
users=`dscl /Local/Default -list /Users uid | awk '$2 >= 100 && $0 !~ /^_/ { print $1 }'`

# Output for extension attribute
echo '<result>'$users'</result>' 

 

List all admin users on the local machine

admin=`dscl . -read /Groups/admin GroupMembership`

#Output for extension attribute
echo '<result>'$admin'</result>'