【VBScript】proxy経由のFTP転送

このQ&Aのポイント
  • VBScriptのFTP転送について教えてください。
  • 社内のネットワーク環境が変わり、プロキシを経由する必要があり、VBScriptのソースコードが動かなくなりました。
  • VBSに詳しい方からの助言をお待ちしています。
回答を見る
  • ベストアンサー

【VBScript】proxy経由のFTP転送

お世話になります。 今、VBScriptのFTP転送について教えてください。 ------------------------------------- Function Main() ~~ Set ftp = CreateObject("basp21.FTP") rc = ftp.Connect(server,user,passwd) If rc = 0 Then v = ftp.PutFile(fromFilePath, toFile) End If ~~ ------------------------------------ 今まで、上記のソースで問題なく社外のサーバへFTP接続とファイル転送を行えていたのですが、 この度、社内のネットワーク環境が変わって、プロキシを経由をすることが必須になってしまい、 上記のソースでは動かなくなってしまいました。 なにぶん普段全くさわる事のないVBSなため、かれこれずっと頭を悩ませています。 どなたかVBSに詳しい方がいらっしゃいましたら、教えていただけますでしょうか。 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

FTPプロキシはいろいろな種類があり、方法も違います。 プロキシを使うことになった際に、「外部へのftpは、今後はこうやってください」という案内があったはずで、そこにどう書いてあるかによって、出来るかもしれないし、出来ないかもしれません。

