Mac OS X:遠(yuǎn)程執(zhí)行osascript命令及問題解決
對于系統(tǒng)管理/電腦維護(hù)人員,在Applr Remote Desktop的管理機(jī)上可以通過圖形方式遠(yuǎn)程控制網(wǎng)絡(luò)上的每臺Mac電腦, 而很多時候需要發(fā)送Unix命令來完成工作。比如有時需要使用管理員帳戶遠(yuǎn)程登錄到每臺電腦,大家普遍知道的命令是:
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' |
上面的命令可以讓每一個處于登錄狀態(tài)的電腦自動登錄到LOGIN_NAME用戶。這樣管理員就可以對每個電腦進(jìn)行操作了.
下面是更加清晰的一個腳本版本
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. 遠(yuǎn)程計算機(jī)根本不執(zhí)行上面的操作:
這個問題一般是由于被管理的電腦沒有設(shè)置為準(zhǔn)許執(zhí)行UI腳本,所以要打開它。可以通過兩種方式:
A. 首先以管理員身份登錄到該電腦,然后進(jìn)入"System Preferences -> Universal Access",開啟在下部的選項 "Enable access for assistive devices"
B. 這個方法更簡單,而且可以遠(yuǎn)程發(fā)送(Unix命令)到目標(biāo)電腦:
echo a > /var/db/.AccessibilityAPIEnabled |
2. 那個腳本只有在目標(biāo)電腦處于登錄窗口的時候才可以使用. 所以,需要首先啟動目標(biāo)電腦,這可以通過好多方法啟動目標(biāo)機(jī). 比如可以使用ARD菜單中的Restart命令,也可以通過發(fā)送下面的任何一個命令
osascript -e 'tell app "Finder" to restart'
|
shutdown -r TIME "This computer is going to restart."
|
其中TIME可以是now, 或者是時間比如: 10:00am等等
3. 還要注意的是如果登錄不是輸入用戶名的方式,是用戶列表的方式,那么上面的方式都不可用,需要修改為列表方式并禁止自動登錄:
4. 可以發(fā)送下面命令來使當(dāng)前用戶退出到登錄狀態(tài):
osascript -e 'tell app "Finder" to exit'
|
或者使用ARD的菜單命令來使用戶退出登錄.
5. 如果是目標(biāo)機(jī)設(shè)置了定時睡眠,可以使用Wake命令喚醒目標(biāo)機(jī), 要求是目標(biāo)機(jī)設(shè)置允許遠(yuǎn)程喚醒:
附錄:
下面的一些osascript命令比較有用:
|
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
