2013-04-01 73 views
1

我很抱歉不斷詢問Powershell,我的腳本-foo不是它需要的。Powershell BitsTransfer沒有完成

我正在寫一個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 

任何人可以幫助我瞭解我在做什麼錯?

回答

0

這原來是一個「皇家皮塔」。

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

你們這樣做是正確的做法:

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