l'accès Javascript n'est pas autorisé. (-1728)

15

Scénario:

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

Comment fournir un accès assisté à ce script? Lorsque vous exécutez cela via «Script Editor», tout ce dont il a besoin est «Script Editor» pour être activé sous «Accessibilité» dans «Sécurité et confidentialité».

Mais je dois exécuter cela (et certains autres fichiers de script similaires) pour être exécuté sans l'intervention de l'utilisateur. J'ai essayé d'enregistrer le fichier aux formats .sh, .app, .scpt, .applescript et d'exécuter via terminal en tant que sudo sans aucune chance.

J'ai parcouru d'autres questions comme celle-ci et d'autres sans aucune aide.

EDIT: Merci pour la réponse les gars. Nous avons déjà essayé ces méthodes et elles fonctionnent sans aucun doute et c'est là que réside le problème. Nous avons beaucoup trop de machines mac pour les contourner et les activer manuellement. Nous espérions une commande qui ajouterait Terminal à la liste avec la permission de l'utilisateur (un peu comme UAC dans Windows) ou si possible silencieusement.

John Shepard
la source

Réponses:

12

Si vous exécutez du code AppleScript via dans Terminal , vous devez ajouter Terminal aux Préférences Système > Sécurité et confidentialité > Confidentialité > Accessibilité , pour lui permettre un accès assisté.osascript


J'ai pris votre code , l' ai enregistré dans un fichier nommé testcodeet l' ai rendu exécutable à l'aide chmod. Je l'ai ensuite exécuté dans Terminal et j'ai reçu l'erreur suivante:

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

J'ai ensuite ajouté Terminal aux Préférences Système > Sécurité et confidentialité > Confidentialité > Accessibilité et l' ai exécuté à nouveau. Il a ensuite traité le script correctement et a renvoyé:

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

Il a bien sûr ouvert les Préférences Système à cette cible .

user3439894
la source
Dans mon cas, l'appelant était Alfred 3. Il n'était pas ajouté automatiquement à la liste, je l'ai donc ajouté manuellement à Accessibility, puis mon appel de script a fonctionné.
Chris Redford
3
J'ai la même erreur même si j'ai un terminal dans Security & Privacy
Kevin
5

J'ai eu une erreur comme 636:751: execution error: System Events got an error: osascript is not allowed assistive access. (-1719)même si j'ai exécuté la osascriptcommande d'iTerm 2 qui était sur la liste des applications dans "Préférences Système> Sécurité et confidentialité> Confidentialité> Accessibilité".

J'ai cessé de recevoir l'erreur après avoir également ajouté l'application Événements système (in /System/Library/CoreServices/) à cette liste.

nisetama
la source
Étonnant que cela ait fonctionné. J'aurais aimé savoir pourquoi. J'ai ajouté toutes les autres applications les plus évidentes en premier ... en vain.
Del Brown
Tu es ma bouée de sauvetage.
alswl
1

Le point clé de la réponse liée est :

Lorsque vous chargez ou exécutez LaunchAgents pour la première fois, vous obtenez une invite pour définir l'accès d'assistance dans les préférences système. Si vous avez déjà ouvert les préférences système, vous ne le ferez pas, mais le fichier texte du script sera ajouté à la liste.

Il ne vous reste plus qu'à cocher sa case pour l'autoriser.

L'étape 1 consiste à ouvrir l'onglet de sécurité et à autoriser votre application de script ou l'autorisation de scripts individuels à automatiser l'interface.

entrez la description de l'image ici

Étape 2 - Profiter et éviter l'erreur -1728

bmike
la source
1
Malheureusement, cela ne fonctionne pas pour moi avec un LaunchAgent, mes journaux s'affichent execution error: System Events got an error: osascript is not allowed assistive access. (-1719)et je ne suis pas invité par les Préférences Système à autoriser l'accès assisté. macOS 10.12.6
swrobel
Essayez d'ajouter également osascript à "Assistive Access" - au moins en interne, AppleScript traite "osascript" non pas simplement comme une commande mais comme un processus qui lui est propre. . . . Collez le code suivant dans 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'". . . et vous verrez une liste de processus (malheureusement pas "délimités") avec "osascript" vers la fin.
clemsam lang