Posted on 06-16-2015 02:06 AM
Hi All,
We have just implemented Casper a few days ago but we are struggling with the following.
A desktop background (bespoke one) has been set as part of an image and the "Desktop and Screen Saver" prefpane has been disabled so users cannot change it. However a new background can be set using right click "Set as Desktop Background" and we cannot find a way to stop this working.
Ideally we would like to either disable the right click option OR create a policy to reset the background pic to our bespoke one every day/week/restart.
Any ideas would be greatly appreciated
Solved! Go to Solution.
Posted on 06-16-2015 06:52 PM
Don't use a script (but thanks for referencing my work) -- it's too hard to enforce the desktop picture via a script.
Install a profile. Perhaps one like this:
https://github.com/gregneagle/profiles/blob/master/desktop_picture.mobileconfig
Posted on 06-16-2015 02:44 AM
I use a configuration profile to enforce the desktop background. Works well for us.
You can lock the desktop picture in the Restrictions option.
Posted on 06-16-2015 06:09 PM
I use script attached, run as launchAgent and set to run every 10 minutes - works great, the user can change the desktop but within ten minutes it will change back
#!/usr/bin/python
# Universal enforce wallpaper script for 10.9 and up
# Based on https://gist.github.com/gregneagle/6957826#file-gistfile1-py
from AppKit import NSWorkspace, NSScreen
from Foundation import NSURL
from platform import mac_ver
from subprocess import call
from os import system
from os import getlogin
import sqlite3
# Set path here for 10.9+
picture_path = "/usr/Management/Images/Desktop.jpg"
u = getlogin()
if ( u == '_atsserver') or ( u == 'root'):
print "Nothing to do as " + u
v, _, _ = mac_ver()
v = float('.'.join(v.split('.')[:2]))
desktop_db = '/Users/' + u + '/Library/Application Support/Dock/desktoppicture.db'
conn = sqlite3.connect(desktop_db)
conn.text_factory = str
c = conn.cursor()
def commit_changes():
#------------------------
conn.commit()
conn.close()
def get_current_wallpaper():
#------------------------
c.execute("SELECT * from data")
for row in c.fetchall():
return row[0]
commit_changes()
if (v == 10.9) or (v == 10.10):
print str(v) + " detected..."
current = get_current_wallpaper()
if (current != '/Library/Desktop Pictures/Custom.jpg'):
print 'Incorrect wallpaper detected. Changing...'
file_url = NSURL.fileURLWithPath_(picture_path)
options = {}
ws = NSWorkspace.sharedWorkspace()
for screen in NSScreen.screens():
(result, error) = ws.setDesktopImageURL_forScreen_options_error_(file_url, screen, options, None)
else:
print 'Wallpaper is correct.'
Posted on 06-16-2015 06:52 PM
Don't use a script (but thanks for referencing my work) -- it's too hard to enforce the desktop picture via a script.
Install a profile. Perhaps one like this:
https://github.com/gregneagle/profiles/blob/master/desktop_picture.mobileconfig
Posted on 06-16-2015 09:13 PM
@gregneagle yes I agree, much better answer.... just tested and works great!
Wish I knew more about how to create these from scratch...... Unfortunately we don't have casper yet and trying to wrestle with Profile Manager is a $%^&&*(
Posted on 06-16-2015 10:50 PM
Not sure how long you've got to wait before you can drop profile manager but Munki can install profiles and might be a more stable solution for you in the interim.
Posted on 04-25-2016 12:16 PM
Hello so this profile that is created can it be created without Casper as we only have it for our iPads and not the Macs.
Could i use apple configurator to create this profiles for the Mac, or does Casper have features than apple configurator to do this.
Thank you,
Dan Fernandez
IT Specialist of Educational Technology
iOS Expert - iOSGenius.com
Office: (708) 449-3165 x3588
Cell 1: (312) 877-8488
Posted on 04-25-2016 12:32 PM
So i created a profile in apple configurator and installed it only thing is i can still change the background, and it is listed under user profiles as wallpaper block
but in the details is listed as Restriction (iOS Only) same for settings
from the link you provided from github - https://github.com/gregneagle/profiles/blob/master/desktop_picture.mobileconfig
not sure what or how to create this profile to use on the mac or is this only for Casper or munki
Thank you,
Dan Fernandez
IT Specialist of Educational Technology
iOS Expert - iOSGenius.com
Office: (708) 449-3165 x3588
Cell 1: (312) 877-8488
Posted on 04-25-2016 01:11 PM
Hi @iOSGenius
If you copy the text from the GitHub link and save as a file with the .mobileconfig extension. Then you can upload it into Casper and deploy to the devices. You just have to change the key
<key>override-picture-path</key> <string>/Library/Desktop Pictures/Abstract.jpg</string>
to the path of your desktop picture.
Normally I would use a standard config profile in Casper in the restrictions payload which can also set the desktop background and keep it enforced.
Posted on 09-06-2016 06:31 AM
Hello
i am working with munki to deploy software and configurations. the .mobilconfig datei work great for some standard background but i dont find some place to put a custom background. i try with "installations --> items to copy" but is not working for some files in munki server tree. i am sure that can not to be so hard but i doit ever with a .dmg packet and run ok (IN this packet). Now in a .mobilconfig i am lost.
Please tell me: How to copy a "bg.jpg" with .mobileconfig with munki? Or better: How to copy some files with munki without another re-packet job?
Best Regards Carlos