我已经尽力在 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/