牛骨文教育服务平台(让学习变的简单)

Mac OS X: 在脚本里关闭Airport

      最初问题的由来是这样的,我这里为一个公司做他们公司的系统影像文件制定系统恢复策略,其中一个要求是,公司需要在Desktop上把Airport关掉,在笔记本上把Airport打开,而且不要让用户随便打开或者关闭Airport。这个在公司环境是有理由这样要求的,首先,同时使用有线和无线网,多占用DHCP分配的IP资源;而且对于目前本来就紧缺的无线连接来说,这些闲置的无线连接更是不能接受;还有就是如果可以随意使用无线连接,那么很可能连接到外面其它的网上,无意中造成安全遗患。

 

      这些要求,在苹果的GUI界面里面很好实现,使用下面两种方式,之一就可以轻松把Airport关闭(Turn Airport off),

 

      禁止普通用户变更Airport的选项在这里,本图是Mac OS X 10.5 Leopard里面的样子,在10.6 Snow Leopard里面多了一些更细致的选项,这里不多说:

 

 

      这些设置,对于小公司Mac机器不多的情况下,很好解决,如果是数百数千台,一台一台地设置,那管理员还不累死。聪明点的可能做两个image文件,分别对应不同的情况,不过今后的维护升级工作也会增加,还有就是类似的要求会很多,不可能每种情况的组合都做一个Image文件,所以使用程序设置才是正道。

 

      如果熟悉Mac命令的可能会说,使用networksetup就可以关闭Airport的电源=等同于Turn off,命令如下:

networksetup -setairportpower on | off

 

     可是问题是,它可以关闭,但是记不住状态,下次重新启动还会回复以前的状态。

 

      要想让系统记住状态,一定要把SystemConfiguration里面的preferences中的PowerEnabled设置成相应的值,而且把RequireAdmin设置为True. 见下图:

 

 

这里,省略了具体的脚本,朋友们自己可以书写。

 

*版权信息**: 本着开放交流的原则欢迎转载,除非明确声明"谢绝转载"等字样. *所有文章/图片/代码(除转载和翻译),版权均属文章作者**.
转载请遵守下面规则:
 1)保持文章的完整性; 2)不得以盈利为目的; 3)完整标注文章作者[Tony Liu@中国在线教育]和文章中标注的所有版权信息。
其它事宜,如:需要商业用途或以盈利为目的的、或者部分转载的等等,请与本作者联系: TonyLiu2CA@yahoo.com

 

进一步:

     引申的问题,其实这个问题应该可以有更好的方式解决,做成一个自适应系统,也就是,自动检测系统的网络状态,如果以太网连接成功,那么自动关闭Airport,否则系统自动打开Airport, 这样的解决方案就更加完美了。

 

      目前一个可行的方案是使用launchd的daemons, 在系统中自动运行脚本,检测en0状态,并结合上面的脚本来控制Airport的状态。具体脚本和文档这里也作省略处理。

 

Tony Liu

June 18, 2010