Powershell FTP复制失败取决于文件的数量和大小

Powershell FTP复制失败取决于文件的数量和大小,powershell,ftp,Powershell,Ftp,我需要在几个FTP上复制几个文件 我使用写FTP功能。它的各种版本在网上流传,等等 问题是复制失败取决于文件和其他语句的数量。以下是测试代码: . ".\Write-FTP.ps1" $ftp = "ftp://10.35.3.66//var/www/html/" $files=@() @(1..151) | %{ $files += "File1.zip"} ForEach( $file in $files) { $file Write-Ftp $fil

我需要在几个FTP上复制几个文件

我使用写FTP功能。它的各种版本在网上流传,等等

问题是复制失败取决于文件和其他语句的数量。以下是测试代码:

. ".\Write-FTP.ps1"

$ftp = "ftp://10.35.3.66//var/www/html/"

$files=@()
@(1..151) | %{ $files += "File1.zip"}

ForEach( $file in $files) {
        $file
        Write-Ftp  $file $ftp @("user", "pass")
        #[System.GC]::Collect()
}
在我的系统上,150个文件可以工作,但151st将发出错误。如果我取消对GC.Collect的注释,它将在3个文件之后失败。File1.zip是空的zip文件。以下是输出:

---------- PowerShell ----------
File1.zip
File1.zip
File1.zip
Exception calling "GetRequestStream" with "0" argument(s): "The remote server r
eturned an error: (500) Syntax error, command unrecognized."
At D:\Work\ISPPlus\_novi\Write-FTP.ps1:17 char:30
+         $rs = $ftp.GetRequestStream <<<< ()
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException
------------PowerShell----------
File1.zip
File1.zip
File1.zip
使用“0”参数调用“GetRequestStream”时出现异常:“远程服务器r”
返回错误:(500)语法错误,无法识别命令。“
在D:\Work\isplus\\u novi\Write FTP.ps1:17 char:30
+$rs=$ftp.GetRequestStream我找到了

在上述测试文件的特定情况下,通过的是提前创建凭证对象:

$cr = New-Object System.Net.NetworkCredential("aplikacija", "aplikacija")
ForEach( $file in $files) {
        $file
        Write-Ftp $file $ftp $cr
}
将FtpWebRequest的KeepAlive选项设置为false也有效