none
Download File through proxy server

    Question

  • Hello !

    I try to download file from site to my hardisk by PowerShell script through non-MS proxy with domain autorization.

    $source = "http://mysite.ru/file.txt"
    $dest = "c:\file.txt"
    $WebClient = New-Object System.Net.WebClient
    $WebProxy = New-Object System.Net.WebProxy("http://proxyserver:port",$true)
    $WebProxy.Credentials = New-Object Net.NetworkCredential("user","password","domain.local")
    $WebClient.Proxy = $WebProxy
    $WebClient.DownloadFile($source,$dest)

    But, when I start this script, I get the error: The request failed with HTTP status 407: Proxy Authentication Required.

    I read the System.Net.WebClient reference and found that Proxy property have a type IWebProxy. But when I try $WebClient = New-Object System.Net.IWebProxy("http://proxyserver:port",$true), I get the message that PowerShell can't find constructor of System.Net.IWebProxy.

    How can I do it right ?


    Andy Mishechkin

    Tuesday, June 19, 2012 6:17 AM

Answers

  • The problem is solved:

    $source = "http://site.com/file.txt"
    $dest = "C:\file.txt"
    $WebClient = New-Object System.Net.WebClient
    $WebProxy = New-Object System.Net.WebProxy("http://myproxy.com:1111",$true)
    $Credentials = New-Object Net.NetworkCredential("user,"","domain.local")
    $Credentials = $Credentials.GetCredential("http://myproxy.com","1111", "KERBEROS");
    $WebProxy.Credentials = $Credentials
    $WebClient.Proxy = $WebProxy
    $WebClient.DownloadFile($source,$dest)


    Andy Mishechkin

    Thursday, June 21, 2012 11:19 AM

All replies

  • Hi Andy,

    Your script works for me. Only when I put wrong crentials I get your erros.
    PS. I have too non-MS proxy and I put only user and password witout domain:

    $WebProxy.Credentials = New-Object Net.NetworkCredential("user","password","")

    Tuesday, June 19, 2012 7:15 AM
  • Possibly I get the error because my proxy (Squid 3.1.16) using the Kerberos for autorization 

    Andy Mishechkin

    Tuesday, June 19, 2012 10:07 AM
  • The problem is solved:

    $source = "http://site.com/file.txt"
    $dest = "C:\file.txt"
    $WebClient = New-Object System.Net.WebClient
    $WebProxy = New-Object System.Net.WebProxy("http://myproxy.com:1111",$true)
    $Credentials = New-Object Net.NetworkCredential("user,"","domain.local")
    $Credentials = $Credentials.GetCredential("http://myproxy.com","1111", "KERBEROS");
    $WebProxy.Credentials = $Credentials
    $WebClient.Proxy = $WebProxy
    $WebClient.DownloadFile($source,$dest)


    Andy Mishechkin

    Thursday, June 21, 2012 11:19 AM