Powershell - Utiliser le transfert de fichiers par BITS
Pour me soutenir, vous pouvez vous abonner à la chaîne, partager et liker les vidéos, désactiver votre bloqueur de pub ou encore faire un don. Merci!
Bonjour,
BITS (Background Intelligent Transfer Service) est un service Windows qui permet d’effectuer des transferts de données. Il permet de : - Définir une priorité de bande passante réseau - Suspendre et reprendre un transfert - De transférer en mode synchrone ou asynchrone - Télécharger ou envoyer des données - Reprendre le transfert après un redémarrage
# Effectuer un téléchargement avec BITS$Params = @{ Source = 'https://github.com/PowerShell/PowerShell/releases/download/v7.2.2/PowerShell-7.2.2-win-x64.msi' Destination = 'd:\PowerShell-7.2.2-win-x64.msi' DisplayName = 'Test' Priority = 'Normal'}$job = Start-BitsTransfer @Params -Asynchronous# Par défaut, le transfert BITS s'effectue en mode synchrone avec priorité haute (foreground).# Pas de caractère générique pour les adresses en HTTP ou HTTPS
# Lister les transfertsGet-BitsTransfer
# Afficher les jobs BITS de tout le mondeGet-BitsTransfer -AllUsers
# Suspendre un transfert$job | Suspend-BitsTransfer
# Reprendre un transfert$job | Resume-BitsTransfer -Asynchronous# Par défaut, le transfert est relancé en mode synchrone même s'il était lancé en asynchrone initialement.# Vous pouvez reprendre le transfert après un redémarrage
# Compléter les transferts terminésGet-BitsTransfer | Where-Object Jobstate -eq Transferred | Complete-BitsTransfer# En mode asynchrone, un fichier temporaire est créé, Complete-BitsTranfer permet de générer le fichier final.# Si le fichier final est déjà présent, il ne sera pas écrasé et restera dans l'état fichier temporaire
# Récupérer un fichier à partir d'un partage$DriveParams = @{ name = 'drive' PSProvider = 'FileSystem' Root = '\\10.0.0.253\iso' cred = Get-Credential }New-PSDrive @DriveParams# Il est nécessaire de créer un lecteur sinon une erreur chemin non trouvé est renvoyé# pour le chemin SMB dans Start-BitsTransfer
$Params = @{ Source = 'drive:\fr-fr_windows_11_business_editions_x64_dvd_95aa5eee.iso' Destination = 'c:\' DisplayName = 'Test2'}Start-BitsTransfer @Params -Asynchronous# Il n'est pas nécessaire de spécifier le nom du fichier de destination pour les chemins UNC
# Ajouter des fichiers supplémentaires à une tâche$Params = @{ Source = 'drive:\fr-fr_windows_server_2022_x64_dvd_9f7d1adb.iso' Destination = 'c:\'}Get-BitsTransfer -Name test2 | Add-BitsFile @ParamsGet-BitsTransfer -Name test2 | Select-Object displayname, filelistGet-BitsTransfer | Complete-BitsTransfer
# Envoyer un fichier local sur un partage$Params = @{ Source = 'C:\PowerShell-7.2.2-win-x64.msi' Destination = '\\10.0.0.253\iso\' DisplayName = 'Test3'}Start-BitsTransfer @Params -AsynchronousGet-BitsTransfer | Complete-BitsTransfer
# Spécifier des paramètres d'authentification (Basic, Digest, NTLM, Negotiate ou Passport)Start-BitsTransfer -source http://10.0.0.1/fichier.iso -destination c:\temp\fichier.iso `-asynchronous -Authentication NTLM -Credential (Get-Credential)
# Modifier un transfert en cours, la priorité dans cet exemple :$Job | Set-BitsTransfer -Priority 'Foreground'
# Supprimer la tâche$Job | Remove-BitsTransfer
# Supprimer toutes les tâches de tous les utilisateurs (en cours ou non)Get-BitsTransfer -Allusers | Remove-BitsTransfer -Confirm:$False
# Transférer plusieurs fichiers HTTP(S) à partir d'un CSV# Créer un fichier (liste.csv dans l'exemple) avec le contenu suivant :Source,Destinationhttps://serveur/fichier1.txt,c:\dossier\fichier1.txthttps://serveur/fichier2.txt,c:\dossier\fichier2.txt
Import-CSV liste.csv | Start-BitsTransfer -AsynchronousGet-BitsTransfer | Select-Object displayname,filelist
# Envoyer plusieurs fichiers sur un partage (ou l'inverse)# Vous pouvez utiliser des caractères génériques avec les chemins UNC$Params = @{ Source = 'C:\demo\*' Destination = '\\10.0.0.253\iso\' DisplayName = 'Test6'}Start-BitsTransfer @Params -AsynchronousGet-BitsTransfer | Complete-BitsTransfer
Liens en relation
Powershell - Tester la connectivité réseau et l'accessibilité aux ports
Tester la connectivité réseau et l'accessibilité aux ports avec PowershellPowershell - Afficher les connections réseau (équivalent de netstat)
Afficher les connections réseau (ports en écoute, connections actives...)Powershell - Tester la résolution de nom (équivalent de nslookup)
Commandes Powershell permettant de tester la résolution de nom (équivalent de nslookup)Powershell - Afficher et gérer la configuration DNS des interfaces réseau
Commandes Powershell permettant d'afficher et de gérer la configuration DNS des interfaces réseauPowershell - Gérer la configuration IP des interfaces réseau
Commandes Powershell permettant d'afficher et de modifier la configuration IP des interfaces réseauPowershell - Gérer l'état et la configuration des interfaces réseau
Commandes Powershell permettant d'afficher et de modifier l'état et la configuration des interfaces réseau (désactiver l'IPv6, activer/désactiver une interface)
Suivez-moi sur
Soutenez-moi
Contenu récent
Powershell - Tester la connectivité réseau et l'accessibilité aux ports
Powershell - Afficher les connections réseau (équivalent de netstat)
Powershell - Tester la résolution de nom (équivalent de nslookup)
Powershell - Afficher et gérer la configuration DNS des interfaces réseau
Powershell - Gérer la configuration IP des interfaces réseau
Powershell - Gérer l'état et la configuration des interfaces réseau
Powershell et le left hand side
Powershell - Gérer les disques, les partitions et les volumes
Powershell - Gérer les points de restauration système sous Windows