簡體   English   中英

Powershell BitsTransfer未完成

[英]Powershell BitsTransfer does not complete

很抱歉不斷詢問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

有人可以幫助我了解我在做什么錯嗎?

我在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") 

查看此網頁上有關使用Start-BitsTransfer的最后一個示例,看看是否有幫助。

原來是“皇家皮塔餅”。

謝謝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") 

您以正確的方式做到了:

Import-Module BitsTransfer

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

可能的失敗

  1. 目標參數錯誤$dmfpath\\TestWA$date.txt
  2. 有60多個BitTransfers正在運行,以Get-BitsTransfer | Remove-BitsTransfer結尾Get-BitsTransfer | Remove-BitsTransfer Get-BitsTransfer | Remove-BitsTransfer

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM