Pregunta

Tengo un script bash que se ejecutará en una Mac a través de ssh. El script requiere que una unidad de red en particular ya esté montada. En Mac, monte esta unidad abriendo una carpeta " JPLemme " en ese disco en Finder. Esto monta el disco hasta que la Mac se duerma por la noche.

Obviamente, Finder no está disponible a través de ssh, por lo que quiero crear un AppleScript que simule lo que hago a través de la GUI. He intentado:

tell application "Finder"
activate
open "JPLemme"
end tell

Recibo el siguiente error:

execution error: Finder got an error: Can't get "JPLemme". (-1728)

Supongo que me falta algo obvio, pero Google me ha fallado. También estaría dispuesto a entretener mejores soluciones como montar el disco directamente; He evitado ese enfoque porque no quiero que la Mac se atragante al intentar montar la unidad por segunda vez después de que ya la haya montado de manera inesperada. (Realmente no me gustan las Mac o AppleScript ...)

¿Fue útil?

Solución

Su volumen de red debe tener un dominio adjunto de algún tipo. Entonces, "JPLemme.domain.com". Utilizo el siguiente fragmento de código para acceder a un volumen de red que está protegido con contraseña:

    tell application "Finder"
       try
          set theServer to mount volume "smb://path/to/volume" as username "YourUserName" with password "YourPassword" 
--Please note here that this is a plain string without any built-in security. Use at your own risk.
       on error
          set VolumeCount to (get count of disks)
          repeat with x from 1 to VolumeCount
             set thisVolume to disk x
             if name of thisVolume is "JPLemme" then
                set theServer to thisVolume
                exit repeat
             end if
          end repeat
       end try
    end tell

Puede limpiarlo según sea necesario, pero ese es el núcleo de la misma. Buena suerte

Otros consejos

En esencia, todo lo que realmente se necesita es lo siguiente:

Tell Application "Finder"
   Mount Volume "smb://username:password@server/sub/directory"
End Tell

Pero lo que se use dependerá en gran medida del entorno de red y los errores devueltos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top