Mac OSX 从脚本将 smb 挂载到 /Volumes

Mac OSX mount smb to /Volumes from script

我可以使用以下方法将 smb 共享挂载到 /Volumes

osascript -e "mount volume \"smb://user:pass@hal/share\""

但这只有在我已经登录 Mac 时才有效,否则我会收到“无法建立与 WindowServer 的默认连接”错误。

我可以使用 mount 命令挂载到我的主目录中的一个文件夹,无论我是否登录都可以:

mkdir ~/test
mount -t smbfs //user:pass@hal/share ~/test

但我无法使用 /Volumes 执行此操作,因为它归根用户所有。 osascript 调用如何获得写入 root 拥有的文件夹的权限,我如何在不使用 AppleScript 的情况下做同样的事情?

谢谢

回答我自己的问题:

最初我使用的 AppleScript 是:

osascript -e 'tell application "Finder" to mount volume "smb://user:pass@hal/share"'

这会产生不同的错误,并且当用户未登录时安装失败:

29:78: execution error: An error of type -610 has occurred. (-610)

我在写这道题的时候发现了一个不使用 Finder 的更简单的版本:

osascript -e ‘mount volume "smb://user:pass@hal/share”’

正如我所说,当用户未登录时,这也会出现错误:

_RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.

但它确实在 /Volumes 中安装了网络共享,因此我可以使用它并忽略错误。