0

リモートの安全な ftp サイトへの WebRequest クラスのアップロードを使用したいのですが、Webclient を使用しようとしましたが、あらゆる種類の例外が発生しました。

Filezillaを使用してリモートに接続してファイルをアップロードすることに成功しましたが、powershellを使用してプロセスを自動化したいと言えば十分です。

Client server has windows 2008 R2 standard - powershell version is 2.0

ここに私が実行したコードがあり、その下に私が今得た例外があります

#setup permission + working dir
$user = "ftpclient"
$password = "****"
$localdir = "C:/Extracts/foldern/"
$ftpdir = "ftps://100.100.100.0:900/Outbound"
###########################

$client = New-Object System.Net.WebClient 
$client.Credentials = New-Object System.Net.NetworkCredential($user,$password) 

foreach($item in Get-ChildItem -recurse $localdir)
{ 
    $filename = [system.io.path]::GetFullPath($item.FullName).SubString([system.io.path]::GetFullPath($localdir).Length + 1)
    Write-Host "Send  $item..."
    $file = New-Object System.Uri($ftpdir+"/"+$filename) 
        $client.UploadFile($file, $item.FullName)
 }

Transfert de EDI_CIG_OrbitExtract.zip...
Exception calling "UploadFile" with "2" argument(s): "An exception occurred during a WebClient request."
At line:5 char:31
+             $client.UploadFile <<<< ($file, $item.FullName)
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

Webclient の代わりに Webrequest を使用することについてどこかで読んだことがありますが、方法がわかりません。

どんな援助も大歓迎です

4

1 に答える 1

0

PowerShell Pipeworksには、PowerShell の上に記述された PowerShell モジュールおよび Web 言語である関数があり、FTP にデータをアップロードできます。プッシュ FTP と呼ばれます。

ここに簡単なサンプルがあります。

Push-Ftp -Path c:\Example -Include *.aspx

これは Net.Webclient を使用して構築されているため、気に入らなければ、クラックを開いてどのように機能するかを確認できます。

于 2013-09-19T23:20:00.413 に答える