Pergunta

Eu tenho um script que será executado em um Mac via ssh. O script requer uma unidade de rede particular para já ser montado. No Mac, eu montar esta unidade, abrindo uma pasta "JPLemme" nessa unidade no Finder. Isso monta a unidade até que o Mac vai dormir à noite.

Obviamente, o Finder não está disponível via ssh, então eu quero criar um AppleScript que irá simular o que eu faço através do GUI. Eu tentei:

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

Eu recebo o seguinte erro:

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

Eu suponho que eu estou faltando algo óbvio, mas o Google falhou comigo. Eu também estaria disposto a entreter melhores soluções como montar a unidade diretamente; Eu tenho evitado essa abordagem porque eu não quero que o Mac para sufocar tentando montar a unidade uma segunda vez depois que eu já montou de forma inesperada. (Eu realmente não gosto de Macs ou AppleScript ...)

Foi útil?

Solução

O seu volume de rede deve ter um domínio ligado a ele de algum tipo. Assim, "JPLemme.domain.com". Eu uso o seguinte pedaço de código para chegar em um volume de rede que está protegido por senha:

    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

Você pode limpá-lo conforme necessário, mas esse é o cerne da questão. Boa sorte

Outras dicas

Em que é muito núcleo, tudo o que é realmente necessário é o seguinte:

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

Mas o que é utilizado vai depender muito do ambiente de rede e erros retornados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top