一般来说,各种设置的位置通常没有记录,但通常不太难找到。
其中一种方法是更改设置并观察哪个文件被修改。
fseventer 很适合这个任务,或者如果您安装了Xcode,可以使用Packagemaker(开始快照包,更改设置,然后停止录制并查看在快照中列出的哪些文件已更改),或只需运行
sudo fs_usage -ew
(并浏览其大量输出)。
一旦找到相关的文件,反复更改设置以查看它们如何更改。如果文件是.plists,则可以使用
defaults
在之前和之后进行转储并比较,或者使用
plutil -convert xml1
将它们从二进制转换为可读的XML格式,并通过肉眼比较。请注意,有时需要进行多次更改;例如,当禁用自动登录时,您确实应该从/Library/Preferences/com.apple.loginwindow.plist中删除autoLoginUser密钥,并且还要删除文件/etc/kcpassword。
另一种查找可配置设置的方法是利用苹果的基于服务器的首选项工具Workgroup Manager。您可以在非服务器上安装Apple的服务器管理工具,并在本地进行操作:
- 运行/Applications/Server/Workgroup Manager.app
- 当它要求连接到服务器时,选择Server > View Directories菜单选项
- 作为管理员进行身份验证(顶部右侧附近的挂锁按钮)
- 选择计算机帐户列表(位于靠近左上方的小标签行中的矩形图标)
- 创建一个虚拟计算机帐户(在工具栏中单击New Computer按钮)
- 切换到偏好管理部分(在工具栏中单击Preferences按钮)
- 将会有一堆可管理的偏好类别(您提到的大多数都将在登录部分),选择您感兴趣的内容
- 切换到详细信息选项卡,您将能够看到正在受控制的首选项域(基本上是.plist文件名)和首选项键。
您还可以获取应用程序的其他设置(超出“概述”选项卡中的设置) ,其中包括首选项清单:在“详细信息”下,单击“+”按钮,选择应用程序,然后打开相关的首选项域并尝试向各个部分添加键;如果该应用程序有清单,则单击首选项键名称将会弹出可用键的弹出菜单,选择一个键将自动填充值类型、默认值和它所做的描述。/System/Library/CoreServices/ManagedClient.app 的清单具有一些非常有趣的选项,请查看一下。
某些设置是每个用户的,这意味着如果您想将它们应用于现有帐户,您将不得不编写脚本以更改 /Users/*/Library/Preferences/
whatever,并且可能还要编辑用户模板(/System/Library/User Template/English.lproj/Library/Preferences/
whatever),以便随后创建的帐户将获得这些设置。此外,一些设置既是每个用户的
又是每台计算机的;这些设置存储在~/Library/Preferences/ByHost 中,文件名中带有计算机 ID(以太网 MAC 地址或硬件 UUID);使用
defaults -currentHost
来设置这些设置。
如果您要对一个文件进行大量更改(例如登录窗口偏好设置),则简单地复制一个预先调整过的设置文件而不是修改现有文件可能更容易。
有关更好的脚本创建帐户的方法,请参见
this serverfault question,或查看随
instadmg包含的createUser软件包脚本。
如果你需要部署很多相似的电脑,那么将它们制作成镜像可能比逐个设置更加值得考虑。可以查看
苹果公司的系统映像工具、
DeployStudio以及
afp548上的各种讨论和工具。还有一个
苹果培训班(声明偏见:我是这个班级的培训师之一,所以我认为
每个人都应该参加),或者你也可以单独购买
课程参考书。
编辑:我忘了提到systemsetup和networksetup命令——对于它们涵盖的设置,它们是最佳选择。
response="$(osascript -e 'tell application "System Events"' -e 'activate' -e 'display dialog "There are system updates that need to be installed on your computer; plaease log out for a while." buttons { "Cancel", "OK, I'"'"'ll log out" } giving up after (300)' -e 'end tell' 2>&1)"
- Gordon Davisson