Answers:
首先,您可以查看列出了很多这些内容的网站:http://secrets.blacktree.com/
然而,我只是采取了一个强力解决方案:
复制Preferences文件夹
$ cp -r /Library/Preferences before
启动系统首选项。通过GUI进行更改。可能最好一次做一次更改,例如我将“显示登录窗口:”从“用户列表”更改为“名称和密码”。退出系统首选项。
再次复制Preferences文件夹:
$ cp -r /Library/Preferences after
查看更改的文件:
$ diff -ur before after
Binary files before/Preferences/com.apple.loginwindow.plist and after/Preferences/com.apple.loginwindow.plist differ
比较两个版本。由于它们是二进制文件,因此您需要将它们转换为XML以进行比较。我为此使用别名:
$ alias plist='plutil -convert xml1 -o /dev/stdout'
$ diff -u <(plist before/Preferences/com.apple.loginwindow.plist) <(plist after/Preferences/com.apple.loginwindow.plist)
--- /dev/fd/63 2013-01-23 18:20:29.000000000 +0200
+++ /dev/fd/62 2013-01-23 18:20:29.000000000 +0200
@@ -9,7 +9,7 @@
<key>RetriesUntilHint</key>
<integer>3</integer>
<key>SHOWFULLNAME</key>
- <false/>
+ <true/>
<key>lastUser</key>
<string>loggedIn</string>
<key>lastUserName</key>
此时我们找到了设置。确认我们有defaults
:
$ defaults read /Library/Preferences/com.apple.loginwindow SHOWFULLNAME
1
$ sudo defaults write /Library/Preferences/com.apple.loginwindow SHOWFULLNAME -bool false
$ defaults read /Library/Preferences/com.apple.loginwindow SHOWFULLNAME
0
启动系统偏好设置并确认已更改。
sudo opensnoop -n cfprefsd
显示正在访问的属性列表。您还可以按修改日期对首选项文件进行排序:ls -t {~,}/Library/Preferences/{ByHost,}
。
对于用户域中的首选项,您还可以运行defaults read > temp
,更改某些首选项以及运行diff temp <(defaults read)
。
opensnoop
只打印错误消息; 首先dtrace: system integrity protection is on, some features will not be available
,然后是一个消息列表dtrace: error on enabled probe ID 5 (ID 167: syscall::open:return): invalid user access in action #11 at DIF offset 2
; 第二部分似乎运作良好
您可以使用AppleScript控制许多“系统偏好设置”属性。有关示例,请参阅https://www.macosxautomation.com/applescript/features/system-prefs.html。
根据您的目的,您可以创建一个脚本来执行类似的操作
$ set-setting "dock preferences" "autohide:true, magnification:false"
如果在较新的macOS版本中更改了属性标签,请使用Script Editor.app运行和调试代码。