Posted on 09-11-2018 08:42 AM
I have a script that will do the following: Create a local account based on admin pop-up box and rename the mac to this username-last4ofserial#. The account that is created is in LDAP format and is the user that I would assign in JAMF console in the user location field.
I have LDAP fully set up in JAMF pro how can I make an API call to grab the username from the user account or the computer name and update the user location fields in JAMF pro console?
Posted on 09-11-2018 08:46 AM
I don't think you need to do this via the API. A simple recon command should do it.
/usr/local/bin/jamf recon -endUsername $username
If you have more info than just the username, such as full name and some other details, those can be entered as well with their own flags. Run jamf help recon
in Terminal for more details.
Posted on 09-11-2018 08:50 AM
Ok so normally I enter the username in JAMF pro and hit search and it pulls the LDAP info like realname, email, position and etc. How do the other fields work?
Posted on 09-11-2018 08:57 AM
Nevermind this updates everything cool thanks.
Posted on 09-11-2018 08:59 AM
@kericson Take a look at the help page for the recon command. Almost all of those can be populated with the recon command, if you know what those are. If the username is coming from LDAP, like from AD, it should be simple enough to pull these values into variables by querying AD on the username, then using those variables to populate the values in the User and Location fields.
Posted on 12-22-2023 08:23 AM
#!/bin/bash
# Get the currently logged in user short name
CURRUSER=$( stat -f "%Su" /dev/console )
# Run the result through dscl locally
REALNAME=$( /usr/bin/dscl . -read /Users/${CURRUSER} dsAttrTypeStandard:RealName | sed 's/RealName://g' | tr '\n' ' ' | sed 's/^ *//;s/ *$//' )
EMAIL=$( /usr/bin/dscl . -read /Users/${CURRUSER} dsAttrTypeStandard:NetworkUser | sed 's/NetworkUser://g' | tr '\n' ' ' | sed 's/^ *//;s/ *$//' )
# Echo the result
if [ "(${CURRUSER})" == "_windowserver" ]; then
echo "No one logged in"
exit 1
else
echo "Sending email: ${EMAIL} to JSS"
echo "Sending endUsername: ${EMAIL} to JSS"
echo "Sending realname: ${REALNAME} to JSS"
sudo jamf recon -email "${EMAIL}" -endUsername "${EMAIL}" -realname "${REALNAME}"
fi
exit 0
Using the info above, I threw this together. We use JamfConnect with Azure to create the accounts; so, /usr/bin/dscl . -read /Users/$USERNAME pulls the info for us.