macOS Sierra: il volume di montaggio di AppleScript continua a chiedere il login

9

Per diverse versioni di OS X che ho usato:

/usr/bin/osascript -e mount volume "smb://yourserver" as user name  "yourusername" with password “yourpassword”

Questo ha funzionato benissimo, un bel montaggio della condivisione di rete, se disponibile naturalmente.

Recentemente ho installato macOS Sierra (10.12 beta pubblica, build 16A238m) e lo script funziona ancora, tuttavia ora mostrerà immediatamente una finestra di accesso, pre-compilata con i valori "yourusername" e "yourpassword". L'utente dovrà ancora fare clic su "Connetti" per montare la condivisione.

Qualcuno sa se questo è un "bug" nella versione beta (l'ho segnalato con l'app di feedback di Apple), o è previsto e / o quale sarebbe la "correzione" per questo?

Vedi anche: Documentazione AppleScript" volume di montaggio "

    
posta Hanzaplastique 13.07.2016 - 12:57
fonte

2 risposte

12

Come Apple ha risposto al ticket referenziato nel link Radar aperto di mattdwen sopra, a partire da macOS Sierra 10.12,

you can no longer create items in /Volumes unless root.

Inoltre, la mia migliore comprensione di AppleScript mount volume comando è che non ha un modo per specificare il mount point e di conseguenza only monta i volumi sotto /Volumes tramite Finder meccanismo standard. Quindi, non penso che tu possa farlo tramite AppleScript.

Ma c'è un altro modo. Puoi realizzare la stessa cosa usando il comando mount di livello inferiore:

mkdir -p ~/mnt
mount_smbfs "//my_username:my_password@my_hostname/share" ~/mnt

Dopo aver montato il volume in questo modo, dovresti vedere una normale icona del "volume" apparire sul desktop e la directory ~/mnt apparirà come "share" quando navighi nella directory degli utenti tramite Finder.

L'unica cosa che manca a questo approccio è il salvataggio delle credenziali di accesso in Keychain. Per fare ciò, devi fare un po 'più di scripting. Qualcosa di simile.

Salva la password:

security add-generic-password -a my_username -s my_hostname -w my_password

Recupera la password e monta la condivisione:

pass=$(security find-generic-password -a my_username -s my_hostname -w)
mount_smbfs "//my_username:${pass}@my_hostname/share" ~/mnt

NOTA: se nella tua password hai caratteri speciali, probabilmente dovrai codificarli tramite URL, forse in questo modo:

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

Questo problema è stato risolto da Apple in macOS Sierra 10.12.2:

link

    
risposta data 24.12.2016 - 20:10
fonte

Leggi altre domande sui tag