2012-04-11 3 views
5

Sto tentando di utilizzare FTP in PowerShell per caricare un file. Sto usando FtpWebRequest poi seguita da GetRequestStream, ma questo metodo restituisce un errore:Come caricare tramite FTP in PowerShell, dietro un proxy?

"The requested FTP command is not supported when using HTTP proxy."

Sono davvero dietro un proxy e necessario per essere.

Come posso caricare tramite PowerShell dietro un proxy?

Questo dovrebbe essere eseguito esclusivamente da uno script Powershell .ps1.

Ho anche provato:

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

$webclient.UploadFile($uri, "C:\Test\1234567.txt") 

Dove $server e quel file sono validi. Ma questo codice restituisce questo errore:

"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 

Ho provato anche doppi backslash nei percorsi di file, non ha aiutato.

Il proxy che ho sotto tocca solo HTTP e non FTP.

risposta

4

Sei sicuro che il tuo proxy supporta FTP, o è solo HTTP? Vedere questa discussione:

FTP File Upload with HTTP Proxy

Per WebClient Ho usato questo in passato anche se era per l'uso HTTP, ma si potrebbe fare un tentativo:

$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") 

Si noti che - "The Il metodo UploadFile invia un file locale a una risorsa.Questo metodo utilizza il comando STOR per caricare una risorsa FTP.Per una risorsa HTTP, viene utilizzato il metodo POST. "

+0

Ho controllato, e il proxy che ho sotto tocca solo HTTP e non FTP. Sto provando quel codice ma ottenendo 'Exception calling" UploadFile "con argomenti" 2 ":" Si è verificata un'eccezione durante una richiesta di WebClient. " – JBurace