Logo faq-o-matic.net
Logo faq-o-matic.net

Background Intelligent Transfer Service (BITS) für eigene Downloads benutzen

von veröffentlicht am18. Juli 2011, 06:14 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: Netzwerk, Windows   Translate with Google Translate Translate EN   Die angezeigte Seite drucken

Dieser Beitrag erschien zuerst auf Bents Blog.

Diejenigen die sich schon einmal intensiv mit Windows Updates und dem Windows Server Updates Services (WSUS) beschäftigt haben, kennen vermutlich den BITS (Background Intelligent Transfer Service) – zu Deutsch: Intelligenter Hintergrundübertragungsdienst. Doch was macht diesen Dienst nun intelligent und wofür kann ich ihn eventuell selber nutzen?

Es kommt bei meiner Arbeit nicht selten vor, dass ich eine größere Installation auf einem entfernten Kundensystem plane, für die zuvor einige Dateien (ISO-Abbilder, Installationspakete etc.) heruntergeladen werden müssen. Bevor ich nun gebrannte DVDs via Post versende oder die Dateien direkt herunterlade und so die Internetverbindung des Kunden “belaste”, nutze ich lieber eine bereits im Betriebssystem enthaltene Funktion: den BITS.

Funktionsweise

Der intelligente Hintergrundübertragungsdienst (BITS) verwaltet auf einem Standardsystem unter Windows typischerweise Downloads von Windows Update (auch WSUS). Dazu misst er während der Download-Vorgänge ständig die verfügbare Bandbreite des Systems – benötigen andere Anwendungen oder Dienste die volle Bandbreite, so pausiert BITS seine Download-Jobs. Dabei überträgt BITS die Daten im Hintergrund über HTTP oder auch HTTPS als Systemdienst. Jeder Download-Auftrag besteht wenigstens aus einer Quell-Datei (URL) und einem Ziel (Pfad).

How-To oder wie nutze ich BITS für meine Downloads?

Typischerweise nutze ich für meine Hintergrund-Downloads auf entfernten Systemen die folgenden Komponenten – vorausgesetzt der Intelligente Hintergrundübertragungsdienst (BITS) und das .NET Framework 2.0 sind installiert (beides ist unter Windows Server 2008 der Fall):

  • Gruppenrichtlinien-Einstellung (für die Begrenzung der genutzten Bandbreite)
  • NetSpeedMonitor (zur Kontrolle der Download-Rate)
  • BITS Download Manager (für das Anlegen von Download-Aufträgen)

Vor dem ersten Download sollte man mit Hilfe der Gruppenrichtlinien (entweder bei einer Domäne zentral administriert oder via gpedit.msc für die lokale Richtlinie) eine maximale Bandbreitenbeschränkung definieren, um die Bandbreite der Internetverbindung (die auch andere Benutzer verwenden) nicht zu blockieren. Dies geschieht in der Computerkonfiguration der Richtlinie im Zweig Administrative Vorlagen, Netzwerk, Intelligenter Hintergrundübertragungsdienst (BITS):

Die Einstellung Maximale Netzwerkbandbreite für BITS-Übertragungen im Hintergrund begrenzen sorgt nun dafür, dass die verwendete Bandbreite für Haupt- und Nebengeschäftszeiten limitiert werden kann – im folgenden Beispiel von 8.00 Uhr bis 17.00 Uhr auf 100 kBit/s in der übrigen Zeit auf 100.000 kBit/s:

Wer dieser Einstellung nicht traut, kann selbige mit Hilfe des (überaus nützlichen) Tools NetSpeedMonitor von Florian Gilles kontrollieren. Dieses Programm (verfügbar als 32 Bit- und 64 Bit-Version, ab Windows Server 2003) bietet nach der Installation eine eigene Symbolleiste in der Taskleiste, auf der die aktuellen Download- und Uploadwerte für eine gewählte Netzwerkverbindung angezeigt werden und ist zudem kompakt und granular konfigurierbar:

