osascript không được phép truy cập hỗ trợ. (-1728)


15

Kịch bản:

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

Làm cách nào để cung cấp quyền truy cập hỗ trợ cho tập lệnh này? Khi chạy phần này thông qua 'Trình chỉnh sửa tập lệnh', tất cả những gì nó cần là 'Trình chỉnh sửa tập lệnh' được bật trong 'Trợ năng' trong 'Bảo mật & quyền riêng tư'.

Nhưng tôi cần chạy cái này (và một số tệp script tương tự khác) để được thực thi mà không cần sự can thiệp của người dùng. Tôi đã thử lưu tệp ở các định dạng .sh, .app, .scpt, .applescript và chạy qua thiết bị đầu cuối dưới dạng sudo mà không gặp may mắn.

Tôi đã trải qua các câu hỏi khác như thế này và khác mà không có sự giúp đỡ.

EDIT: Cảm ơn các bạn đã phản hồi. Chúng tôi đã thử các phương pháp này và chúng hoạt động mà không có nghi ngờ gì và đó là vấn đề nằm ở đâu. Chúng tôi đã có quá nhiều máy mac để đi xung quanh và kích hoạt chúng bằng tay. Chúng tôi đã hy vọng một số lệnh sẽ thêm Terminal vào danh sách với sự cho phép của người dùng (giống như UAC trong Windows) hoặc nếu có thể âm thầm.

Câu trả lời:


12

Nếu bạn chạy AppleScript đang qua osascripttại nhà ga , sau đó bạn cần phải thêm ga để System Preferences > An ninh & Bảo mật > Privacy > Khả năng tiếp cận , để cho phép nó truy cập hỗ trợ.


Tôi lấy của bạn , lưu nó vào một tệp có tên testcodevà làm cho nó có thể thực thi được bằng cách sử dụng chmod. Sau đó tôi đã chạy nó trong Terminal và nhận được lỗi sau:

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

Sau đó tôi đã thêm Terminal vào System Preferences > Security & Privacy > Privacy > Access và chạy lại nó. Sau đó, nó xử lý tập lệnh đúng cách và trả về:

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

Tất nhiên nó đã mở System Preferences cho mục tiêu đó .


Trong trường hợp của tôi, người gọi là Alfred 3. Nó không được thêm vào danh sách một cách tự động nên tôi chỉ cần thêm nó vào Trợ năng và sau đó cuộc gọi kịch bản của tôi đã hoạt động.
Chris Redford

3
Tôi có cùng một lỗi ngay cả khi tôi có thiết bị đầu cuối trong Bảo mật & Quyền riêng tư
Kevin

5

Tôi đã gặp một lỗi như 636:751: execution error: System Events got an error: osascript is not allowed assistive access. (-1719)mặc dù tôi đã chạy osascriptlệnh từ iTerm 2 nằm trong danh sách các ứng dụng trong "Tùy chọn hệ thống> Bảo mật & quyền riêng tư> Quyền riêng tư> Trợ năng".

Tôi đã ngừng nhận lỗi sau khi tôi cũng thêm ứng dụng Sự kiện hệ thống (trong /System/Library/CoreServices/) vào danh sách đó.


Đáng ngạc nhiên là điều này đã làm việc. Ước gì tôi biết tại sao. Tôi đã thêm tất cả các ứng dụng rõ ràng khác trước tiên ... không có kết quả.
Del Brown

Bạn là người cứu rỗi tôi.
alswl

1

Điểm chính trong câu trả lời được liên kết là :

Khi bạn tải lần đầu hoặc chạy LaunchAgents, bạn sẽ nhận được lời nhắc đặt Quyền truy cập hỗ trợ trong Tùy chọn hệ thống. Nếu bạn đã mở Tùy chọn hệ thống, bạn sẽ không nhưng tệp văn bản Script sẽ được thêm vào danh sách.

Bây giờ bạn chỉ cần kiểm tra hộp kiểm của nó để cho phép nó.

Bước 1 là mở tab bảo mật và cho phép ứng dụng tập lệnh của bạn hoặc quyền tập lệnh riêng lẻ tự động hóa giao diện.

nhập mô tả hình ảnh ở đây

Bước 2 - lợi nhuận và tránh lỗi -1728


1
Thật không may, điều này thực sự không hiệu quả với tôi với LaunchAgent, nhật ký của tôi hiển thị execution error: System Events got an error: osascript is not allowed assistive access. (-1719)và tôi không được nhắc bởi System Preferences để cho phép truy cập hỗ trợ. macOS 10.12.6
swrobel

Hãy thử thêm osascript vào "Truy cập hỗ trợ" - ít nhất là trong nội bộ, AppleScript coi "osascript" KHÔNG chỉ đơn giản là một lệnh mà là một quá trình của riêng nó. . . . Dán đoạn mã sau vào 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'". . . và bạn sẽ thấy một danh sách các quy trình (đáng buồn là không được "phân định") với "osascript" cho đến cuối.
clemsam lang
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.