MAC OS - AppleScript - 如何让它显示一次用户名和密码对话框?

Cod*_*e K 1 macos shell applescript sudo

你好,

在我的AppleScript中,我正在运行以下代码,

do shell script "sudo networksetup -setproxybypassdomains Ethernet *.local, 169.254/16"
do shell script "sudo networksetup -setwebproxy Ethernet 127.0.0.1 8888"
do shell script "sudo networksetup -setsecurewebproxy Ethernet 127.0.0.1 8888"
Run Code Online (Sandbox Code Playgroud)

但是,它每次都要求输入密码.我的意思是当脚本打开时,它会为每行进程请求密码3次.为了防止要求密码,我必须在终端中键入以下内容,

sudo chmod u + s/usr/sbin/networksetup

当按下Enter键时,它会要求输入密码,输入并运行AppleScript后,它不会再要求输入密码(3次).

但是用户必须转到终端并键入以上命令.为了防止这种情况,我在AppleScript中使用了以下代码,

do shell script "sudo chmod u+s /usr/sbin/networksetup"
Run Code Online (Sandbox Code Playgroud)

因此用户运行AppleScript并自动设置.但是我收到以下错误消息,

在此输入图像描述

如何更改AppleScript,

do shell script "sudo chmod u+s /usr/sbin/networksetup"
Run Code Online (Sandbox Code Playgroud)

...要求输入一次密码,然后执行"... do shell script ..."部分的其余部分而不要求输入密码.或者添加密码以及上面的代码行以使其工作?

reg*_*633 5

你看过"do shell script"命令的定义了吗?你没有使用sudo与该命令.您可以使用"具有管理员权限",如果您愿意,可以提供"用户名"和"密码".

这样做...打开AppleScript编辑器.在"文件"菜单下,选择"打开字典".从对话框窗口中选择StandardAdditions.osax.在字典的搜索字段中搜索"do shell script"以查看可以使用该命令执行的所有操作.

例如,这是你如何使用它.祝好运.

do shell script "networksetup -setproxybypassdomains Ethernet *.local, 169.254/16" with administrator privileges
Run Code Online (Sandbox Code Playgroud)

  • +1,但是当您使用 - correct - 方法时,您选择的示例命令是不需要的命令(并且出于安全原因不应该使用). (2认同)