Skip to main content
Question

User detection script for Code42 using the Jamf API


Forum|alt.badge.img+5

I wrote up this script that you can drop into your Code42 deployment to grab the email address of your users using the JAMF API and if the email doesn't exist in JAMF the installer will prompt the user to enter their email before continuing. Hope it's useful for someone else.

jssUser="api_user"
jssPass="api_user_pass"
jssUrl="https://jss_url:8443"
username=$(/bin/ls -l /dev/console | /usr/bin/awk '{ print $3 }')
user_email=$(curl -X GET -sku $jssUser:$jssPass -H "Accept: application/xml" $jssUrl/JSSResource/users/name/$username | xpath /user/email_address 2>/dev/null | sed -e 's/<email_address>//' | sed -e 's/</email_address>//')

ask () {
        osascript <<EOF - 2>/dev/null
        tell application "SystemUIServer"
        activate
        text returned of (display dialog "$1" default answer "")
        end tell
EOF
}

if [ -z "$user_email" ]; then
    name=$(ask 'CODE42 BACKUP - Your email address could not be found, please fill it in to continue: ')
    echo "C42_USERNAME=$name"
    echo "C42_USER_HOME=$(dscl . -read "/users/$username" NFSHomeDirectory | cut -d ' ' -f 2)"
else
    echo "C42_USERNAME=${user_email}"
    echo "C42_USER_HOME=$(dscl . -read "/users/$username" NFSHomeDirectory | cut -d ' ' -f 2)"
fi

3 replies

Forum|alt.badge.img+6
  • Contributor
  • 17 replies
  • August 28, 2018

Thank you so much! You don't understand how long I've been looking for something solid that works. I've tested this out and made the appropriate edit's to match my organizations JSS. Works like a charm.


Forum|alt.badge.img+9
  • Contributor
  • 38 replies
  • October 31, 2018

Thank you Daikonran, this is what we are look for as well since we are not binding our Macs to AD. Would this work if we are just pulling the username off JSS api instead of the whole email address?


Forum|alt.badge.img+5
  • Author
  • New Contributor
  • 9 replies
  • November 14, 2018

Hi Jchen,

Yeh this would work for that too. There are easier ways to just get the username of the machine without quering from jamf, as you start off getting the JAMF username in order to get the email address.

Just the below line is one example of grabbing the logged in username. Much easier than using this whole script.

/bin/ls -l /dev/console | /usr/bin/awk '{ print $3 }'

Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings