I have background process running as the logged on user that frequently tries to mount an AFP share to backup some data. If the share cannot be mounted this should just be ignored.
In my script (bash, actually) I am mounting the share via an AppleScript mount volume
snippet. In contrast to the mount
or mount_afp
commands, this appears to be the only way to automatically authenticate the user at the respective server with credentials from the Kerberos ticket or the user's keychain. In particular, I do not want to have to store a password in the script:
try
mount volume "afp://server/share"
on error errText number errNum
log {errText, errNum}
end try
This works generally fine, but despite the try ... on error
block, the 'mount volume' command always opens a dialog in case of an error:
I am looking for :
- a way to suppress this dialog, or
- a solution to automatically dismiss it (maybe involving some SystemEvents trickery?), or
- an approach to teach
mount
, respectivelymount_afp
to use the credentials from the Kerberos ticket and the user's keychain without having to provide a password.
I have googled and tried for a couple of hours, but not yet found any solution.
I have been fighting this problem on my mac mini media server for ages and believe i finally have a solution.
I have split it into two scripts:
the first one runs on idle (rather than a repeat loop) and calls a second script every 10 seconds that handles the drive mounting.
the second script does the checking of the network, then tries to mount the volume using a shell mount. i originally used a finder "mount volume" and that codes exists as comments too, but I didn't like the dialog popping up on errors; even if only for a second, so i moved on to shell script.
not all of this is my own code, so many thanks goes out to the applescript community and google - remember to pay it forward
To mount the drives, make an apple script like this:
Then, to close the warning message that comes up, use another script like this:
The delay just gives the message box a chance to appear, but you might not need it.
If you run this last script from the terminal using osacompile then osascript, you will need to give accessibility access to the terminal.
Apologies for the crappy answer. I think if you try something like this you won't be bothered with dialogs (but you can still have your script respond to errors).
(below is a simple version. Documentation for mount_afp with username/password is here: http://developer.apple.com/library/mac/documentation/Darwin/Reference/Manpages/man8/mount_afp.8.html )
[insufficient answer below]
Some of this might be obvious, but you'll need toI believe this will work to kill the dialog w/o resorting to System Events ... in terminal or shell:
or via AppleScript:
Of course, you have to be careful not to kill it during the authentication process.