Posted on β03-29-2021 02:48 PM
I am having trouble with recording the LAPS for macOS passwords to the LAPS EA. Everything works and there is no error, yet the LAPS EA is blank every time. I can see the password if I look at log details so I know the rest of the process works pretty flawlessly. Here is the script I am using:
apiUser=""
apiPass=""
apiURL=$(/usr/bin/defaults read /Library/Preferences/com.jamfsoftware.jamf.plist jss_url | sed 's|/$||')
udid=$(/usr/sbin/system_profiler SPHardwareDataType | /usr/bin/awk '/Hardware UUID:/ { print $3 }')
extAttName=""LAPS""
LAPS_Password=$(curl -s -f -u $apiUser:$apiPass -H "Accept: application/xml" $apiURL/JSSResource/computers/udid/$udid/subset/extension_attributes | xpath -e "//extension_attribute[name=$extAttName]" 2>&1 | awk -F'<value>|</value>' '{print $2}' | tail -n +1)
echo $LAPS_Password
I hardcoded the api username and api password to the script.
Here are screenshots of the resulting log and the EA
Posted on β03-29-2021 03:47 PM
Hi @Cooley26
You need to return/echo the variable wrapped in result tags
echo "<result>$LAPS_Password</result>"
You may need/want to wrap the variable in curly-braces if spaces were present for expansion
echo "<result>${LAPS_Password}</result>"
This article can speak more to it for you...
Creating Extension Attributes Populated by a Custom Script
Posted on β03-29-2021 08:36 PM
@dkmansion THANK YOU!! Iβll try this in the morning! If it works I owe you bug time!!
Posted on β03-30-2021 05:09 AM
@dkmansion Hmmm... Still not working. Now I get this return in the logs:
Posted on β03-30-2021 12:42 PM
Huh. I do know that all our scripts grabbing any kind of value to insert into EAs we have the result as
echo "<result>$variable</result>"
Here's one of mine: just getting local machine /app info:
If you used the curly brace in my suggestion above, maybe remove that.
Also Ensure that the data type in the EA setting is appropriate for your use.. I hope this helps get you to a result.
Posted on β06-28-2022 04:52 PM
I've just gotten macOSLAPS running in our environment, so allow me to share my configuration if anyone's still running into issues:
Configuration Profile (note that I'm running in "Local" mode):
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>DaysTillExpiration</key>
<integer>30</integer>
<key>LocalAdminAccount</key>
<string>YOURACCOUNT</string>
<key>PasswordLength</key>
<integer>14</integer>
<key>RemovePassChars</key>
<string>{}[]|</string>
<key>Method</key>
<string>Local</string>
<key>FirstPass</key>
<string>YOURPASSWORD</string>
</dict>
</plist>
Extension Attribute (echoes password to Jamf for easy retrieval):
#!/bin/bash
#Resets macOSLAPS password
/usr/local/laps/macOSLAPS -resetPassword
#Writes macOSLAPS password to file
/usr/local/laps/macOSLAPS -getPassword
#Retrieves password
password=$(sudo cat /var/root/Library/Application\ Support/macOSLAPS-password | awk '{print $0}')
#Echoes result to Jamf MDM
echo "<result>$password</result>"