Datei herunterladen mit PowerShell

Um eine Datei oder mehrere Dateien von einer Internetseite bzw. Webserver herunterladen zu können, kann man den Hintergrundübertragungsdienst BITS verwenden. Um solch eine Datei herunterladen zu können, benötigen wir ein kleines PowerShell Script. Außerdem kann aber auch das CmdLet Invoke-WebRequest verwendet werden.

geralt / Pixabay

 

Was ist BITS ?

Der Background Intelligent Transfer Service ist eine Dienst in den neueren Versionen von Microsoft Windows zur Übermittlung von Daten über das HTTP Protokoll im Hintergrund. Für diesen Transfer von Daten achtet BITS auf ungenutzte Netzwerkressourcen, so dass Dinge wie Streaming, andere Downloads und das Surfen im Internet nicht beeinträchtigt werden.

 

Datei herunterladen mit PowerShell und BITS

ariapsa / Pixabay

So jetzt zum eigentlichen Thema. Um nun einen Datei Download mit PowerShell zu starten, benötigen wir einen PowerShell – Einzeiler. Ist im Endeffekt selbsterklärend 🙂

Start-BitsTransfer -Source http://yourserver.com/yourfile.exe -Destination C:\Downloads\yourfile.exe

 

-Source

…gibt natürlich die Quelldatei an, die heruntergeladen werden soll

 

-Destination

…gibt den Speicherort für den Download an, wo die Datei gespeichert werden soll

 

Datei download starten mit Invoke-WebRequest

Außerdem hat man noch die Möglichkeit mit dem PowerShell CmdLet Invoke-Webrequest einen Datei-Download zu starten. Das Resultat ist das gleiche, wobei bei großen Dateien BITS verwendet werden sollte, da dieser schneller ist. Das wurde an Hand von Zeit-Messungen heraus gefunden.

$url = "http://your.server/share/file.test"
$output = "$PSScriptRoot\file.test"
$starttime = Get-Date

Invoke-WebRequest -Uri $url -OutFile $output
Write-Output "$((Get-Date).Subtract($starttime).Seconds) second(s)"

In der letzten Zeile wird die bereits verstrichene Zeit angegeben, das ist aber lediglich ein Schönheitsfehler.

Johannes Huber
 

In seiner Freizeit macht Johannes nichts lieber, als für ITnator Beiträge zu schreiben. Input bekommt er hierfür von Problemen in der IT Administration von Servern, Clients und vielen weiteren IT Komponenten.

Click Here to Leave a Comment Below 0 comments