2017-10-17 6 views
0

エクセルファイルにpscp(パテクライアント)を使用してファイルをアップロードするマクロがあります。 VBAエクセルとパテ(FTP) - シェルの呼び出しとバイパスホストキーがレジストリにキャッシュされない

この

は、これが正常に動作コード

Dim wsh As Object 
Set wsh = VBA.CreateObject("WScript.Shell") 
Dim waitOnReturn As Boolean: waitOnReturn = True 
Dim windowStyle As Integer: windowStyle = 1 

Dim cstrSftp As String 
Dim strCommand As String 
Dim pUser As String 
Dim pPass As String 
Dim pHost As String 
Dim pFile As String 
Dim pRemotePath As String 

'Specifying the values 
cstrSftp = """" & Application.ActiveWorkbook.Path & "\pscp.exe" & """" 
pUser = "username" 
pPass = "password " 
pHost = "ftp.xyz.com" 
pFile = """" & Application.ActiveWorkbook.Path & "\test.mkv" & """" 
pRemotePath = "/home/storage/public_html/" 

'Setting the command 
strCommand = cstrSftp & " -sftp -l " & pUser & " -pw " & pPass & _ 
    " " & pFile & " " & pHost & ":" & pRemotePath 

'Execution 
wsh.Run strCommand, windowStyle, waitOnReturn 

ですが、私は二つの問題があります。

のWindows 10システムのポップアップ彼はPSCPを実行したい場合は、ユーザーに尋ねるメッセージを使用して

1) 。EXE。私はそれを迂回したいと思います。

代わりのWScript.Shell私はこれを使用していた:コールシェルを操作システムを使用して

Call Shell(strCommand, vbNormalFocus) 

はpscp.exeの実行について質問しないが、問題は、私はへの道を持っていないですプロセスは、ユーザーが初めてのコマンドを実行します

2)上にあるとき、パテは、このメッセージを促し知っている:

サーバーのホストキーはレジストリにキャッシュされません。 は、サーバーがあなたが思っているコンピューターであることを保証していません。 サーバのrsa2キー>フィンガープリントは次のとおりです。[ssh-rsa 1024 somekey] このホストを信頼する場合は、「y」と入力してPuTTYのキャッシュにキーを追加し、接続時に を指定します。 キーをキャッシュに追加せずに1回だけ接続を続けたい場合は、「n」と入力します。このホストを信頼しない場合は、 を押して接続を中止します。キーをキャッシュに保存しますか? (y/n)

私は完全に即座に無料、自動にする必要があります。

は、私はこのような "n個のエコー" を使用しようとした:

strCommand = "エコーN |" & cstrSftp & "-sftp -l" &プエル& "-pw" & pPass & _ "" & PFILE & "" & PHOST & ":IWshShell3" 失敗 "& pRemotePath

しかし、私はメッセージが表示されます"。

+0

これらは2つの異なる質問です。だから別々に彼らに尋ねる。 –

+1

[pcpホストキープロンプトへの自動応答としてecho yを使う](https://stackoverflow.com/questions/39924091/using-echo-y-as-an-automated-response-to-a-pcp) -hostkey-prompt) –

答えて

-1

問題2解決済み!

Echoはバッチファイルコマンドなので、ラウンドラウンドが必要です。

このコマンドは作品:

strCommand = "CMD/CエコーN |" & pPass & _ "" & PFILE & "" "-pw" & cstrSftp & "-sftp -l" &プエル& & pHost & ":" &pRemotePath

+0

これを絶対にしないでください!プロンプトに理由があります。ホスト鍵を検証する必要があります。 –

関連する問題