我正在使用以下 Applescript 运行 Time Machine 备份,然后关闭我们商店的计算机上的 OS X。
do shell script "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper"
repeat
delay 10
if not IsProcRunning("backupd-helper") then
ignoring application responses
tell application "loginwindow" to «event aevtshut»
end ignoring
exit repeat
end if
end repeat
on IsProcRunning(theProc)
try
do shell script "ps auxc | grep \"" & theProc & "\""
return true
on error
return false
end try
end IsProcRunning
它运行正常并且关闭计算机,除非另一个用户登录,然后Security Agent
会弹出窗口要求输入管理员用户名和密码。
我很好奇是否有人可以帮助我为该脚本添加检查窗口是否打开的功能Security Agent
,如果是,则在相关字段中输入用户名和密码?
答案1
如果您可以进入睡眠状态而不是关机,则不需要管理员权限或其他登录用户的确认:
do shell script "tmutil startbackup -b"
tell application "System Events" to sleep
您也可以使用shutdown
(它会正确弹出磁盘等等,但您可能会丢失一些未保存的更改):
do shell script "tmutil startbackup -b && shutdown -h now" with administrator privileges
~/.profile
可以添加到或的shell 函数~/.bash_profile
:
tmshut() { sudo -s -- 'tmutil startbackup -b && shutdown -h now'; }