如何使用 PowerShell 5.1 中的 Start-BitsTransfer 异步发送大约一百万个文件?

如何使用 PowerShell 5.1 中的 Start-BitsTransfer 异步发送大约一百万个文件?

我正尝试将大约一百万个不同大小的文件从一台服务器传输到另一台服务器,并且由于各种大小、网络和时间限制,我尝试使用 PowerShell 中的 BITS 进行文件传输。

由于时间限制和接收服务器的访问受限,我无法在发送之前压缩目录。

看来 PowerShell 中同时进行 60 个异步 BITS 传输的限制(未记录?)。

60 个工作开始后,我得到:

Start-BitsTransfer : Object reference not set to an instance of an object.
At line:1 char:14
+ $jobs = $s | Start-BitsTransfer -TransferType Upload -Asynchronous
+              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Start-BitsTransfer], NullReferenceException
    + FullyQualifiedErrorId : System.NullReferenceException,Microsoft.BackgroundIntelligentTransfer.Management.NewBits
   TransferCommand

PowerShell 脚本是:

$s = Get-ChildItem -Recurse | Select-Object -Property @{Name = "Source"; Expression = {$_.Fullname}}, @{Name = "Destination"; Expression = {$_.Fullname.Replace("C:\folder\", "\\server\c$\folder\")}}
$jobs = $s | Start-BitsTransfer -TransferType Upload -Asynchronous

我可以同步运行它,并且可以异步传输单个文件而不会出现问题。

有没有办法尽可能高效地使用 PowerShell 异步传输大约一百万个文件?

相关内容