Start-BitsTransfer

Start-BitsTransfer es un cmdlet de PowerShell que se utiliza para descargar o cargar archivos utilizando el Servicio de Transferencia Inteligente en Segundo Plano (BITS) de Microsoft. BITS permite la transferencia de archivos en segundo plano, aprovechando el ancho de banda disponible y reanudando automáticamente las transferencias interrumpidas.

¿Qué es BITS?

El Servicio de Transferencia Inteligente en Segundo Plano (BITS) es una tecnología de transferencia de archivos que facilita la descarga y carga de archivos grandes de manera eficiente y confiable. BITS puede ajustar automáticamente su velocidad de transferencia para no interferir con otras aplicaciones que utilizan la red.

¿Qué hace Start-BitsTransfer?

Start-BitsTransfer permite a los usuarios iniciar una transferencia de archivos (descarga o carga) de manera sencilla. Este cmdlet proporciona control sobre diversas opciones, como la prioridad de la transferencia y la autenticación.

Ejemplos de uso de Start-BitsTransfer

Ejemplo 1: Descargar un archivo desde una URL

Este ejemplo muestra cómo descargar un archivo desde una URL y guardarlo en una ubicación específica en el sistema local.

Start-BitsTransfer -Source "https://example.com/file.zip" -Destination "C:\Downloads\file.zip"

En este caso:

  • -Source especifica la URL del archivo que deseas descargar.
  • -Destination indica la ruta en tu sistema donde deseas guardar el archivo descargado.

Ejemplo 2: Subir un archivo a un servidor

Este ejemplo muestra cómo subir un archivo desde el sistema local a un servidor.

Start-BitsTransfer -Source "C:\Uploads\file.zip" -Destination "https://example.com/upload" -TransferType Upload

En este caso:

  • -Source especifica la ruta del archivo en tu sistema que deseas subir.
  • -Destination indica la URL del servidor donde deseas subir el archivo.
  • -TransferType Upload especifica que la transferencia es una carga (upload).

Ejemplo 3: Descargar varios archivos

Este ejemplo muestra cómo descargar varios archivos en una sola operación.

$files = @(
@{
Source = "https://example.com/file1.zip"
Destination = "C:\Downloads\file1.zip"
},
@{
Source = "https://example.com/file2.zip"
Destination = "C:\Downloads\file2.zip"
}
)

foreach ($file in $files) {
Start-BitsTransfer -Source $file.Source -Destination $file.Destination
}

En este caso:

  • Se crea un array de hashes, donde cada hash contiene la fuente y el destino de cada archivo.
  • Se itera sobre cada archivo en el array y se inicia una transferencia con Start-BitsTransfer.

Ejemplo 4: Descargar un archivo con autenticación

Este ejemplo muestra cómo descargar un archivo desde una URL que requiere autenticación.

$creds = Get-Credential
Start-BitsTransfer -Source "https://example.com/securefile.zip" -Destination "C:\Downloads\securefile.zip" -Credential $creds

En este caso:

  • Get-Credential solicita las credenciales del usuario.
  • -Credential $creds proporciona las credenciales necesarias para autenticar la solicitud de descarga.

Opciones adicionales

Start-BitsTransfer ofrece varias opciones adicionales que permiten personalizar las transferencias:

  • -Priority: establece la prioridad de la transferencia (Foreground, High, Normal, Low).
  • -Asynchronous: inicia la transferencia en modo asíncrono.
  • -Description: proporciona una descripción para la transferencia.
  • -ProxyUsage: configura cómo se utiliza el proxy (Preconfig, NoProxy, Override, Autodetect).