【问题标题】:Powershell BitsTransfer does not completePowershell BitsTransfer 未完成
【发布时间】:2013-04-01 20:41:54
【问题描述】:

很抱歉一直询问有关 Powershell 的问题,我的 script-foo 不是它需要的。

我正在编写一个 BitsTransfer .PS1 来自动每周下载一个 ASCII 文件。

它似乎从未完成并达到“已转移”状态,并且似乎停滞在“正在转移”状态。我可以在我的 -Destination 文件夹中看到一个 TMP 文件,其中包含我的 ASCII 数据。

当我手动下载目标文件并将其与 TMP 文件进行比较时,它们的大小相同,并且似乎具有相同的第一条和最后一条记录。我假设下载完成。

如果我手动运行 Get-BitsTransfer | Complete-BitsTransfer,TMP文件消失,但仍然没有-Destination文件。

我的脚本并不复杂...

$date= Get-Date -format yyMMdd
$ntispasswd = ConvertTo-SecureString "*******" -AsPlainText -Force
$ntiscreds = New-Object System.Management.Automation.PSCredential ("*******", $ntispasswd)
$jobdescriptor = "DMFWA" + $date
$dmfpath = "C:\DMF"

# -Source https://dmf.ntis.gov/dmldata/weekly/WA$date `

Import-Module BitsTransfer

Start-BitsTransfer `
    -DisplayName $jobdescriptor `
    -Priority High `
    -ProxyUsage Override `
    -ProxyList mckwebfilt1:3128 `
    -RetryInterval 60 `
    -TransferType Download `
    -Source https://dmf.ntis.gov/dmldata/weekly/WA130322 `
    -Destination $dmfpath\TestWA$date.txt `
    -Authentication Basic `
    -Credential $ntiscreds `
    -Asynchronous

$job = Get-BitsTransfer $displayname

While($Job.Jobstate -ne 'Transferred'){
    $job
    Start-Sleep -s 1
}

Complete-BitsTransfer $job

谁能帮我理解我做错了什么?

【问题讨论】:

    标签: powershell microsoft-bits


    【解决方案1】:

    你做对了:

    Import-Module BitsTransfer
    
    Start-BitsTransfer -Source $url -Destination $output -Asynchronous    
    Get-BitsTransfer | Complete-BitsTransfer
    

    可能的故障

    1. 目的参数错误$dmfpath\TestWA$date.txt
    2. 有超过 60 个 BitTransfer 正在运行,以 Get-BitsTransfer | Remove-BitsTransfer 结束它们

    【讨论】:

      【解决方案2】:

      我在 BitsAdmin 上花费了太多时间来尝试传输一个从未完成的文件,因为服务器没有给出文件长度。

      Start-BitsTransfer : Die Dateigröße wurde vom Server nicht zurückgegeben. 
      Möglicherweise enthält die URL dynamischen Inhalt. Der
      Inhaltslängenheader ist in der Server-HTTP-Antwort nicht verfügbar.
      In Zeile:1 Zeichen:1
      + Start-BitsTransfer http://***/file c:\users\***\file.txt
      + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      + CategoryInfo          : InvalidOperation: (:) [Start-BitsTransfer],Exception
      + FullyQualifiedErrorId :
      StartBitsTransferCOMException,Microsoft.BackgroundIntelligentTransfer.
        Management.NewBitsTransferCommand
      

      在 Powershell 中使用 Start-BitsTransfer 尝试相同的操作后,行为相同。

      这个解决方案真的很棒,也解决了我的问题!谢谢!

      $request = New-Object System.Net.Webclient
      $passwd = ConvertTo-SecureString "**" -AsPlainText -Force
      $request.Credentials = New-Object System.Management.Automation.PSCredential ("**", $passwd)
      $request.Downloadstring("https://my full target url") 
      

      【讨论】:

        【解决方案3】:

        查看web page about using Start-BitsTransfer 的最后一个示例,看看是否有帮助。

        【讨论】:

          【解决方案4】:

          这竟然是“皇家皮塔”。

          谢谢 Kieth 的提示。

          我无法让 BitTransfer 正常工作,于是求助于这样的事情..

          $request = New-Object System.Net.Webclient
          $passwd = ConvertTo-SecureString "**" -AsPlainText -Force
          $request.Credentials = New-Object System.Management.Automation.PSCredential ("**", $passwd)
          $request.Downloadstring("https://my full target url") 
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-03-17
            • 1970-01-01
            • 1970-01-01
            • 2014-11-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多