Table des matières
Intérêt ?
Vous souhaitez télécharger un gros fichier (plusieurs GB) mais sans surcharger le lien ? Le transfert BITS est fait pour vous (et ce script aussi).
Avantage :
- Gestion par queue
- Taux de transfert modifiable
- Soumis à la QOS
- Capacité de reprise (si le serveur en face l’accepte)
- Téléchargement de fichiers / dossiers sous dossier etc
- Possible téléchargement multiple.
Inconvénient :
- Pas « user-friendly »
Téléchargement standard :

Téléchargement BITS :

Le script :
Dans cette exemple, nous allons télécharger une ISO Ubuntu de quelques giga (voir la variable $source)
Une fois le téléchargement complété, cette ISO sera ensuite stockée dans un répertoire (voir la variable $destination)
Concernant la source, elle peut être :
– Un fichier (dans un répertoire réseau ou sur internet)
– Un répertoire avec des fichiers (dans un répertoire réseau)
Concernant la destination, elle DOIT être :
– Si on récupère un fichier, la destination DOIT être un fichier. Par exemple, si on télécharge un ISO, la destination doit être C:\XXX\XXX\monfichier.iso
– Si on récupère un répertoire/sous répertoire, la destination DOIT être un répertoire.
Les clefs de registre du début sont là pour configurer BITS (débits et mode) Pour le moment, je n’ai pas trouvé d’autres moyens (si quelqu’un à une idée… :p )
Version avec Proxy :
#Configuration de BITS.
REG add "HKLM\SOFTWARE\Policies\Microsoft\Windows\BITS" /v EnableBITSMaxBandwidth /t REG_DWORD /d 1 /f
REG add "HKLM\SOFTWARE\Policies\Microsoft\Windows\BITS" /v MaxBandwidthValidFrom /t REG_DWORD /d 8 /f
REG add "HKLM\SOFTWARE\Policies\Microsoft\Windows\BITS" /v MaxBandwidthValidTo /t REG_DWORD /d 17 /f
REG add "HKLM\SOFTWARE\Policies\Microsoft\Windows\BITS" /v MaxTransferRateOffSchedule /t REG_DWORD /d 90000 /f #valeur à modifier pour brider (en Kbit/s)
REG add "HKLM\SOFTWARE\Policies\Microsoft\Windows\BITS" /v MaxTransferRateOnSchedule /t REG_DWORD /d 90000 /f #valeur à modifier pour brider (en Kbit/s)
REG add "HKLM\SOFTWARE\Policies\Microsoft\Windows\BITS" /v UseSystemMaximum /t REG_DWORD /d 0 /f
#Authentification Proxy
$ProxyCred = Get-Credential -Message "Proxy Auth"
$source = "http://mirrors.phx.ms/ubuntu-cd/18.04.2/ubuntu-18.04.2-desktop-amd64.iso" #exemple : "T:\XXXXX\XXXXX\macon.doc" ou "T:\XXXXX\XXXXX\*.*" pour copier l'ensemble des répertoires/fichiers
$destination = "C:\Tempo\ubuntu.iso" #exemple : "C:\temp\" ou "C:\temp\macon.doc"
Start-BitsTransfer -Source $source -Destination $destination -Priority low -ProxyUsage SystemDefault -ProxyAuthentication basic -ProxyCredential $ProxyCred -TransferType Download
Version sans proxy :
#Configuration de BITS.
REG add "HKLM\SOFTWARE\Policies\Microsoft\Windows\BITS" /v EnableBITSMaxBandwidth /t REG_DWORD /d 1 /f
REG add "HKLM\SOFTWARE\Policies\Microsoft\Windows\BITS" /v MaxBandwidthValidFrom /t REG_DWORD /d 8 /f
REG add "HKLM\SOFTWARE\Policies\Microsoft\Windows\BITS" /v MaxBandwidthValidTo /t REG_DWORD /d 17 /f
REG add "HKLM\SOFTWARE\Policies\Microsoft\Windows\BITS" /v MaxTransferRateOffSchedule /t REG_DWORD /d 90000 /f #valeur à modifier pour brider (en Kbit/s)
REG add "HKLM\SOFTWARE\Policies\Microsoft\Windows\BITS" /v MaxTransferRateOnSchedule /t REG_DWORD /d 90000 /f #valeur à modifier pour brider (en Kbit/s)
REG add "HKLM\SOFTWARE\Policies\Microsoft\Windows\BITS" /v UseSystemMaximum /t REG_DWORD /d 0 /f
$source = "http://mirrors.phx.ms/ubuntu-cd/18.04.2/ubuntu-18.04.2-desktop-amd64.iso" #exemple : "T:\XXXXX\XXXXX\macon.doc" ou "T:\XXXXX\XXXXX\*.*" pour copier l'ensemble des répertoires/fichiers
$destination = "C:\Tempo\ubuntu.iso" #exemple : "C:\temp\" ou "C:\temp\macon.doc"
Start-BitsTransfer -Source $source -Destination $destination -Priority low -TransferType Download
Lancement du script :
Vous devez être administrateur du PC pour pouvoir lancer le script.
Pensez aussi à faire un :
Set-ExecutionPolicy Unrestricted
… pour autoriser l’exécution des scripts.
Lors que vous lancerez le script, le téléchargement se lancera automatiquement, une « barre » de progression s’affichera aussi :

