如何在Powershell中使用FTP上传代理服务器?

JBu*_*ace 5 ftp powershell proxy

我试图在Powershell中使用FTP来上传文件.我FtpWebRequest稍后使用GetRequestStream,但此方法返回错误:

"使用HTTP代理时不支持请求的FTP命令."

我确实支持代理,并且必须是.

如何在代理服务器后面通过Powershell上传?

这将仅从.ps1Powershell脚本运行.

我也尝试过:

$webclient = New-Object System.Net.WebClient
$uri = New-Object System.Uri($server)

$webclient.UploadFile($uri, "C:\Test\1234567.txt")
Run Code Online (Sandbox Code Playgroud)

哪个$server和那个文件有效.但该代码返回此错误:

"An exception occurred during a WebClient request."
At C:\Test\script.ps1:101 char:26
+     $webclient.UploadFile <<<< ($uri, "C:\Test\1234567.txt")
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException
Run Code Online (Sandbox Code Playgroud)

我也试过文件路径中的双反斜杠,没有帮助.

我所处的代理仅触及HTTP,而不是FTP.

And*_*ndi 4

您确定您的代理支持 FTP,还是仅支持 HTTP?请参阅此线程:

使用 HTTP 代理上传 FTP 文件

对于 WebClient,我过去使用过它,虽然它是用于 HTTP 使用的,但你可以尝试一下:

$wc = New-Object System.Net.WebClient
$wc.Headers.Add("User-Agent","Mozilla/4.0+")        
$wc.Proxy = [System.Net.WebRequest]::DefaultWebProxy
$wc.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
$wc.UploadFile($uri, "C:\Test\1234567.txt")
Run Code Online (Sandbox Code Playgroud)

请注意 - “UploadFile 方法将本地文件发送到资源。该方法使用 STOR 命令上传 FTP 资源。对于 HTTP 资源,使用 POST 方法。”