在命令列/shell 腳本中自動配置螢幕保護程式

在命令列/shell 腳本中自動配置螢幕保護程式

因此,我正在配置一些預設使用者模板 LaunchAgents 來為我公司的一些最受歡迎的粉絲藝術配置預設螢幕保護程式。 (實際上,它受到了團隊的好評)。它們被設計為在登入強製本機 Active Directory 使用者時首次執行的映像。

然而,我現在得到的結果非常不一致......也就是說它根本不起作用。

啟動.plist位於 /sbin/ 資料夾中的 Shell 腳本。奇怪的是,它主要適用於現有用戶。

螢幕保護程式旨在對特定的圖像資料夾使用“Flipup”,隨機播放圖片並將開始時間設定為 5 分鐘。

例如,我故意將“預設配置使用者”螢幕保護程式首先設定為“Holiday Mobile”,將圖片選擇設為“Cosmos”(預設值之一),開始時間為20 分鐘,並取消選取“隨機播放影像” 。然後我把它改為「阿拉伯式花紋」。

當我登出並重新登入以啟動腳本時,結果是我得到“Holiday Mobile”。然而,當我進入“桌面和螢幕保護程式設定”時,實際上選擇了“阿拉伯式花紋”,儘管“假日移動”預覽顯示下方有灰色的“螢幕保護程式選項”。 (但是,開始時間確實更改為 5 分鐘,當我單擊“Holiday Mobile”時,“隨機播放幻燈片順序”已正確選中。)

因此,在測試用戶中,它會轉到粉絲藝術,啟動隨機播放並更改時間。

但是,當我將 LaunchAgent 新增.plist至預設使用者範本後建立新使用者時,除了黑色背景上的標準「電腦名稱」螢幕保護程式之外,我什麼也沒有得到。

我完全不明白為什麼會發生這種情況。有什麼建議麼?

這是 shell 腳本:

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

徹底解決了問題。雖然如果您進入系統偏好設置,它仍然顯示正在選擇舊的螢幕保護程序,但它可以工作。

相關內容