Tags: Datei-Management, Windows, Kommandozeile
Der Background Intelligent Transfer Service (BITS) ist ein Transferprotokoll von Microsoft, dessen Zweck vor allem darin besteht, Daten so im Hintergrund zu übertragen, dass es dabei nur ungenutzte Bandbreiten konsumiert und die Netz-Performance der aktiven Programme nicht beeinträchtigt. Ein weiterer Vorteil besteht darin, dass BITS eine unterbrochene Dateiübertragung selbständig wieder aufnehmen kann.
Die bekannteste Anwendung, die BITS einsetzt, ist Windows Update, das Patches möglichst unbemerkt auf den Rechner überträgt. Wenn man BITS in eigenen Applikationen verwenden möchte, dann bietet BITS dafür ein API. Allerdings kann man BITS auch der Kommandozeile nutzen, um große Dateien über das Netz zu kopieren. Dafür gibt es unter Windows das Tool bitsadmin.
BITS-fähiger Web-Server erforderlich
Wenn man Dateien mittels BITS über HTTP bzw. HTTPS hinauf- oder herunterladen möchte, dann benötigt man auf der Gegenstelle einen Web-Server, der den Background Intelligent Transfer Service unterstützt. Erwartungsgemäß ist dazu der IIS in der Lage, wenn man die dafür nötige Extension installiert.
Download von UNC-Pfaden möglich
BITS lässt sich aber auch über das Dateisystem einsetzen und akzeptiert als Quellen für Downloads sowohl UNC-Pfade als auch URLs vom Typ file://. Daher kann man BITS nutzen, um große Dateien über das LAN oder vor allem ein WAN zu übertragen, ohne die Leitung zu überlasten.
Job-Steuerung mit bitsadmin
bitsadmin ist wie robocopy ein mächtiges Kommandozeilen-Tool mit zahlreichen Optionen. Die Basisfunktionen lassen sich indes mit relativ wenigen Schaltern erledigen. Im ersten Schritt muss man einen Job anlegen, den man danach mit dem Transfer bestimmter Dateien betraut:
bitsadmin /create <jobname>
Das Tool quittiert diesen Aufruf mit einer solchen Ausgabe:
Created job {BFEDB859-F0E1-45ED-83D8-7F390C4C357E}.
Danach ordnet man dem Job einen Dateitransfer zu:
bitsadmin /addfile <jobname> file://server/pfad/datei.ext C:\pfad\datei.ext
Bei diesem Aufruf folgt <jobname> die Kopierquelle, hinter der man die Zieldatei angeben muss.
Heikle Syntax
Dabei ist zu beachten, dass Letztere nicht nur aus einem Dateinamen besteht, sondern die volle Pfadangabe enthalten muss. Außerdem sind Pfadangaben zu vermeiden, die Leerzeichen enthalten, sie sorgen bei der Job-Ausführung für Probleme. Für größere Kopieraufträge kann man bitsadmin auch mehrere Aufträge erteilen, indem man die Paare aus Quelle und Ziel in eine Textdatei schreibt und ihren mit dem Schalter /addfileset übergibt.
Sobald der Job mit Kopieraufträgen bestückt ist, kann man diese mit
bitsadmin /resume <jobname>
starten. Während die Übertragung läuft, kann man den Status mit
bitsadmin /info <jobname> /verbose
beobachten. Meldet das Programm den Abschluss seiner Tätigkeit, dann wird man im Zielverzeichnis vergeblich nach den gewünschten Dateien suchen. Vielmehr ist noch der Aufruf
bitsadmin /complete <jobname>
notwendig, um den Vorgang ordnungsgemäß abzuschließen.
Täglich Know-how für IT-Pros mit unserem Newsletter
Ähnliche Beiträge
Weitere Links