1

Я использую следующий 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 ответ1

2

Если вы можете пойти спать вместо того, чтобы завершить работу, для этого не потребуются права администратора или подтверждение от других зарегистрированных пользователей:

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 или ~/.bash_profile:

tmshut() { sudo -s -- 'tmutil startbackup -b && shutdown -h now'; }

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .