Автоматизована конфігурація заставки в сценарії командного рядка / оболонки


1

Тож я налаштовую деякі шаблони користувальницьких шаблонів LaunchAgents для налаштування заставки за замовчуванням для деяких із найпопулярніших фан-артів моєї компанії. (Це насправді було добре сприйнято командою). Вони розроблені як перші запущені зображення, коли вони входять у своїх примусово-локальних користувачів Active Directory.

Однак я зараз отримую дуже непослідовні результати ... а саме це зовсім не працює.

.Plist запускає скрипт оболонки, розташований у папці / sbin /. Дивна річ у тому, що вона здебільшого працює у існуючого користувача.

Заставка призначена для використання "Flipup" із певною папкою зображень, переміщенням зображень та зміщенням часу початку 5 хвилин.

Наприклад, я навмисно встановив свою заставку "Користувач конфігурації за замовчуванням" спочатку на "Holiday Mobile", встановив для вибору зображення "Cosmos" (один із значень за замовчуванням) з початковим часом 20 хвилин і невірно встановленим "переміщенням зображень". Потім я змінив його на "Арабеск".

Коли я вийшов із системи та знову увійшов, щоб запустити сценарій, у результаті я отримав "Holiday Mobile". Однак, коли я перейшов до "Налаштування робочого столу та заставки", "Arabesque" був фактично вибраний, хоча попередній перегляд "Holiday Mobile" відображався із сірим "Параметри заставки" внизу. (Однак час початку змінився на 5 хвилин, і коли я натиснув "Holiday Mobile", "Замовлення слайдів-перемикачів" було перевірено належним чином.)

Тож у тестового користувача переходить у Fan Art, активуючи Shuffle та змінюючи час.

Але коли я створюю нового користувача після додавання LaunchAgent .plist до шаблону користувача за замовчуванням, я не отримую нічого, крім стандартної заставки «Ім'я комп’ютера» на чорному тлі.

Я повністю розгублений, чому це відбувається. Будь-які пропозиції?

Ось сценарій оболонки:

`` `

#!/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

`` `

Відповіді:


1

Тож через JAMF дуже мудра людина показала мені дуже просту річ, яку мені потрібно було додати до кінця мого сценарію:

killall cfprefsd

Вирішили проблему цілком. Якщо ви перейдете до системних налаштувань, він все ще показує вибрану стару заставку, вона працює.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.