繁体   English   中英

如何在Mac OS X 10.6下使用脚本自动执行新系统配置?

[英]How can I automate new system provisioning with scripts under Mac OS X 10.6?

我已经在这方面工作了好几天,但根本找不到正确的参考来使它工作。

我们的想法是制作一个脚本,用于为进入公司的新购买的Mac提供基本功能,例如将自动设置设置为关闭,创建新的管理员用户(用于远程管理员访问支持,设置密码以解锁屏幕保护程序等)。

管理员必须在每台新计算机上执行的基线示例列表:

  • 单击“登录选项”按钮“设置自动登录:关闭”
  • 检查:显示“重新启动”,“睡眠”和“关机”按钮
  • 取消选中:在登录窗口中显示输入菜单
  • 取消选中:显示密码提示
  • 取消选中:在登录窗口中使用语音
  • 检查:将快速用户切换菜单显示为短名称

    (注意:这只是每台机器上长列表的一部分)

我已经设法找到一些参考来使一些部分工作。 像自动登录一样可以解雇:

defaults write /Library/Preferences/.GlobalPreferences com.apple.userspref.DisableAutoLogin -bool TRUE

而且我有点找到了使用AppleScript和shell命令来锻炼新用户(包括提示)的方法。

但通常很难找到方法来做一些简单的事情,比如打开密码以退出屏幕保护程序或允许快速用户切换。 参考文件要么太有限,要么根本没有看到(例如我可以通过cli取消设置自动登录,但系统首选项“show restart,sleep和shutdown按钮”的下一个设置是在其他地方,我找不到任何命令行使它成立)

有没有人对列表,文档,引用或系统上每个设置所在的位置有任何想法,以便我可以指出它使它工作? 或者上面例子的示例脚本......

到目前为止,我对你的阅读表示感谢 - 非常感谢有关上述内容的任何人。

一般来说,各种设置的位置往往没有记录,但通常不太难以弄清楚。

一种方法是更改​​设置并查看要修改的文件。 fseventer对此有好处,或者如果您安装了Xcode,则可以使用Packagemaker(启动快照包,更改设置,然后停止录制并查看快照中列出的文件已更改),或者只运行sudo fs_usage -ew (并通过其丰富的输出进行排序)。

找到相关文件后,反复更改设置以查看它们的更改方式。 如果文件是.plists,您可以使用defaults在之前和之后转储它们并进行比较,或者使用plutil -convert xml1将它们从二进制转换为人类可读的XML格式,并通过眼睛进行比较。 请注意,有时会进行多次更改; 例如,当禁用自动登录时,您确实应该从/Library/Preferences/com.apple.loginwindow.plist中删除autoLoginUser密钥,并删除文件/ etc / kcpassword。

查找可配置设置的另一种方法是利用Apple的基于服务器的首选项工具Workgroup Manager。 您可以在非服务器上安装Apple的服务器管理工​​具,并在本地使用它:

  • 运行/ Applications / Server / Workgroup Manager.app
  • 当它要求连接到服务器时,请选择“服务器”>“查看目录”菜单选项
  • 作为管理员进行身份验证(右上角附近的挂锁按钮)
  • 选择计算机帐户列表(左上角附近的小标签行中的矩形图标)
  • 创建一个虚拟计算机帐户(工具栏中的“新计算机”按钮)
  • 切换到prefs管理部分(工具栏中的“首选项”按钮)
  • 会有一堆可管理的偏好(你提到的大多数都会出现在登录部分); 做出你感兴趣的任何选择
  • 切换到详细信息选项卡,您将能够看到正在控制的首选项域(实质上是.plist文件名)和首选项键。

您还可以为包含首选项清单的应用程序获取其他设置(超出“概述”选项卡中的设置):在“详细信息”下,单击“+”按钮,选择一个应用程序,然后打开相关的首选项域并尝试将键添加到各个部分; 如果应用程序有清单,单击首选项键名称将为您提供可用键的弹出菜单,选择一个将自动填充值类型,默认值以及它的作用说明。 /System/Library/CoreServices/ManagedClient.app的清单有一些非常有趣的选项; 看看这个。

一些设置是每个用户,这意味着,如果你想将它们应用到现有的帐户,你必须脚本更改/用户/ * /库/首选项/ 什么的 ,可能还需要编辑用户模板(/系统/库/用户模板/ English.lproj / Library / Preferences / whatever )因此随后创建的帐户将获得设置。 此外,一些设置是每用户每台计算机; 这些存储在〜/ Library / Preferences / ByHost中,文件名中包含计算机ID(以太网MAC地址或硬件UUID); 使用defaults -currentHost来设置它们。

如果您对一个文件(例如loginwindow prefs)进行了大量更改,则可能更容易简单地复制预先调整的设置文件而不是修改现有文件。

有关创建脚本帐户的更好方法,请参阅此serverfault问题和/或查看instadmg附带的createUser包脚本。

如果您正在部署许多类似的计算机,那么可能值得研究它们的成像,而不是单独设置它们。 看看苹果的系统映像实用工具DeployStudio ,以及各种讨论和工具在AFP548 还有一个关于部署Apple培训课程 (偏见声明:我是本课程的培训师之一,所以我认为每个人都应该参加),或者你可以单独购买课程参考书

编辑:我忘了提及systemsetupnetworksetup命令 - 对于它们所涵盖的设置,它们是最好的方法。

我不知道在哪里可以找到权威文档...也许在developer.apple.com或系统管理员认证学习指南之一。 但是我可以告诉你输入菜单和密码hin在域/Library/Preferences/com.apple.loginwindow ,键为showInputMenu (boolean - false或no key for off)和retriesUntilHint (整数,> = 1开启) ,0或不存在分别是关闭的。

你总是可以使用defaults domain列出所有可用的默认域,然后尝试defaults find <somestring>出你认为会有什么东西。或者你可以尝试defaults find <somestring>但有时设置是模糊的所以只是做一个怀疑的转储域名会更容易。 当然,如果要调整默认值,关键字甚至都不会出现...所以如果你必须使用这种方法......首先打开所有内容,这样就可以设置密钥。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM