Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 网络问题后如何恢复bits传输_Powershell - Fatal编程技术网

Powershell 网络问题后如何恢复bits传输

Powershell 网络问题后如何恢复bits传输,powershell,Powershell,我正在使用异步比特传输从远程服务器下载文件,在那里我通过VPN连接。 VPN断开后,有没有办法继续下载 当我开始下载,然后暂停我的VPN,并在几秒钟后恢复它位传输失败与TransientError $transferCredentail = Get-Credential $transferJob = Start-BitsTransfer -Source "\\remoteserver\path\filename" -Credential $transferCredentail -Destinat

我正在使用异步比特传输从远程服务器下载文件,在那里我通过VPN连接。 VPN断开后,有没有办法继续下载

当我开始下载,然后暂停我的VPN,并在几秒钟后恢复它位传输失败与TransientError

$transferCredentail = Get-Credential
$transferJob = Start-BitsTransfer -Source "\\remoteserver\path\filename" -Credential $transferCredentail -Destination C:\Temp -Description "Test" -Asynchronous

while (($transferJob.JobState -eq "Transferring") -or ($transferJob.JobState -eq "Connecting"))
{
    Write-Output $transferJob.JobState
    sleep 5;
}

Switch($transferJob.JobState)
{
    "Transferred" {Complete-BitsTransfer -BitsJob $transferJob}
    "Error" {$transferJob | Format-List } # List the errors.
    default 
    {
        Write-Output $transferJob.JobState
        "Other action"
    }
}

对于挂起的作业,可以在switch语句中添加以下内容。我忘记了当出现网络问题时bitstransfer作业会进入什么状态,我认为它已挂起,但如果这不起作用,您可以将其添加到默认条件中,并添加一个if条件来处理传输状态以外的任何情况


这将恢复当前用户拥有的所有BitsTransfer作业。如果你有一个工作的名字,你可以引用这个名字。

解决方法很简单。只需在while循环中检查TransientError状态。一段时间后,作业状态切换回传输状态,下载成功完成

while (($transferJob.JobState -eq "Transferring") -or ($transferJob.JobState -eq "Connecting") -or ($transferJob.JobState -eq "TransientError"))
{
    Write-Output $transferJob.JobState
    sleep 5;
}

谢谢你的帮助。我解决的有点不同。bitstransfer做多播吗?
while (($transferJob.JobState -eq "Transferring") -or ($transferJob.JobState -eq "Connecting") -or ($transferJob.JobState -eq "TransientError"))
{
    Write-Output $transferJob.JobState
    sleep 5;
}