macOS Sierra: el volumen de montaje AppleScript sigue pidiendo inicio de sesión

9

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.

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 diálogo de inicio de sesión, previamente rellenado con los valores "yourusername" y "yourpassword". El usuario todavía tendrá que hacer clic en "Conectar" para montar el recurso compartido.

¿Alguien sabe si esto es un "error" en la versión beta (informé esto con la aplicación de Comentarios de Apple), o es esto esperado y / o cuál sería la "solución" para eso?

Vea también: Documentación de AppleScript" volumen de montaje "

    
pregunta Hanzaplastique 13.07.2016 - 12:57

2 respuestas

12

Como respondió Apple al boleto al que se hace referencia en de mattdwen arriba, a partir de macOS Sierra 10.12,

  

ya no puede crear elementos en / Volúmenes a menos que sea root.

Además, mi mejor comprensión del AppleScript el comando mount volume es que no tiene una manera de especificar el punto de montaje y, por lo tanto, solo monta volúmenes bajo /Volumes a través del Finder Mecanismo estándar. Entonces, no creo que puedas hacerlo a través de AppleScript.

Pero hay otra manera. Puedes lograr lo mismo con el comando de nivel inferior mount :

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 ícono de "volumen" normal en su escritorio y el directorio ~/mnt aparecerá como "compartir" cuando navegue por su directorio de usuarios a través del Buscador.

Lo único que falta en este enfoque es guardar las credenciales de inicio de sesión en Keychain. Para hacer eso, tienes que hacer un poco más de scripting. Algo como esto.

Guarda 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á la codificación de la URL, tal como esto:

pass='my !@#%%^& password'
pass=$(php -r "echo urlencode(\"$pass\");")
>>> my+%21%40%23%25%25%5E%26+password
    
respondido por el mnewt 23.09.2016 - 06:35
4

Apple lo ha solucionado en macOS Sierra 10.12.2:

enlace

    
respondido por el Jan Dubois 24.12.2016 - 20:10

Lea otras preguntas en las etiquetas