【问题标题】:Applescript - to do script with administrator privileges with display dialogApplescript - 使用显示对话框执行具有管理员权限的脚本
【发布时间】:2016-07-09 06:09:11
【问题描述】:

有没有办法像使用“do shell script”一样编写具有管理员权限的“to do script”?我有一个正在编写的脚本,它打开一个终端窗口并获取另一个用户帐户的大小,但我收到权限被拒绝错误。我可以通过在命令前输入 sudo 轻松解决此问题,但我不想在终端窗口中输入密码。我想得到一个对话框提示,这样我就可以输入密码,就像我使用“do shell script”时一样

这是我的脚本的一部分:

告诉应用程序“终端”

激活 执行脚本“sudo du -sh /Users/example”

说完

我知道你也可以这样解决:

使用管理员权限执行 shell 脚本“du -sh /Users/example”

但是这样做会打开一个终端窗口,但不会启动命令。

【问题讨论】:

    标签: shell terminal applescript sudo


    【解决方案1】:

    您完全可以在不涉及 Terminal.app 的情况下做到这一点

    set userSize to do shell script "du -sh /Users/example | awk '{print $1}'" with administrator privileges
    

    awk 命令从结果中去除大小部分。

    【讨论】:

    • 对话框非常感谢。我需要终端窗口来输出结果。我的目标是在 while 循环中监视文件夹大小。像这样:而:;做清楚; du -sh /用户/示例;睡觉 2;完成”所以我需要终端打开一个窗口并运行它。管理员权限可以吗?同样我不想在终端窗口中输入密码,所以我想避免在 du 命令之前输入 sudo。
    • 您也可以在没有 Terminal.app 的情况下在 AppleScript 中执行该控制流。输入管理员密码后,您将获得 5 分钟的访问权限。
    【解决方案2】:

    您的第二个选项是正确的,但它根本不应该与告诉“终端”块一起使用。

    使用下面的脚本(只有 2 行),终端将不会打开,唯一的窗口将是询问您的管理员密码的窗口。

    set UserSize to do shell script "du -sh /Users/test" with administrator privileges
    display dialog UserSize
    

    【讨论】:

      猜你喜欢
      • 2014-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-26
      • 1970-01-01
      相关资源
      最近更新 更多