osascript tidak diizinkan mengakses bantuan. (-1728)

14

Naskah:

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

Bagaimana cara saya memberikan akses bantuan ke skrip ini? Saat menjalankan ini melalui 'Editor Skrip', yang dibutuhkan adalah 'Editor Skrip' untuk diaktifkan di bawah 'Aksesibilitas' di 'Keamanan & Privasi'.

Tapi saya perlu menjalankan ini (dan beberapa file skrip serupa lainnya) untuk dieksekusi tanpa campur tangan pengguna. Saya sudah mencoba menyimpan file dalam format .sh, .app, .scpt, .applescript dan dijalankan melalui terminal sebagai sudo tanpa hasil.

Saya telah melalui pertanyaan lain seperti ini dan lainnya tanpa bantuan.

EDIT: Terima kasih atas tanggapan kalian. Kami sudah mencoba metode ini dan mereka bekerja tanpa keraguan dan di situlah masalahnya. Kami memiliki terlalu banyak mesin mac untuk diputar dan diaktifkan secara manual. Kami berharap untuk beberapa perintah yang akan menambahkan Terminal ke daftar dengan izin pengguna (seperti UAC di Windows) atau jika mungkin diam-diam.

John Shepard
sumber

Jawaban:

10

Jika Anda menjalankan AppleScript kode melalui osascriptdi Terminal , maka Anda perlu menambahkan Terminal ke System Preferences > Keamanan & Privasi > Privasi > Accessibility , untuk memungkinkan akses bantu.


Saya mengambil kode Anda , menyimpannya ke file bernama testcodedan membuatnya dapat dieksekusi menggunakan chmod. Saya kemudian menjalankannya di Terminal dan menerima kesalahan berikut:

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

Saya kemudian menambahkan Terminal ke System Preferences > Keamanan & Privasi > Privasi > Aksesibilitas dan menjalankannya lagi. Kemudian diproses skrip dengan benar dan dikembalikan:

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

Tentu saja membuka System Preferences untuk target itu .

pengguna3439894
sumber
Dalam kasus saya, peneleponnya adalah Alfred 3. Itu tidak ditambahkan ke daftar secara otomatis jadi saya hanya secara manual menambahkannya ke Aksesibilitas dan kemudian panggilan skrip saya berfungsi.
Chris Redford
3
Saya memiliki kesalahan yang sama walaupun saya memiliki terminal di Keamanan & Privasi
Kevin
4

Saya mendapat kesalahan seperti 636:751: execution error: System Events got an error: osascript is not allowed assistive access. (-1719)meskipun saya menjalankan osascriptperintah dari iTerm 2 yang ada di daftar aplikasi di "System Preferences> Security & Privacy> Privacy> Accessibility".

Saya berhenti mendapatkan kesalahan setelah saya juga menambahkan aplikasi System Events (in /System/Library/CoreServices/) ke daftar itu.

nisetama
sumber
Mengejutkan bahwa ini berhasil. Seandainya saya tahu mengapa. Saya menambahkan semua aplikasi yang lebih jelas lainnya terlebih dahulu ... tidak berhasil.
Del Brown
Anda adalah penyelamat hidup saya.
alswl
1

The titik kunci dalam jawaban terkait adalah :

Saat Anda pertama kali memuat atau menjalankan LaunchAgents, Anda akan mendapatkan prompt untuk mengatur Akses Bantu dalam Preferensi Sistem. Jika Anda sudah memiliki preferensi Sistem terbuka, Anda tidak akan tetapi file teks Script akan ditambahkan ke daftar.

Anda sekarang hanya perlu mencentang kotak centangnya untuk mengizinkannya.

Langkah 1 adalah membuka tab keamanan dan mengizinkan aplikasi skrip Anda atau izin skrip individual untuk mengotomatiskan antarmuka.

masukkan deskripsi gambar di sini

Langkah 2 - untung dan hindari kesalahan -1728

bmike
sumber
1
Sayangnya ini tidak benar-benar bekerja untuk saya dengan LaunchAgent, log saya menunjukkan execution error: System Events got an error: osascript is not allowed assistive access. (-1719)dan saya tidak diminta oleh System Preferences untuk mengizinkan akses bantuan. macOS 10.12.6
swrobel
Coba tambahkan juga osascript ke "Assistive Access" - setidaknya secara internal, AppleScript memperlakukan "osascript" BUKAN hanya sebagai perintah tetapi sebagai proses sendiri. . . . Rekatkan kode berikut ke dalam 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'". . . dan Anda akan melihat daftar proses (sayangnya tidak "dibatasi") dengan "osascript" di akhir.
clemsam lang