2013-04-01 4 views
1

Je suis désolé de continuer à poser des questions sur Powershell, mon script-foo n'est pas ce qu'il doit être.Powershell BitsTransfer ne se termine pas

J'écris un BitsTransfer .PS1 pour automatiser le téléchargement hebdomadaire d'un fichier ASCII.

Il ne semble jamais terminer et atteindre un statut de "transféré" et semble bloqué dans un état de "transfert". Je peux voir un fichier TMP dans mon dossier -Destination, avec mes données ASCII. Lorsque je télécharge manuellement le fichier cible et que je le compare au fichier TMP, il est de la même taille et semble avoir les mêmes premier et dernier enregistrements. Je suppose que le téléchargement est terminé.

Si je lance manuellement Get-BitsTransfer | Complete-BitsTransfer, le fichier TMP disparaît mais toujours pas de fichier -Destination.

Mon script est rien de très sophistiqué ...

$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 

Quelqu'un peut-il me aider à comprendre ce que je fais mal?

Répondre

0

Ceci s'est avéré être un "Royal PITA".

Merci Kieth, pour l'indice.

Je ne pouvais pas BitTransfer travailler correctement et eu recours à quelque chose comme ça ..

$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

Vous avez fait la bonne façon:

Import-Module BitsTransfer 

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

échecs possibles

  1. le paramètre de destination est erroné $dmfpath\TestWA$date.txt
  2. il y a plus de 60 BitTransfers en cours, terminez-les par Get-BitsTransfer | Remove-BitsTransfer