Posted on 08-30-2015 06:49 PM
Hey all, bit of a noob question but very new to the world of Casper Admin and scripting and need some expert advice.
One department I manage has created their own Screensaver which they would like deployed to their Mac's. I have packaged and successfully deployed the screensaver itself however I am stuck as to how to set it as the default screensaver. The screensaver is currently in: /Library/Screen Savers/custom.saver and it is showing as an option in the Screen Saver preference window which I can manually set but I would like to have it set as default without having to manually do it.
Any help would be greatly appreciated.
Posted on 08-31-2015 02:44 AM
The setting is stored in a ByHost preference file in the users home folder. You can create a custom config profile with mcxToProfile that looks like this:
<?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>PayloadContent</key>
<array>
<dict>
<key>PayloadContent</key>
<dict>
<key>com.apple.screensaver.ByHost</key>
<dict>
<key>Set-Once</key>
<array>
<dict>
<key>mcx_data_timestamp</key>
<date>2015-08-31T09:36:54Z</date>
<key>mcx_preference_settings</key>
<dict>
<key>CleanExit</key>
<string>YES</string>
<key>PrefsVersion</key>
<integer>100</integer>
<key>idleTime</key>
<integer>3600</integer>
<key>moduleDict</key>
<dict>
<key>moduleName</key>
<string>Flurry</string>
<key>path</key>
<string>/System/Library/Screen Savers/Flurry.saver</string>
<key>type</key>
<integer>0</integer>
</dict>
</dict>
</dict>
</array>
</dict>
</dict>
<key>PayloadEnabled</key>
<true/>
<key>PayloadIdentifier</key>
<string>MCXToProfile.bf8aab38-3404-4a85-8efe-858677b1c0f7.alacarte.customsettings.8dbf9eec-364d-4191-bb34-bd00f29e8c74</string>
<key>PayloadType</key>
<string>com.apple.ManagedClient.preferences</string>
<key>PayloadUUID</key>
<string>8dbf9eec-364d-4191-bb34-bd00f29e8c74</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</array>
<key>PayloadDescription</key>
<string>Included custom settings:
com.apple.screensaver.ByHost
</string>
<key>PayloadDisplayName</key>
<string>Default ScreenSaver: Flurry</string>
<key>PayloadIdentifier</key>
<string>ScreenSaver</string>
<key>PayloadOrganization</key>
<string></string>
<key>PayloadRemovalDisallowed</key>
<true/>
<key>PayloadScope</key>
<string>System</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>bf8aab38-3404-4a85-8efe-858677b1c0f7</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>
Save the file with the .mobileconfig extension and upload into the JSS.
Posted on 08-31-2015 12:21 PM
I never used this from Casper, just ARD, but it should be easy enough to adapt:
# set /System/Library/Screen Savers/Flurry.saver
# tested OK on 10.9.5 - no need killall cprefsd etc
if [[ `ioreg -rd1 -c IOPlatformExpertDevice | grep -i "UUID" | cut -c27-50` != "00000000-0000-1000-8000-" ]]; then
macUUID=`ioreg -rd1 -c IOPlatformExpertDevice | grep -i "UUID" | cut -c27-62`
fi
defaults write ~/Library/Preferences/ByHost/com.apple.screensaver.$macUUID.plist moduleDict -dict path -string "/System/Library/Screen Savers/Flurry.saver" moduleName -string "Flurry"