関連するQ&A

  • VBAでFTPサーバーへのアップデート

    BASP21でのFTPサーバーへのアップデートが出来ないです。 BASP21をインストールし、サーバーのユーザー名やパスワードも あっている状態です。 しかし、アップデートすると 「を送信できませんでした。」 と表示され、アップデートできませんでした。 「FTP接続できませんでした。」は抜けているので、 それ以外が原因だとは思うのですが分かりません。 Visual Basicのサンプルから書きました。 以下の通りです。 初心者のため質問に不備があるかもしれません。 予めお許しください。 Sub FTPサーバーにUP() Dim FTP, rc As Long, Server As String, User As String, Pass As String Dim Target As String, Folder As String Set FTP = CreateObject("basp21.FTP") ''FTPオブジェクト Server = "ftp.●●●●●●.jp" ''ホストアドレス User = "●●●●●●" ''ユーザー名 Pass = "●●●●●●●●" ''パスワード Target = "C:\Users\●●\Desktop.エクセルファイル.xls" ''送信ファイル If Target = "False" Then Exit Sub Folder = "/home/●●●●●●/●●●●/●●●/状況" rc = FTP.Connect(Server, User, Pass) If rc <> 0 Then MsgBox "FTP接続できませんでした。", vbCritical FTP.Close Exit Sub End If rc = FTP.PutFile(Target, Folder) If rc <> 1 Then MsgBox Dir(Target) & "を送信できませんでした。", vbCritical FTP.Close Exit Sub End If MsgBox Dir(Target) & "を送信しました。", vbInformation FTP.Close End Sub

  • VBScriptでFTP転送したファイルを削除

    VBScriptでFTP転送したファイルの削除は可能でしょうか。 以下のURLを参考に、VBSでファイルをFTP転送するプログラムを作成しています。 https://esoro.jp/?p=128 このプログラムでサーバに転送したファイルを、 同じソース内で削除したいのですが、可能でしょうか。 ----ソース---- 'FTP送信指定 Const HostName = "xxx.xxx.xxx.xxx" Const UserID = "userid" Const UserPass = "password" Const DestDir ="Upload" Dim strDest,strSrc, UpFileName, UpFileSize, oSH, objDest strSrc="D:\log\temp" strDest = "ftp://" & UserID & ":" & UserPass & "@" & HostName & "/" & DestDir Set oSH = CreateObject("Shell.Application") Set objDest = oSH.NameSpace(strDest) For Each objItem In oSH.NameSpace(strSrc).Items UpFileName = objItem.Name UpFileSize = objItem.Size objDest.CopyHere objItem, &H04 + &H10 Next ------------- 転送は問題なく動いています。 CopyHereの部分をDELETEFILEやDELETEに変更したりして実行してみましたが、 上手くいきませんでした。 ご存じの方がいらっしゃれば、ご教示をお願い致します。

  • 忍者へFTP接続でVBAでファイルをアップロード

    忍者へFTP接続でVBAでファイルをアップロードしたいです。 http://officetanaka.net/excel/vba/tips/tips47.htm を参考に実践してるのですがうまくできません。 FFFTPを使っての手動でのアップロードは問題なく行えます。 ----------------------------------------------------------------- Sub Sample1() Dim FTP, rc As Long, Server As String, User As String, Pass As String Dim Target As String, Folder As String Set FTP = CreateObject("basp21.FTP") ''FTPオブジェクト Server = "ftp.xxxxx.com" ''ホストアドレス User = "toru_tanaka" ''ユーザー名 Pass = "password" ''パスワード Target = Application.GetOpenFilename() ''送信ファイル If Target = "False" Then Exit Sub Folder = "/" ''送信フォルダ rc = FTP.Connect(Server, User, Pass) If rc <> 0 Then MsgBox "FTP接続できませんでした。", vbCritical FTP.Close Exit Sub End If rc = FTP.PutFile(Target, Folder) If rc <> 1 Then MsgBox Dir(Target) & "を送信できませんでした。", vbCritical FTP.Close Exit Sub End If MsgBox Dir(Target) & "を送信しました。", vbInformation FTP.Close End Sub ----------------------------------------------------------------- の rc = FTP.Connect(Server, User, Pass) If rc <> 0 Then MsgBox "FTP接続できませんでした。", vbCritical FTP.Close Exit Sub End If これは通過できるのですが、 rc = FTP.PutFile(Target, Folder) If rc <> 1 Then MsgBox Dir(Target) & "を送信できませんでした。", vbCritical FTP.Close Exit Sub End If で0が返るようで、送信できませんでした。となります。 トップページの階層にアップしたい場合は Folder = "/" でいいんですよね? Folder = "/" にしても Folder = ""にしても失敗します。 FFFTPのメッセージランを見ていると、 VBAで送信できなくても ----------------------------------------------------------------- >TYPE A 200 転送タイプを A にセットしました >PASV 227 Entering Passive Mode (***). ダウンロードのためにホスト *** (***) に接続しています. (TCP/IPv4) 接続しました. (TCP/IPv4) >MLSD 150 ASCIIモードのデータ接続をオープンします MLSD 226 転送が完了しました ファイル一覧の取得は正常終了しました. (821 Bytes) ----------------------------------------------------------------- が表示されます。 何が間違ってるのでしょうか? ご教授よろしくお願いします。

  • プロキシサーバー経由でftpのgetを行う方法

    社内LANからプロキシサーバーを経由して、外部のサーバにあるファイルをftpでgetしようとし ています。 方法としては、定期実行するためにスクリプトで下記のようなテキスト(ftpcmd.txt)を作成し、 バッチファイル(auto.bat)でftpコマンドを実行する予定です。 <ftpcmd.txt> open xxx.xxx.xxx.xxx user1 passwd1 ascii get /logfiles/todaylog.txt quit <auto.bat> ftp -s:ftpcmd.txt ここで、質問なのですが、上記のような方法を用い、プロキシサーバー経由でftpを使ったgetを 行うには、どのように行えばいいでしょうか。または、DOSコマンドを使って、行うことは無理な のでしょうか。その場合、ほかにはどのようなやり方が考えられるでしょうか。どなたか、ご助言 いただけませんでしょうか。

  • BASP21のftp.Command("site 文字列")の使い方に

    BASP21のftp.Command("site 文字列")の使い方にて 以下のような目的 VB6でBASP21を利用しております Pc-A(VB6実行環境),Pc-B(DataBase) Pc-AからPc-Bにあるcshを実行したい のですが、上手く動作できません、 何がいけないのかわかる方がいらっしゃいましたら、 助言のほど宜しくお願いいたします 001:Set objFtp = CreateObject("basp21.FTP") 002:rc = objFtp.Connect(GlbFTPHost, GlbFTPUser, GlbFTPPass) 003:rc = objFtp.Command("pasv") 004:rc = objFtp.Command("cwd xxxx/yyyy/zzzz") 005:rc = objFtp.Command("site csh AS400.csh") 4行目までは正常に動作してるのですが 5行目の返り値が5で正常値2が返ってきません。 今回初めてsiteを用いた為、 そもそもPc-AからPc-Bにあるcshを実行ができるのか? siteの意味を間違った理解をしているのか? わからなくなってしまいました。トホホ・・・

  • VBScriptでFTPサイトからダウンロードさせたい。

    こんにちは。 VBS(初心者)です。 このところ1週間くらい悩んでいるので教えて下さい。 VBSでFTPサイトから複数ファイルをダウンロードさせたいのですが、エラーが出てうまくいきません。 具体的には、 xxx.vbsをWクリックすれば、FTPサイトにアクセスし、ファイルをローカルにダウンロード完了。まで行いたいです。 現在、 1.ローカルフォルダTempにアクセス 2.TempからTemp1にコピー 3.Temp1からTemp2に移動 4.TempとTemp2のファイルサイズ表示、終了 という.vbsは出来ているんですが、1.をFTPサイトにしたいのです。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=381743 なども見てみましたがイマイチ理解できませんでした。 call FTPDownload($server, $user, $pwd, $svr_fname, $cli_fname[, $bin_flag, $proxy, $port]) 上記でもうまくいかないのですが・・・ .vbsでIEを起動したりすることは出来ています。 どなたかごぞんじ又は、サンプルが載っているサイトがあれば教えて下さい。 よろしくおねがいします。

  • ソースコードのFTP転送について

    当方、WEBプログラマーをやっております。 同じプログラマーの方ならお分かりになると思うのですが、コーディングをする際、ローカル環境(Windows)でソース修正したものを、サーバ(Linux等)にFTPで転送して動作確認する、という流れが一般的だと思います。 ただ実際は、いちいちFTP転送するのはめんどうくさいので、ローカルにサーバと同じ環境を構築したり、直接サーバでソース修正をして、動作確認をされる方が多いと思います。 ここで質問なのですが、ローカル(Windows)でソース修正したいのですが、職場の都合により、ローカルにサーバと同じ環境を構築することができません。 そのような場合、ローカルでソースを保存するとサーバにもそれが反映されるようなツールは御座いませんでしょうか? 一回一回手作業でFTP転送をすると、どうしても開発効率が低下してしまいます。ご存知の方は、どうぞ宜しくお願い致します。

    • ベストアンサー
    • Perl
  • ファイル転送(ディレクトリごと)

    ディレクトリごと、LinuxサーバからUnixサーバへ ファイル転送をしたいのです。 ただし、ファイルではなくて ディレクトリごとなのです。 通常のftp >open xx.xx.xx.xx >passwd xxxx っと言う感じでftp接続はできますが、 ディレクトリごとはftp転送できますか? ご存知の方、お教え願えないでしょうか? よろしくお願いいたします。

  • VBAでFTPファイル転送がうまくいかない

    利用環境  access:2003  os:xp このサイトを参考にvbaでFTPでファイル転送を実装しようとしています。 http://www.happy2-island.com/access/gogo03/capter90302.shtml 困っているのは、、エラーがでないのですが、ファイルが転送されないということです。 接続先やUserID,パスワードを間違えた場合は、ちゃんとエラーが表示されますので 接続まではできているのではないかと思いますが、最後のFTPファイル転送がうまくいきません。。 インターネットサービスのオープンとFTPサーバへの接続はうまくいっているようですが fcFTPPutFileの結果が何度やってもFALSEになります。 どのあたりを探れば問題がわかりますでしょうか? ご教示いただけますと助かります。 '■外部サーバーへファイルをアップロード Dim lngRC As Long 'インターネットサービスをオープンします lngRC = fcInternetOpen 'オープンに成功したらFTPサーバとの接続を行います If lngRC = 0 Then 'FTPサーバへ接続します lngRC = fcFTPConnect() '接続に成功したら、FTPサーバからファイルをアップロードします If lngRC = 0 Then Debug.Print Err.LastDllError '●↓この結果がFALSEになってしまい、ファイル転送ができません。。。 Call fcFTPPutFile(送り元ファイルパス&ファイル名_ , 送り先ファイルパス&ファイル名 _ , FTP_TRANSFER_TYPE_ASCII) Else MsgBox エラー内容 End If Else MsgBox エラー内容 End If ●↓この結果がFALSEになってしまい、ファイル転送ができません。。。 Public Function fcFTPPutFile(dLc As String, dRmt As String, dMd As Long) As Boolean 'dLc /ローカルファイル 'dRmt/リモートファイル 'dMd /転送モード 'FTPサーバへファイルをアップロード fcFTPPutFile = FtpPutFile(Pub_lngFtpHnd _ , dLc _ , dRmt _ , dMd _ , 0) End Function

  • ftp_getできない?

    レンタルサーバの自前のファイルサーバからFTP接続にてファイルを取得しようとしているのですが、エラーとなってしまいます。 FTP接続はできているのですが、ファイルの取得に失敗(FALSE)してしまいます。 レンタルサーバの環境は OS:Linux PHP:4.4.1 試しにftp_nlist関数にてファイル一覧を取得しようとしましたが、やはり失敗(FALSE)してしまいます。 知り合いのレンタルサーバを借用して全く同じプログラムを実行すると正常に一覧の取得ができました。 FTP接続時・ログイン時にはエラーが発生していないのでFTPでの転送は可能だと思うのですが、全くわかりません。 どなたか分かる方ご教授お願いします。 以下、スクリプトです。 if($ftp=ftp_connect($ftp_host)){  if(ftp_login($ftp,$ftp_user,$ftp_pass)){   //ファイルリスト一覧取得    $file_list=ftp_nlist($ftp,".");   var_dump($file_list);   //ファイルダウンロード    if(!(ftp_get($ftp,$local_file,$remote_file,FTP_BINARY))){     エラー処理1;    }   }   else{     エラー処理2;   } } else{  エラー処理3; }

    • ベストアンサー
    • PHP

専門家に質問してみよう