首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MAC AppleScript -如何使它显示用户名和密码对话框一次?

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

Stack Overflow用户
提问于 2014-05-09 00:16:08
回答 2查看 1.1K关注 0票数 1

你好,

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

代码语言:javascript
复制
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"

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

sudo chmod u+s /usr/sbin/networksetup

当按下Enter键时,它会询问密码,一旦输入并运行AppleScript,它就不再要求密码(3次)。

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

代码语言:javascript
复制
do shell script "sudo chmod u+s /usr/sbin/networksetup"

因此,用户运行AppleScript并自动设置。但我得到了以下错误信息

如何更改AppleScript,

代码语言:javascript
复制
do shell script "sudo chmod u+s /usr/sbin/networksetup"

...to要求它输入一次密码,然后执行其余的"...do外壳脚本.“不需要密码的部件。或者,在上面的代码行中添加密码以使其正常工作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-09 02:09:37

您看过"do shell脚本“命令的定义了吗?你不能对那个命令使用sudo。您可以使用“具有管理员权限”,如果愿意,可以提供“用户名”和“密码”。

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

例如,下面是如何使用它。祝好运。

代码语言:javascript
复制
do shell script "networksetup -setproxybypassdomains Ethernet *.local, 169.254/16" with administrator privileges
票数 5
EN

Stack Overflow用户

发布于 2014-05-09 00:58:36

您可以将密码作为参数传递给sudo。从手册页:

代码语言:javascript
复制
-S          The -S (stdin) option causes sudo to read the password from
                   the standard input instead of the terminal device.  The
                   password must be followed by a newline character.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23554751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档