Posted on 06-24-2014 02:19 AM
I was lurking in the "show of your self service" thread the other day and saw that user @rlandgraf had a policy that could show and hide hidden files. I thought this was genius and figured I'd create a similar policy by writing two scripts:
#!/bin/sh
defaults write com.apple.finder AppleShowAllFiles true
killall Finder
#!/bin/sh
defaults write com.apple.finder AppleShowAllFiles false
killall Finder
I dropped these into a /Library/Application Support/JAMF/Scripts and tried to call them with a command in self service. For some reason I can't get this to work and I've been at it for ... to long now, it's starting to get embarrassing. Maybe there's someone here that can figure out what I'm doing wrong. What it does is that it restarts the Finder but the files remain hidden but if I run the scripts through terminal they work just fine.
I've tried changing owner and permissions and I thought I got it to work by using #!/bin/bash instead of sh but that didn't work either.
Posted on 06-24-2014 02:27 AM
The command you wrote sets the key for "root" 'cause all scripts executed via Self Service are run as root.
Use this one to get your current logged in user:
USERNAME=$(ls -l /dev/console | cut -d " " -f 4)
USERHOME=$(dscl . read /Users/${USERNAME} NFSHomeDirectory | cut -d ' ' -f2)
then
defaults write ${USERHOME}/Library/Preferences/com.apple.finder AppleShowAllFiles -bool true
Posted on 06-24-2014 02:54 AM
I am doing this right now @entholzner][/url? Because I'm getting: "Result of command /L/AS/JAMF/Scripts/showhiddenfiles.sh: line 6: syntax error near unexpected token `then' /L/AS/JAMF/Scripts/showhiddenfiles.sh: line 6: `then'
#!/bin/bash
USERNAME=$(ls -l /dev/console | cut -d " " -f 4)
USERHOME=$(dscl . read /Users/${USERNAME} NFSHomeDirectory | cut -d ' ' -f2)
then
defaults write ${USERHOME}/Library/Preferences/com.apple.finder AppleShowAllFiles -bool true
killall Finder
Posted on 06-24-2014 03:40 AM
okay, step by step :)
I posted only the parts to change in the script. here's the full one:
#!/bin/bash
USERNAME=$(ls -l /dev/console | cut -d " " -f 4)
USERHOME=$(dscl . read /Users/${USERNAME} NFSHomeDirectory | cut -d ' ' -f2)
defaults write ${USERHOME}/Library/Preferences/com.apple.finder AppleShowAllFiles -bool true
killall Finder
exit 0
Just upload the script in the JSS and call it via policy. You don't have to call it locally.
Posted on 06-24-2014 08:03 AM
Thanks! :)
Hmm, it's still just restarting the Finder. Weird. :S
I'm calling it via a policy and it's set to after.
I've tried editing the script to but nope, it doesn't want to do what I want it to.
Posted on 06-24-2014 08:11 AM
You could also bypass Self Service and use a contextual item.
Posted on 06-25-2014 01:27 AM
Hi Matt, I'm not sure what you mean.. could you explain?