osascript не допускается вспомогательный доступ. (-1728)


15

Автор сценария:

#!/usr/bin/osascript
tell application "System Preferences"
    activate
    set current pane to pane "com.apple.preferences.users"
    delay 2
    tell application "System Events"
        click radio button "Login Items" of tab group 1 of window "Users & Groups" of application process "System Preferences"
    end tell
end tell

Как мне предоставить вспомогательный доступ к этому сценарию? При запуске через «Редактор сценариев» все, что ему нужно, это «Редактор сценариев», который необходимо включить в разделе «Доступность» в «Безопасность и конфиденциальность».

Но мне нужно запустить этот (и некоторые другие подобные файлы скриптов), чтобы он выполнялся без вмешательства пользователя. Я попытался сохранить файл в форматах .sh, .app, .scpt, .applescript и запустить через терминал как sudo без какой-либо удачи.

Я прошел через другие вопросы, подобные этому и другим, без какой-либо помощи.

РЕДАКТИРОВАТЬ: Спасибо за ответ, ребята. Мы уже опробовали эти методы, и они работают без всяких сомнений, и в этом проблема. У нас слишком много компьютеров Mac, чтобы их можно было включить и включить на них вручную. Мы надеялись на какую-нибудь команду, которая добавит Терминал в список с разрешения пользователя (вроде как UAC в Windows) или, если возможно, без вывода сообщений.

Ответы:


12

Если запустить AppleScript код через osascriptв терминале , то вам необходимо добавить терминал в System Preferences > Безопасность и конфиденциальность > Конфиденциальность > Доступность , чтобы позволить ему ассистивная доступ.


Я взял ваш код , сохранил его в файл с именем testcodeи сделал его исполняемым с помощью chmod. Затем я запустил его в терминале и получил следующую ошибку:

./testcode:157:286: execution error: System Events got an error: osascript is not allowed assistive access. (-1728)

Затем я добавил Терминал в Системные настройки > Безопасность и конфиденциальность > Конфиденциальность > Доступность и снова запустил его. Затем он правильно обработал скрипт и вернул:

radio button Login Items of tab group 1 of window Users & Groups of application process System Preferences

Это, конечно, открыло Системные настройки для этой цели .


В моем случае вызывающим был Alfred 3. Он не добавлялся в список автоматически, поэтому я просто вручную добавил его в Accessibility, и тогда мой вызов сценария сработал.
Крис Редфорд

3
У меня такая же ошибка, хотя у меня есть терминал в Security & Privacy
Кевин

5

Я получил ошибку, как 636:751: execution error: System Events got an error: osascript is not allowed assistive access. (-1719)будто я запустил osascriptкоманду из iTerm 2, которая была в списке приложений в «Системные настройки> Безопасность и конфиденциальность> Конфиденциальность> Доступность».

Я перестал получать ошибку после того, как я добавил приложение System Events (in /System/Library/CoreServices/) в этот список.


Удивительно, что это сработало. Хотел бы я знать почему. Сначала я добавил все другие более очевидные приложения ... безрезультатно.
Дель Браун

Ты мой спасатель.
Alswl

1

Ключевой момент в связанном ответе является :

Когда вы впервые загрузите или запустите LaunchAgents, вы получите приглашение установить вспомогательный доступ в системных настройках. Если у вас уже открыты системные настройки, вы не сможете, но текстовый файл Script будет добавлен в список.

Теперь вам просто нужно установить флажок, чтобы разрешить его.

Шаг 1 - открыть вкладку безопасности и разрешить приложению сценариев или отдельным сценариям разрешать автоматизацию интерфейса.

введите описание изображения здесь

Шаг 2 - прибыль и избежание ошибки -1728


1
К сожалению, это на самом деле не работает для меня с LaunchAgent, мои журналы показывают, execution error: System Events got an error: osascript is not allowed assistive access. (-1719)и я не получаю подсказки Системных настроек, чтобы разрешить вспомогательный доступ. macOS 10.12.6
swrobel

Попробуйте также добавить osascript в «Вспомогательный доступ» - по крайней мере, внутри AppleScript рассматривает «osascript» НЕ как просто команду, а как собственный процесс. , , , Вставьте следующий код в ScriptEditor:. , , tell application "System Events" to do shell script "osascript -e 'tell application \"System Events\"\n display dialog (items of (name of (every process whose name contains \"sc\") as list) as string)\n end tell'", , , и вы увидите список (к сожалению, не «разделенных») процессов с «osascript» ближе к концу.
Clemsam Lang
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.