osascript ist kein assistiver Zugriff erlaubt. (-1728)

15

Skript:

#!/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

Wie biete ich unterstützenden Zugriff auf dieses Skript? Wenn Sie dies über den "Skript-Editor" ausführen, muss lediglich der "Skript-Editor" unter "Barrierefreiheit" unter "Sicherheit und Datenschutz" aktiviert sein.

Aber ich muss diese (und einige andere ähnliche Skriptdateien) ausführen, um ohne Eingreifen des Benutzers ausgeführt zu werden. Ich habe versucht, die Datei in den Formaten .sh, .app, .scpt, .applescript zu speichern und ohne Glück über das Terminal als sudo auszuführen.

Ich habe andere Fragen wie diese und andere ohne Hilfe durchgesehen .

EDIT: Danke für die Antwort Jungs. Wir haben diese Methoden bereits ausprobiert und sie funktionieren ohne Zweifel, und hier liegt das Problem. Wir haben viel zu viele Mac-Maschinen, um sie manuell zu aktivieren. Wir hatten auf einen Befehl gehofft, der Terminal mit Erlaubnis des Benutzers (ähnlich wie UAC in Windows) oder wenn möglich stillschweigend zur Liste hinzufügt.

John Shepard
quelle

Antworten:

12

Wenn Sie AppleScript- Code über osascriptin Terminal ausführen , müssen Sie Terminal zu Systemeinstellungen > Sicherheit und Datenschutz > Datenschutz > Barrierefreiheit hinzufügen , um den unterstützenden Zugriff zu ermöglichen.


Ich habe Ihren Code genommen , in einer Datei mit dem Namen gespeicherttestcode und ihn mit ausführbar gemacht chmod. Ich habe es dann im Terminal ausgeführt und den folgenden Fehler erhalten:

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

Ich habe dann Terminal zu Systemeinstellungen > Sicherheit & Datenschutz > Datenschutz > Barrierefreiheit hinzugefügt und es erneut ausgeführt. Anschließend wurde das Skript ordnungsgemäß verarbeitet und zurückgegeben:

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

Es öffnete natürlich die Systemeinstellungen für dieses Ziel .

user3439894
quelle
In meinem Fall war der Anrufer Alfred 3. Es wurde nicht automatisch zur Liste hinzugefügt, also habe ich es einfach manuell zu Accessibility hinzugefügt und dann hat mein Skriptaufruf funktioniert.
Chris Redford
3
Ich habe den gleichen Fehler, obwohl ich Terminal in Sicherheit & Datenschutz habe
Kevin
5

Ich habe eine Fehlermeldung erhalten 636:751: execution error: System Events got an error: osascript is not allowed assistive access. (-1719), obwohl ich den osascriptBefehl von iTerm 2 ausgeführt habe, der in der Liste der Anwendungen unter "Systemeinstellungen> Sicherheit und Datenschutz> Datenschutz> Barrierefreiheit" aufgeführt ist.

Ich habe den Fehler nicht mehr erhalten, nachdem ich der /System/Library/CoreServices/Liste auch die Systemereignis-Anwendung (in ) hinzugefügt habe .

Nisetama
quelle
Überraschend, dass das funktioniert hat. Ich wünschte, ich wüsste warum. Ich habe zuerst alle anderen offensichtlichen Anwendungen hinzugefügt ... ohne Erfolg.
Del Brown
Du bist mein Lebensretter.
Alswl
1

Der entscheidende Punkt in der verknüpften Antwort ist :

Wenn Sie LaunchAgents zum ersten Mal laden oder ausführen, werden Sie aufgefordert, den assistiven Zugriff in den Systemeinstellungen festzulegen. Wenn Sie bereits Systemeinstellungen geöffnet haben, wird dies nicht der Fall sein, aber die Skripttextdatei wird der Liste hinzugefügt.

Sie müssen nur noch das Kontrollkästchen aktivieren, um dies zuzulassen.

Schritt 1 besteht darin, die Registerkarte Sicherheit zu öffnen und Ihrer Skript-App oder den einzelnen Skripten die Berechtigung zu geben, die Benutzeroberfläche zu automatisieren.

Geben Sie hier die Bildbeschreibung ein

Schritt 2 - Profitieren Sie und vermeiden Sie Fehler -1728

bmike
quelle
1
Leider funktioniert dies bei einem LaunchAgent nicht. Meine Protokolle zeigen dies an execution error: System Events got an error: osascript is not allowed assistive access. (-1719)und ich werde nicht von den Systemeinstellungen aufgefordert, den unterstützenden Zugriff zuzulassen. macOS 10.12.6
swrobel
Versuchen Sie, "Assistive Access" auch mit Osascript zu versehen - zumindest intern behandelt AppleScript "Osascript" NICHT einfach als Befehl, sondern als eigenen Prozess. . . . Fügen Sie folgenden Code in ScriptEditor ein :. . . 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'". . . und Sie sehen eine Liste von (leider nicht "delimetered") Prozessen mit "osascript" gegen Ende.
Clemsam Lang