设为首页 收藏本站
查看: 1911|回复: 0

[经验分享] Mac OS X:远程执行osascript命令

[复制链接]

尚未签到

发表于 2016-5-15 13:20:41 | 显示全部楼层 |阅读模式
  


Mac OS X:远程执行osascript命令及问题解决



  
  对于系统管理/电脑维护人员,在Applr Remote Desktop的管理机上可以通过图形方式远程控制网络上的每台Mac电脑, 而很多时候需要发送Unix命令来完成工作。比如有时需要使用管理员帐户远程登录到每台电脑,大家普遍知道的命令是:
  
  

osascript
-e 'tell application "System Events"' -e 'keystroke "LOGIN_NAME"' -e
'keystroke tab' -e 'delay 0.5' -e 'keystroke "PASSWORDHERE"' -e 'delay
0.5' -e 'keystroke return' -e 'end tell'


  
  上面的命令可以让每一个处于登录状态的电脑自动登录到LOGIN_NAME用户。这样管理员就可以对每个电脑进行操作了.
  
  下面是更加清晰的一个脚本版本

osascript -e 'tell application "System Events" to keystroke "LOGIN_NAME"'; /

osascript -e 'tell application "System Events" to keystroke tab'; /
osascript -e 'tell application "System Events" to delay 0.5'; /
osascript -e 'tell application "System Events" to keystroke "PASSWORDHERE"'; /
osascript -e 'tell application "System Events" to delay 0.5'; /



osascript -e 'tell application "System Events" to keystroke return'


  
  然而实际使用中会问题:
  1. 远程计算机根本不执行上面的操作:
  这个问题一般是由于被管理的电脑没有设置为准许执行UI脚本,所以要打开它。可以通过两种方式:

A. 首先以管理员身份登录到该电脑,然后进入"System Preferences -> Universal Access",开启在下部的选项 "Enable access for assistive devices"


  
B. 这个方法更简单,而且可以远程发送(Unix命令)到目标电脑:

echo a > /var/db/.AccessibilityAPIEnabled


  
2. 那个脚本只有在目标电脑处于登录窗口的时候才可以使用. 所以,需要首先启动目标电脑,这可以通过好多方法启动目标机. 比如可以使用ARD菜单中的Restart命令,也可以通过发送下面的任何一个命令

osascript -e 'tell app "Finder" to restart'





shutdown -r TIME "This computer is going to restart."



  其中TIME可以是now, 或者是时间比如: 10:00am等等

3. 还要注意的是如果登录不是输入用户名的方式,是用户列表的方式,那么上面的方式都不可用,需要修改为列表方式并禁止自动登录:


  
4. 可以发送下面命令来使当前用户退出到登录状态:


osascript -e 'tell app "Finder" to exit'



  
  或者使用ARD的菜单命令来使用户退出登录.
  
  5. 如果是目标机设置了定时睡眠,可以使用Wake命令唤醒目标机, 要求是目标机设置允许远程唤醒:
  



附录:
  
下面的一些osascript命令比较有用:


sudo osascript -e 'tell app "[name of an open program]" to quit'
sudo osascript -e 'tell app "Finder" to sleep'
sudo osascript -e 'tell app "Finder" to shut down'
sudo osascript -e "set volume 0"
sudo osascript -e "beep"
sudo osascript -e 'display dialog "Did you know that you are annoying?"
  buttons "Yes" with icon note'
sudo osascript -e 'tell app "Finder" to quit'
sudo osascript -e 'say "[whatever]" using "Zarvox"'
iTunes Control:
sudo open /Applications/iTunes.app; sudo osascript -e 'say "Play some music.
  Go on.  I dare you." using "Zarvox"'
sudo osascript -e 'tell app "iTunes" to stop' -e 'say "Please stop playing
  your annoying music" using "Zarvox"'
sudo osascript -e 'tell app "iTunes" to next track' -e 'say "I did not like
  that song very much" using "Zarvox"'
sudo osascript -e 'tell app "iTunes" to fast forward' -e 'say "This song is
  boring" using "Zarvox"'
sudo osascript -e 'tell app "iTunes" to quit'



  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-217327-1-1.html 上篇帖子: Mac OS X: Launchd in Depth 下篇帖子: Installing Seagull in Mac OS X
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表