Nach dem Download und der Installation des (schon etwas betagten) BITS Download Managers können nun URLs zum Download hinzugefügt werden. Die Downloads starten anschließend automatisch und können auch manuell pausiert, gestoppt oder gelöscht werden:

Wie schon erwähnt, kann das Programm nach dem Hinzufügen und während der Ausführung eines Auftrages geschlossen werden, die Download-Rate wird automatisch durch die Gruppenrichtlinie Uhrzeit-bedingt angepasst wird. Eine feine Sache, wie ich finde.

Bei der Erstellung eines Download-Auftrages erstellt der BITS im Zielverzeichnis eine temporäre Datei (BITxxxx.tmp) mit der Größe der Quelldatei, die dann “gefüllt” wird – somit wird der vollständige Speicherplatz im Vorfeld reserviert.

Alternativ kann man zum BITS Download Manager auch das BITSAdmin Tool von Microsoft verwenden, es ist in den Support Tools des Betriebssystems enthalten (ab Windows Server 2003 SP1). Seit Windows Server 2008 ist dieses Programm zwar bereits nach der Installation verfügbar, es wird aber empfohlen, die BITS Powershell CmdLets zu nutzen, die innerhalb der Powershell einmalig importiert werden müssen:

Import-Module BitsTransfer

Allerdings muss bei diesen Tools auf eine grafische Oberfläche verzichtet und mit der Kommandozeile vorlieb genommen werden – die Funktionsweise ist die gleiche.

Problem der Download-Pausierung bei Abmeldung

Hat man einen BITS-Job (und eine Datei) angelegt, so ist man automatisch Eigentümer (Owner) dieses Auftrags. Dies lässt sich leicht mit Hilfe des Befehls

bitsadmin /list /allusers /verbose

kontrollieren. Meldet sich nun der Benutzer vom betreffenden System ab, wird auch der Download pausiert (der Status wechselt von TRANSFERRING in QUEUED). Dieses Verhalten lässt sich aber durch einen kleinen Trick umgehen:

Zunächst benötigen wir die GUID des BITS-Jobs, die man mit Hilfe des zuvor beschriebenen Befehls erhält. Des weiteren benötigt man das Tool psexec von Sysinternals um im Anschluss den Eigentümer des Jobs zu ändern:

psexec -s bitsadmin /takeownership {GUID}

Durch die Option -s führt PsExec den Folgebefehl als Systemkonto aus – dadurch wird der Owner des Jobs in NT-AUTORITÄT\SYSTEM geändert. Meldet man sich nun von dem Server ab, so kann man leicht von einem anderen System mit dem Befehl

psexec -s \\<Server> bitsadmin /getbytestransferred {GUID}

den Fortschritt des entsprechenden Jobs prüfen. Somit muss man für einen eigenen Download mit BITS nicht am System angemeldet bleiben. Einziger Nachteil ist, dass der BITS Download Manager nun die Jobs nicht mehr anzeigt (da der Eigentümer geändert wurde), dies muss man nun mit dem bitsadmin-Tool oder den Powershell-Befehlen erledigen.

Fazit

Wer ab und zu größere Downloads im Hintergrund auf Servern durchführen will, ohne dabei die Internetverbindung zu Hauptgeschäftszeiten zu blockieren bzw. zu beeinflussen – für den ist die Nutzung des BITS eine gute und praktikable Lösung. Downloads werden bei Unterbrechung automatisch fortgesetzt, die zu nutzende Bandbreite ist limitiert. Mit Hilfe des BITS Download Managers kann man sich schnell einen Fortschritts-Überblick verschaffen oder Aufträge hinzufügen oder abbrechen.

Mit Hilfe des beschriebenen Workarounds kann man sich auch vom System abmelden und die Downloads werden im Hintergrund heruntergeladen.

© 2005-2023 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!