Domanda

Ho uno script bash che verrà eseguito su un Mac tramite ssh. Lo script richiede che una particolare unità di rete sia già montata. Sul Mac, monto questa unità aprendo una cartella " JPLemme " su quell'unità nel Finder. Questo monta l'unità fino a quando il Mac non si addormenta di notte.

Ovviamente, Finder non è disponibile tramite ssh, quindi voglio creare un AppleScript che simuli ciò che faccio attraverso la GUI. Ho provato:

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

Ricevo il seguente errore:

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

Presumo che mi manchi qualcosa di ovvio, ma Google mi ha deluso. Sarei anche disposto a trovare soluzioni migliori come il montaggio diretto dell'unità; Ho evitato questo approccio perché non voglio che il Mac si strozzasse cercando di montare l'unità una seconda volta dopo averlo già montato in modo inaspettato. (Non mi piacciono molto i Mac o AppleScript ...)

È stato utile?

Soluzione

Il volume della tua rete dovrebbe avere un dominio ad esso collegato in qualche modo. Pertanto, " JPLemme.domain.com " ;. Uso il seguente blocco di codice per accedere a un volume di rete protetto da password:

    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

Puoi pulirlo se necessario, ma questo è il nocciolo di esso. Buona fortuna

Altri suggerimenti

Alla base, tutto ciò che è veramente necessario è il seguente:

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

Ma ciò che verrà utilizzato dipenderà in gran parte dall'ambiente di rete e dagli errori restituiti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top