I've had great sussecces with using dockutil for our network accounts. At our school we have a generic local account named students incase of network outage or other problems. I'm trying to modify the dock of this generic account so that the dock goes back to a set state at each login. I've read I should try and not use loginhooks anymore and instead use a launch agent events.
I've followed the suggestions here http://stackoverflow.com/questions/1370901/very-simple-launchd-plist-not-running-my-script
The script made can be run by the students account and without error
In the logs I get this odd error from launchd
(com.deltaschools.dockutil.app[2944]) Job failed to exec(3) for weird reason: 8
9/23/14 3:46:17.087 PM com.apple.launchd.peruser.600[807]:
9/23/14 3:46:18.116 PM com.apple.launchd.peruser.600[807]: (com.deltaschools.dockutil.plist) Job should be able to exec(3) now.
Here is my JSS script.
#!/bin/bash
THEUSER=students
#user name
SCPFOLDER=/Users/$THEUSER/Library/Scripts
#Dockutil config folder
OCFOLDER="/Users/$THEUSER/Library/LaunchAgents/"
mkdir -p "$SCPFOLDER";
mkdir -p "$OCFOLDER";
# make folders above
sudo chown -R $THEUSER "$SCPFOLDER";
#change to owner to current user
cat > "$SCPFOLDER/studentsdock.sh" <<EOF
/usr/bin/dockutil --remove all "/Users/students"
/usr/bin/dockutil --add "/Applications/Safari.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Firefox.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Google Chrome.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Microsoft Office 2011/Microsoft Word.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Microsoft Office 2011/Microsoft Excel.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Microsoft Office 2011/Microsoft PowerPoint.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Keynote.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Numbers.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Pages.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Calculator.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Calendar.app" "/Users/students"
/usr/bin/dockutil --add http://online3.typingmaster.com/login?id=pfn84kh57 --label "TypingMaster Online"
/usr/bin/dockutil --add https://cloud.deltaschools.com --label "DCSD Cloud Storage"
/usr/bin/dockutil --add /Applications --view list --sort name "/Users/students"
/usr/bin/dockutil --add /Users/students/Downloads --view list --sort name "/Users/students"
/usr/bin/dockutil --add /Users/students/Documents --view list --sort name "/Users/students"
EOF
# write script with dockutil settings
cat > "$OCFOLDER/com.deltaschools.dockutill.plist" <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.deltaschools.dockutil</string>
<key>Program</key>
<string>$SCPFOLDER/studentsdock.sh</string>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
EOF
# write plist to launch studentdock.sh script
chmod a+x "$SCPFOLDER/studentsdock.sh"
#make script run
launchctl load -wF "$OCFOLDER/com.deltaschools.dockutill.plist"
# add plist to launchctl
Files made from running script in casper remote com.deltaschools.dockutill.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.deltaschools.dockutil</string>
<key>Program</key>
<string>/Users/students/Library/Scripts/studentsdock.sh</string>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
studentsdock.sh
/usr/bin/dockutil --remove all "/Users/students"
/usr/bin/dockutil --add "/Applications/Safari.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Firefox.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Google Chrome.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Microsoft Office 2011/Microsoft Word.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Microsoft Office 2011/Microsoft Excel.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Microsoft Office 2011/Microsoft PowerPoint.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Keynote.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Numbers.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Pages.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Calculator.app" "/Users/students"
/usr/bin/dockutil --add "/Applications/Calendar.app" "/Users/students"
/usr/bin/dockutil --add http://online3.typingmaster.com/login?id=pfn84kh57 --label "TypingMaster Online"
/usr/bin/dockutil --add https://cloud.deltaschools.com --label "DCSD Cloud Storage"
/usr/bin/dockutil --add /Applications --view list --sort name "/Users/students"
/usr/bin/dockutil --add /Users/students/Downloads --view list --sort name "/Users/students"
/usr/bin/dockutil --add /Users/students/Documents --view list --sort name "/Users/students"