Skip to main content

I'm running this script from a policy in Jamf.

#!/bin/sh
defaults write com.apple.Dock contents-immutable -bool true; killall Dock

It does not do anything. However, if I run it locally from Terminal, works like a charm. Any thoughts? What I am doing wrong or forgetting?

You’re running it as the logged in user when you’re executing through the terminal. As a policy it’s running as root.


Thanks for the info @poormatt . What syntax can I use to run the above script as logged in user?


@pmckeehan Check out this article: scriptingosx.com: Running a Command as another User


Open one of the applications you want to always be in the dock, and right click on its dock icon. Toggle “Keep in Dock” to on in the Options menu.
Open Terminal OneVanilla Login
In the terminal window type: defaults write com.apple.dock contents-immutable -bool true. Then type: killall Dock.


When you run something through the terminal, you do so as the user who is currently logged in. It is operating as root by default.

 

Onevanilla