4

ssh経由でMac上で実行されるbashスクリプトがあります。このスクリプトでは、特定のネットワーク ドライブが既にマウントされている必要があります。Mac では、Finder でそのドライブのフォルダ「JPLemme」を開いて、このドライブをマウントします。これにより、Mac が夜間にスリープ状態になるまでドライブがマウントされます。

明らかに、Finder は ssh 経由では利用できないので、GUI を介して行うことをシミュレートする AppleScript を作成したいと考えています。私はもう試した:

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

次のエラーが表示されます。

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

明らかな何かが欠けていると思いますが、Google は失敗しました。また、ドライブを直接マウントするなどのより良い解決策も喜んで受け入れます。私はこのアプローチを避けてきました。なぜなら、予期せぬ方法でドライブを既にマウントした後、もう一度ドライブをマウントしようとして Mac が窒息するのを望まないからです。(私は Mac や AppleScript があまり好きではありません...)

4

2 に答える 2

3

ネットワーク ボリュームには、何らかのドメインが関連付けられている必要があります。つまり、「JPLemme.domain.com」です。次のコードのチャンクを使用して、パスワードで保護されたネットワーク ボリュームにアクセスします。

    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

必要に応じてクリーンアップできますが、それが核心です。幸運を

于 2008-11-25T19:39:12.340 に答える
1

それは非常に核心であり、本当に必要なのは次のことだけです。

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

ただし、何が使用されるかは、ネットワーク環境と返されるエラーに大きく依存します。

于 2008-11-26T14:52:06.867 に答える