Para varias versiones de OS X que he usado:
/usr/bin/osascript -e mount volume "smb://yourserver" as user name "yourusername" with password “yourpassword”
Esto ha funcionado muy bien, un montaje agradable y silencioso del recurso compartido de red, si está disponible, por supuesto.
Ahora, recientemente instalé macOS Sierra (10.12 beta pública, compilación 16A238m), y el script aún funciona, sin embargo, ahora de repente siempre mostrará un cuadro de diálogo de inicio de sesión, completado previamente con los valores "tunombre de usuario" y "tucontraseña". El usuario aún tendrá que hacer clic en "Conectar" para montar el recurso compartido.
¿Alguien sabe si se trata de un "error" en la versión beta (informé de esto con la aplicación Feedback de Apple), o si se esperaba y/o cuál sería la "solución" para eso?
Ver también: Documentación de AppleScript "volumen de montaje"
Como Apple respondió al ticket al que se hace referencia en el enlace Open Radar de mattdwen anterior, a partir de macOS Sierra 10.12,
ya no puede crear elementos en /Volumes a menos que sea root.
Además, mi mejor comprensión del comando de volumen de montaje de AppleScript es que no tiene una forma de especificar el punto de montaje y, en consecuencia, solo monta volúmenes a /Volumes
través del mecanismo estándar del Finder. Entonces, no creo que puedas hacerlo a través de AppleScript.
Pero hay otra manera. Puede lograr lo mismo usando el mount
comando de nivel inferior:
mkdir -p ~/mnt
mount_smbfs "//my_username:my_password@my_hostname/share" ~/mnt
Después de montar el volumen de esta manera, debería ver un icono de "volumen" normal en su escritorio y el ~/mnt
directorio aparecerá como "compartir" cuando explore su directorio de usuario a través de Finder.
Lo único que falta en este enfoque es guardar las credenciales de inicio de sesión en el llavero. Para hacer eso, tienes que hacer un poco más de secuencias de comandos. Algo como esto.
Guarde la contraseña:
security add-generic-password -a my_username -s my_hostname -w my_password
Recupere la contraseña y monte el recurso compartido:
pass=$(security find-generic-password -a my_username -s my_hostname -w)
mount_smbfs "//my_username:${pass}@my_hostname/share" ~/mnt
NOTA: Si tiene caracteres especiales en su contraseña, probablemente necesitará codificarla como URL, tal vez así:
pass='my !@#%%^& password'
pass=$(php -r "echo urlencode(\"$pass\");")
>>> my+%21%40%23%25%25%5E%26+password
/Volumes/share
?Esto ha sido solucionado por Apple en macOS Sierra 10.12.2:
sudo defaults delete /Library/Preferences/com.apple.NetworkAuthorization AllowUnknownServers
(eliminó "escribir" en esa línea).
mattdwen
/Volumes
carpeta donde está montado el recurso compartido de red solo para acceder a la raíz, lo que requiere la autorización del usuario para crear el punto de montaje. Desafortunadamente, no conozco una solución en este momento, aunque voy a jugar modificando sudoers en la computadora. Tengo un Open Radar en openradar.appspot.com/radar?id=4948585099558912 donde Apple ha confirmado que está bloqueado.mivk
open
y dando el nombre de usuario y la contraseña en la URL. Ver "método 2" en mi otra respuesta aquí