
Ich konfiguriere also einige LaunchAgents für Standardbenutzervorlagen, um einen Standardbildschirmschoner für einige der beliebtesten Fan-Arts meiner Firma zu konfigurieren. (Das Team hat es wirklich gut angenommen.) Sie sind als Bilder konzipiert, die beim ersten Ausführen angezeigt werden, wenn sich Benutzer bei ihren erzwungenen lokalen Active Directory-Benutzern anmelden.
Allerdings erhalte ich jetzt sehr inkonsistente Ergebnisse... nämlich, dass es überhaupt nicht funktioniert.
Das .plist
startet ein Shell-Skript, das sich im Ordner /sbin/ befindet. Das Merkwürdige ist, dass es meistens bei einem bestehenden Benutzer funktioniert.
Der Bildschirmschoner ist dazu gedacht, „Flipup“ mit einem bestimmten Bilderordner zu verwenden, die Bilder zu mischen und eine Startzeit von 5 Minuten einzustellen.
Beispielsweise habe ich meinen „Standardkonfigurationsbenutzer“-Bildschirmschoner zuerst absichtlich auf „Holiday Mobile“ eingestellt, die Bildauswahl auf „Kosmos“ (eine der Standardeinstellungen) mit einer Startzeit von 20 Minuten festgelegt und „Bilder neu anordnen“ deaktiviert. Dann habe ich es auf „Arabesque“ geändert.
Als ich mich ab- und wieder anmeldete, um das Skript zu starten, bekam ich „Holiday Mobile“. Als ich jedoch zu „Desktop- und Bildschirmschonereinstellungen“ ging, war „Arabesque“ tatsächlich ausgewählt, obwohl die Vorschau von „Holiday Mobile“ mit ausgegrauten „Bildschirmschoneroptionen“ darunter angezeigt wurde. (Die Startzeit änderte sich jedoch auf 5 Minuten und als ich auf „Holiday Mobile“ klickte, war „Shuffle Slide Order“ richtig aktiviert.)
Im Testbenutzer geht es also zu Fan Art, aktiviert Shuffle und ändert die Zeit.
Wenn ich jedoch nach dem Hinzufügen des LaunchAgent .plist
zur Standardbenutzervorlage einen neuen Benutzer erstelle, wird nur der Standard-Bildschirmschoner „Computername“ auf schwarzem Hintergrund angezeigt.
Ich bin völlig verwirrt, warum das passiert. Irgendwelche Vorschläge?
Hier ist das Shell-Skript:
#!/bin/sh
## Set Screensaver to Photo Slideshow
/usr/bin/defaults -currentHost write com.apple.screensaver 'CleanExit' -string "YES"
/usr/bin/defaults -currentHost write com.apple.screensaver 'PrefsVersion' -int "100"
/usr/bin/defaults -currentHost write com.apple.screensaver 'idleTime' -int "300"
/usr/bin/defaults -currentHost write com.apple.screensaver "moduleDict" -dict-add "path" -string "/System/Library/Frameworks/ScreenSaver.framework/Resources/iLifeSlideshows.saver"
/usr/bin/defaults -currentHost write com.apple.screensaver "moduleDict" -dict-add "type" -int "0"
/usr/bin/defaults -currentHost write com.apple.screensaver 'ShowClock' -bool "false"
/usr/bin/defaults -currentHost write com.apple.screensaver 'tokenRemovalAction' -int "0"
## Set Type of Slideshow to "Flipup" (Results inconsistent)
/usr/bin/defaults -currentHost write com.apple.ScreenSaver.iLifeSlideshows 'styleKey' -string "Flipup"
## Set location of photos to Fan Art
/usr/bin/defaults -currentHost write com.apple.ScreenSaverPhotoChooser 'SelectedSource' -int "4"
/usr/bin/defaults -currentHost write com.apple.ScreenSaverPhotoChooser 'SelectedFolderPath' "/Manehattan Files/Manehattan Backgrounds/Fan Art"
/usr/bin/defaults -currentHost write com.apple.ScreenSaverPhotoChooser 'ShufflesPhotos' -bool "true"
## Removes the .plist LaunchAgent from inside the User Launch Agent Folder.
rm -f ~/Library/LaunchAgents/set-screensaver.plist
exit
Antwort1
Über JAMF zeigte mir ein sehr weiser Mann eine ganz einfache Sache, die ich am Ende meines Skripts hinzufügen musste:
killall cfprefsd
Das Problem wurde vollständig gelöst. Wenn Sie in die Systemeinstellungen gehen, wird immer noch der alte Bildschirmschoner angezeigt, aber er funktioniert.