26 votos

osascript no tiene permitido el acceso asistido. (-1728)

Script:

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

¿Cómo puedo proporcionar acceso asistido a este script? Cuando se ejecuta esto a través de script Editor, todo lo que necesita es que script Editor esté habilitado en "Accesibilidad" en "Seguridad y Privacidad".

Pero necesito que este (y algunos otros archivos script similares) se ejecuten sin la intervención del usuario. He intentado guardar el archivo en formatos .sh, .app, .scpt, .applescript y ejecutarlo a través de la terminal como sudo sin suerte.

He pasado por otras preguntas como este y otros sin ayuda.

EDITAR: Gracias por la respuesta chicos. Ya hemos probado estos métodos y funcionan sin ninguna duda y ahí está el problema. Tenemos demasiadas máquinas mac para ir a habilitarlas manualmente. Esperábamos algún comando que añadiera Terminal a la lista con el permiso del usuario (algo así como el UAC en Windows) o si es posible de forma silenciosa.

20voto

user3439894 Puntos 5883

Si se ejecuta AppleScript código a través de osascript en Terminal entonces hay que añadir Terminal a Preferencias del sistema > Seguridad y privacidad > Privacidad > Accesibilidad para permitirle el acceso asistencial.


Tomé su código , lo guardó en un archivo llamado testcode y lo hizo ejecutable usando chmod . Luego lo ejecuté en Terminal y recibí el siguiente error:

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

A continuación, añadí Terminal a Preferencias del sistema > Seguridad y privacidad > Privacidad > Accesibilidad y lo he vuelto a ejecutar. A continuación, procesó el script correctamente y devuelto:

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

Por supuesto, abrió la Preferencias del sistema a eso objetivo .

0 votos

En mi caso, el llamador era Alfred 3. No se añadía a la lista automáticamente, así que lo añadí manualmente a Accesibilidad y entonces mi llamada script funcionó.

6 votos

Tengo el mismo error aunque tengo el terminal en Seguridad y Privacidad

8voto

Matt B Puntos 41

Tengo un error como 636:751: execution error: System Events got an error: osascript is not allowed assistive access. (-1719) a pesar de que he ejecutado el osascript de iTerm 2 que estaba en la lista de aplicaciones en "Preferencias del Sistema > Seguridad y Privacidad > Privacidad > Accesibilidad".

Dejé de obtener el error después de añadir también la aplicación System Events (en /System/Library/CoreServices/ ) a esa lista.

0 votos

Es sorprendente que esto haya funcionado. Ojalá supiera por qué. Añadí todas las otras aplicaciones más obvias primero... en vano.

0 votos

Eres mi salvavidas.

1voto

Oskar Puntos 1242

El El punto clave de la respuesta vinculada es :

Cuando cargue o ejecute por primera vez los LaunchAgents, se le pedirá que configure el Acceso Asistencial en las Preferencias del Sistema. Si ya tiene abiertas las Preferencias del Sistema no lo hará, pero el archivo de texto script se añadirá a la lista.

Ahora sólo tienes que marcar su casilla para permitirlo.

El paso 1 es abrir la pestaña de seguridad y permitir a tu aplicación script o al individuo script el permiso para automatizar la interfaz.

enter image description here

Paso 2 - beneficio y evitar el error -1728

1 votos

Lamentablemente esto no me funciona con un LaunchAgent, mis registros muestran execution error: System Events got an error: osascript is not allowed assistive access. (-1719) y no se me pide en las Preferencias del Sistema que permita el acceso asistido. MacOS 10.12.6

0 votos

Intente añadir también osascript a "Assistive Access" - al menos internamente, AppleScript trata "osascript" NO como una simple orden, sino como un proceso propio. . . . Pegue el siguiente código en 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'" . . y verás una lista de procesos (lamentablemente no "delimitados") con "osascript" hacia su final.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X