Question

J'ai un script bash qui sera exécuté sur un Mac via ssh. Le script nécessite qu'un lecteur réseau particulier soit déjà monté. Sur le Mac, je monte ce lecteur en ouvrant un dossier "JPLemme". sur ce lecteur dans le Finder. Cela permet de monter le lecteur jusqu'à ce que le Mac s'endorme la nuit.

Évidemment, le Finder n’est pas disponible via ssh, je souhaite donc créer un AppleScript qui simule ce que je fais via l’interface graphique. J'ai essayé:

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

Je reçois le message d'erreur suivant:

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

Je suppose qu'il me manque quelque chose d'évident, mais Google m'a échoué. Je serais également disposé à envisager de meilleures solutions, telles que le montage direct du disque; J'ai évité cette approche car je ne veux pas que le Mac s'étouffe en essayant de monter le disque une seconde fois après l'avoir déjà monté de manière inattendue. (Je n'aime pas trop les Macs ou AppleScript ...)

Était-ce utile?

La solution

Un nom de domaine doit être associé à votre volume réseau. Ainsi, "JPLemme.domain.com". J'utilise le bloc de code suivant pour accéder à un volume réseau protégé par mot de passe:

    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

Vous pouvez le nettoyer si nécessaire, mais c'est le cœur du problème. Bonne chance

Autres conseils

À la base, tout ce qui est vraiment nécessaire est le suivant:

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

Mais ce qui sera utilisé dépendra en grande partie de l'environnement réseau et des erreurs renvoyées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top