Roteiro:
#!/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
Como faço para fornecer acesso assistencial a esse script? Ao executar isso no 'Editor de scripts', tudo o que precisa é que o 'Editor de scripts' seja ativado em 'Acessibilidade' em 'Segurança e privacidade'.
Mas preciso executar isso (e alguns outros arquivos de script semelhantes) para ser executado sem a intervenção do usuário. Tentei salvar o arquivo nos formatos .sh, .app, .scpt, .applescript e execute o terminal como sudo sem nenhuma sorte.
Já passei por outras perguntas como essa e outras sem nenhuma ajuda.
EDIT: Obrigado pela resposta pessoal. Já tentamos esses métodos e eles funcionam sem qualquer dúvida e é aí que está o problema. Temos muitas máquinas mac para ativá-las manualmente. Esperávamos algum comando que adicionasse o Terminal à lista com a permissão do usuário (como o UAC no Windows) ou, se possível, silenciosamente.
fonte
Ocorreu um erro como
636:751: execution error: System Events got an error: osascript is not allowed assistive access. (-1719)
se eu tivesse executado oosascript
comando do iTerm 2, que estava na lista de aplicativos em "Preferências do sistema> Segurança e privacidade> Privacidade> Acessibilidade".Parei de receber o erro depois de adicionar o aplicativo System Events (in
/System/Library/CoreServices/
) a essa lista.fonte
O ponto chave na resposta vinculada é :
A etapa 1 é abrir a guia de segurança e permitir que o aplicativo de script ou os scripts individuais tenham permissão para automatizar a interface.
Etapa 2 - lucre e evite o erro -1728
fonte
execution error: System Events got an error: osascript is not allowed assistive access. (-1719)
e eu não sou solicitado pelas Preferências do Sistema para permitir acesso assistencial. macOS 10.12.6tell 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'"
. . . e você verá uma lista de processos (infelizmente não "delimitados") com "osascript" no final.