osascript不允许辅助访问。(-1728)


16

脚本:

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

如何为该脚本提供辅助访问?通过“脚本编辑器”运行此脚本时,所需要做的就是在“安全性和隐私”中的“辅助功能”下启用“脚本编辑器”。

但是我需要运行此文件(以及其他一些类似的脚本文件)以在没有用户干预的情况下执行。我试过将文件保存为.sh,.app,.scpt,.applescript格式,并以sudo的身份通过终端运行,没有任何运气。

我已经通过像其他的问题了这个没有任何帮助等。

编辑:感谢您的回应。我们已经尝试过这些方法,并且毫无疑问它们可以工作,这就是问题所在。我们拥有太多Mac机器,无法手动启用它们。我们希望有一些命令可以在用户许可的情况下将Terminal添加到列表(类似于Windows中的UAC),或者在可能的情况下将其添加到列表中。

Answers:


13

如果您通过在Terminal中运行AppleScript 代码,则需要将Terminal添加到System Preferences > Security&Privacy > Privacy > Accessibility中,以允许其辅助访问。osascript


我将您的代码保存到一个名为的文件中,testcode并使用使其可执行chmod。然后,我在终端中运行它并收到以下错误:

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

然后,将终端添加到“ 系统偏好设置” >“ 安全性和隐私” >“ 隐私” >“ 可访问性”,然后再次运行它。然后,它正确处理了脚本并返回:

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

当然,它为该目标打开了系统偏好设置。


就我而言,调用者是Alfred3。它不会自动添加到列表中,因此我只是将其手动添加到Accessibility中,然后我的脚本调用起作用了。
— 克里斯·雷德福德

3
即使我在“安全性和隐私权”中拥有终端机,我仍然
— 凯文

5

636:751: execution error: System Events got an error: osascript is not allowed assistive access. (-1719)即使我osascript从“系统偏好设置>安全和隐私>隐私>可访问性”中的应用程序列表中运行了iTerm 2中的命令,也遇到了类似的错误。

我还将System Events应用程序(在中/System/Library/CoreServices/)添加到该列表之后,我不再收到该错误。


令人惊讶的是,它起作用了。希望我知道为什么。我首先添加了所有其他更明显的应用程序……无济于事。
— 德尔布朗

你是我的救星。
— alswl

1

链接答案中的关键点是:

首次加载或运行LaunchAgents时,会提示您在“系统偏好设置”中设置“辅助访问”。如果您已经打开了系统偏好设置,则不会,但是脚本文本文件将被添加到列表中。

现在,您只需要选中其复选框即可。

步骤1是打开“安全性”选项卡,并允许您的脚本应用程序或单个脚本权限自动化界面。

在此处输入图片说明

步骤2-获利并避免错误-1728


1
不幸的是,这对我而言对LaunchAgent而言实际上不起作用,我的日志显示出来,execution error: System Events got an error: osascript is not allowed assistive access. (-1719)并且系统偏好设置未提示我允许辅助访问。macOS 10.12.6
— swrobel

尝试还加入osascript为“辅助访问” -至少在内部,AppleScript的对待“osascript” 不是简单地命令,但其自身的过程。。。。将以下代码粘贴到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'"。。。并且您将看到一个列表(严重的不是“分隔的”),其末尾带有“ osascript”。
— clemsam lang
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.