ftpwebrequest适用于Windows 7而不适用于Windows Server

时间:2012-08-22 22:40:31

标签: powershell ftpwebrequest

所以我连接到z / OS ftp服务器。我使用下面的代码尝试使用Powershell 2.0下载文件。此代码适用于Windows 7,但在Windows Server 2003或Windows Server 2008 R2上,我收到错误:

System.Net.WebException:远程服务器返回错误:(501)参数或参数中的语法错误。

除了操作系统的不同之外,没有任何参数被更改,没有防火墙或其他因素似乎在起作用(我可以告诉)。

我使用的代码如下:

function Get-FTPFile ($Source,$Target,$UserName,$Password) 
 { 
      $ftprequest = [System.Net.FtpWebRequest]::create($Source) 
      $ftprequest.Credentials = New-Object      System.Net.NetworkCredential($username,$password) 
      $ftprequest.Method = [System.Net.WebRequestMethods+Ftp]::DownloadFile 
      $ftprequest.UseBinary = $false 
      $ftprequest.KeepAlive = $false 

      $ftpresponse = $ftprequest.GetResponse() 
      $responsestream = $ftpresponse.GetResponseStream() 

      $targetfile = New-Object IO.FileStream ($Target,[IO.FileMode]::Create) 
      [byte[]]$readbuffer = New-Object byte[] 1024 

      do{ 
          $readlength = $responsestream.Read($readbuffer,0,1024) 
          $targetfile.Write($readbuffer,0,$readlength) 
      } 
      while ($readlength -ne 0) 

      $targetfile.close() 
  }

是的,UseBinary必须为false。我正在下载一个文本文件,如果useBinary设置为true,它会出现乱码。

有没有人见过这个?

0 个答案:

没有答案