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在这个循环中正在做什么。好像在预读并为每个文件启动网络会话一样,这对于小型作业来说是很好的选择,但是超时可能需要几天的时间才能完成。