具有可选管理员权限的Applescript

具有可选管理员权限的Applescript,applescript,Applescript,我需要在应用程序第一次运行步骤中运行一个脚本,以便从以前的版本中删除一些遗留组件。通常,这些组件安装在$HOME/Library或/Library中,脚本可以简单地将它们移动到垃圾箱中 问题是,如果用户不是管理员,并且组件在全局/库中,则脚本需要以管理员身份进行身份验证,否则将失败。我现在的脚本使用Apple脚本,但让我吃惊的是,我找不到在脚本中间变成管理员用户的方法。 有“do shell script'foo'with administrator privileges'命令,但它总是进行身份

我需要在应用程序第一次运行步骤中运行一个脚本,以便从以前的版本中删除一些遗留组件。通常,这些组件安装在$HOME/Library或/Library中,脚本可以简单地将它们移动到垃圾箱中

问题是,如果用户不是管理员,并且组件在全局/库中,则脚本需要以管理员身份进行身份验证,否则将失败。我现在的脚本使用Apple脚本,但让我吃惊的是,我找不到在脚本中间变成管理员用户的方法。

有“do shell script'foo'with administrator privileges'命令,但它总是进行身份验证,而且在AppleScript中比在shell中更容易表达我想要的步骤,尽管这并非不可能


目前,我面临着尝试在AppleScript中移动文件,捕捉到移动失败,然后使用身份验证shell脚本使用“mv”移动文件。这看起来很麻烦,那么我该怎么做才能使事情变得更整洁呢?

我想您可以使用sudo前缀作为命令的前缀,在您上次使用它后,它会有一分钟的重新身份验证。例如,mv/something/something将是sudo mv/something/something

我将使用“do shell脚本”编写它。首先,我会在没有管理员权限的情况下尝试,如果返回错误,我会在有管理员权限的情况下尝试。这样,如果不需要管理员凭据,则不会提示用户输入管理员凭据