macos - 在 OS X 上以管理员权限运行脚本

标签 macos scripting applescript dscl

我已经尽力在 Stack Overflow 和互联网上找到许多脚本问题的解决方案,但我似乎找不到我需要的解决方案。

我想做的是创建一个更自动化且点击次数更少的解决方案,以删除系统上所有移动缓存的用户帐户。我一直在登录并手动进入用户帐户并通过单击“-”按钮一次删除一个用户,然后单击“立即删除”以获取用户数据。这行得通,但很耗时,而且我有更好的事情要做。所以我知道必须有一种方法可以用脚本来做到这一点。

我遇到了这段代码:

for cuser in `dscl . -list /Users AuthenticationAuthority | grep LocalCachedUser | awk '{print $1}' | tr '/n' ' '`; do
    dscl . -delete /Users/$cuser
done

如果我在终端中运行它,我会收到权限错误。所以我想我需要用 sudo 运行它。所以我开始研究创建 AppleScripts 来运行脚本,但我似乎找不到正确的方法。

有什么想法吗?顺便说一句,我是在 Mac 上编写脚本的新手,所以请评论你的代码以便我知道发生了什么,所以我不会在不知道它会做什么的情况下运行一些脚本代码。 :)

谢谢

最佳答案

要使用 sudo 或管理员权限执行 shell 脚本,请将 with administrator permissions 附加到 do shell script 行的末尾。例如:

do shell script "/path/to/script/file.sh" user name "adminusershortname" password "password" with administrator privileges

您可以在 Apple 处理 do shell script 的技术说明中找到更多信息

也就是说,将其保存为 shell 脚本并使用 sudo 运行 shell 脚本也可以。

#! /bin/sh

for cuser in `/usr/bin/dscl . -list /Users AuthenticationAuthority | grep LocalCachedUser | awk '{print $1}' | tr '/n' ' '`; do
    /usr/bin/dscl . -delete /Users/$cuser
done

将其保存为 removeUser.sh,使用 chmod 将其设置为可执行文件 (chmod 755) 然后运行它 (sudo ./removeUser.sh )

关于macos - 在 OS X 上以管理员权限运行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1371092/

相关文章:

php - 在 mountain lion 上安装 php intl 扩展

macos - 重启后launchctl中缺少条目

shell - 如何从标记开始将一个文件的内容追加到另一个文件中?

lua - 在 Logitech 5.4 LUA 中弃用 table.getn 之后,此代码似乎不再起作用

ios - 如何让 Jenkins 使用 usr/bin/security?

c++ - 对于任何 C++ 函数,Mac 上的链接器错误,但 iOS 上没有

bash - 使用调试退出主脚本的包装脚本

objective-c - 在 10.6 下调用 Finder 的 Scripting Bridge 返回值不正确(但不会引发错误)

javascript - AppleScript (Javascript) : Remove class, 如果

swift - 通过 GUI 获取 sudo 询问密码