Powershell长网络复制和信号灯超时

时间:2019-02-12 16:54:13

标签: powershell timeout semaphore

Powershell(5.0)是否在网络文件传输开始之前对其进行初始化?

想象一下,这是一个从Server 2008 R2 SMB共享中复制TB文件的脚本,通过缓慢的链接需要花费几天甚至几天的时间。

$remoteFiles = get-childitems -File -Recurse M:\Storage

foreach($remoteFile in $remoteFiles)
{
copy-item $remoteFile -Destination e:\
}

在第2天的某个时候,它将为复制项任务引发Semaphore Timeout错误。

但这对于整个多日转账来说都可以正常运行...

$remoteFiles = get-childitems -File -Recurse M:\Storage

While($remoteFiles)
{
     foreach($remoteFile in $remoteFiles[0..1])
     {
         copy-item $remoteFile -Destination e:\
         #...Some funtion to remove this $remoteFile from $remoteFiles... you get the idea
     }
}

所以我想知道Powershell在这个循环中正在做什么。好像在预读并为每个文件启动网络会话一样,这对于小型作业来说是很好的选择,但是超时可能需要几天的时间才能完成。

0 个答案:

没有答案