2012-05-03 317 views
3

私の目的は、SFTPサーバーからファイルをダウンロードするのではなく、このサイトの別の質問からコードを適合させようとしていることです。 )。VBAでSFTPを使用してファイルをダウンロードする

私はパテからPSFTPをダウンロードしました。私は3つの質問を持っている

open username:[email protected]:1111 

:私は、次のコマンドラインを使用して接続しようとすると、PSFTPが閉じ

  1. は私のコマンドラインに何か問題ありますか?そうでなければ何が問題になるのでしょうか?

  2. SFTPは通常get/putコマンドを利用していますが、以下のコードでputコマンドが表示されないので、getコマンドを入力してファイルをダウンロードする必要がありますそれをアップロードする代わりに(これは、以下のコードがやろうとしているものです)。

  3. pRemotePathがSFTPサーバー上のファイルの場所であり、pFileがファイルをダウンロードする場所であることが正しいですか?

簡単な説明は非常に高く評価されます。

Public Sub SftpGet() 

    Const cstrSftp As String = """C:\Users\Ron\UtilityTools\psftp.exe""" 
    Dim strCommand As String 
    Dim pUser As String 
    Dim pPass As String 
    Dim pHost As String 
    Dim pFile As String 
    Dim pRemotePath As String 

    pUser = "uid" 
    pPass = "PW" 
    pHost = "dns" 
    pFile = "C:\Users\Ron\activity.txt" 
    pRemotePath = "Z:/activity.log" 

    strCommand = cstrSftp & " -sftp -l " & pUser & " -pw " & pPass & _ 
     " " & pFile & " " & pHost & ":" & pRemotePath 
    Debug.Print strCommand 
    Shell strCommand, 1 ' vbNormalFocus ' 
End Sub 
+0

あなたがトロイの木馬を作っているように聞こえます...ジョーク。 – Raptor

+0

私はsftpを使ったことがないので、私が今提案していることはうまくいかないかもしれません。 '-l'は何をするのですか? sftpを調べているうちに、ユーザーがファイルをダウンロードするために '-l'の代わりに' -B'を使用したサイトを見つけました。それが役立つかどうかを見てください。 –

+1

@SiddharthRout '-l'オプションは、サーバ上のユーザアカウントを指定するために使用されます。私はそれが 'ssh'クライアントコマンドからコマンドオプションを模倣することを意図していると思う。 – HansUp

答えて

1

私はあなたがWindowsのコマンドプロンプトセッションから始めるべきだと思います。私は同様の質問への答えで示唆したように、コマンドラインの詳細を試してください:SFTP upload with VBA。いったんそこで動作するコマンドラインがあれば、VBAから同じコマンドを実行するのは非常に簡単です。

私はパテのpsftp.exeツールを一度も使用していません。pscp.exeというツールしか使用していないので、psftp.exeコマンドラインを構築する方法についてはお手伝いできません。私がPutty's documentationに気づいたことの1つは、PSFTP(pscp.exe)はSSH-2サーバでしか動作できないということです。ターゲットサーバがSSH-1だけをサポートしている場合、PSFTPは動作しません。

私は、あなたがそのリンクでパテのドキュメントを見直すことは価値があると思います。

関連する問題