Für mehrere OS X-Versionen habe ich verwendet:
/usr/bin/osascript -e mount volume "smb://yourserver" as user name "yourusername" with password “yourpassword”
Das hat super geklappt, ein schönes und leises Einbinden der Netzwerkfreigabe, sofern vorhanden natürlich.
Jetzt habe ich kürzlich macOS Sierra (10.12 Public Beta, Build 16A238m) installiert, und das Skript funktioniert immer noch, aber es zeigt jetzt plötzlich immer einen Anmeldedialog, der mit den Werten "IhrBenutzername" und "IhrPasswort" vorbelegt ist. Der Benutzer muss immer noch auf „Verbinden“ klicken, um die Freigabe bereitzustellen.
Weiß jemand, ob dies ein "Bug" in der Beta-Version ist (ich habe dies mit Apples Feedback-App gemeldet), oder ist dies zu erwarten und / oder was wäre die "Behebung" dafür?
Siehe auch: AppleScript-Dokumentation "mount volume"
Als Apple auf das Ticket geantwortet hat, auf das in mattdwens Open Radar-Link oben verwiesen wird, ab macOS Sierra 10.12,
Sie können keine Elemente mehr in /Volumes erstellen, es sei denn, Sie sind root.
Außerdem ist mein bestes Verständnis des AppleScript -Mount-Volume- Befehls, dass er keine Möglichkeit hat, den Mount-Punkt anzugeben, und folglich nur Volumes /Volumes
über den Standardmechanismus des Finders mountet. Also, ich glaube nicht, dass Sie es über AppleScript tun können.
Aber es geht auch anders. Sie können dasselbe mit dem mount
Befehl auf niedrigerer Ebene erreichen:
mkdir -p ~/mnt
mount_smbfs "//my_username:my_password@my_hostname/share" ~/mnt
Nachdem Sie das Volume auf diese Weise gemountet haben, sollten Sie ein normales „Volume“-Symbol auf Ihrem Desktop sehen und das ~/mnt
Verzeichnis wird als „Freigabe“ erscheinen, wenn Sie Ihr Benutzerverzeichnis über den Finder durchsuchen.
Das einzige, was bei diesem Ansatz fehlt, ist das Speichern der Anmeldeinformationen im Schlüsselbund. Dazu müssen Sie etwas mehr Skripting durchführen. Etwas wie das.
Passwort speichern:
security add-generic-password -a my_username -s my_hostname -w my_password
Rufen Sie das Passwort ab und mounten Sie die Freigabe:
pass=$(security find-generic-password -a my_username -s my_hostname -w)
mount_smbfs "//my_username:${pass}@my_hostname/share" ~/mnt
HINWEIS: Wenn Sie Sonderzeichen in Ihrem Passwort haben, müssen Sie es wahrscheinlich URL-kodieren, vielleicht so:
pass='my !@#%%^& password'
pass=$(php -r "echo urlencode(\"$pass\");")
>>> my+%21%40%23%25%25%5E%26+password
/Volumes/share
?Dies wurde von Apple in macOS Sierra 10.12.2 behoben:
sudo defaults delete /Library/Preferences/com.apple.NetworkAuthorization AllowUnknownServers
(das "Schreiben" in dieser Zeile wurde entfernt).
Mattdwen
/Volumes
Ordner, in dem die Netzwerkfreigabe gemountet ist, nur für den Root-Zugriff gesperrt hat, sodass eine Benutzerautorisierung erforderlich ist, um den Mount-Punkt zu erstellen. Leider kenne ich im Moment keinen Workaround, obwohl ich mit dem Ändern von Sudoers auf dem Computer spielen werde. Ich habe ein Open Radar unter openradar.appspot.com/radar?id=4948585099558912 , wo Apple bestätigt hat, dass es gesperrt ist.miwk
open
und den Benutzernamen und das Passwort in der URL angeben. Siehe "Methode 2" in meiner anderen Antwort hier