En este artículo, veremos cómo usar los cmdlets nativos de PowerShell para descargar un archivo a través del protocolo HTTP, HTTPS o FTP. Puede usar cmdlets de PowerShell como una alternativa nativa de wget y rizo herramienta en Windows 10 y Windows Server 2016.
Primero, verifique la versión de PowerShell instalada en su computadora:
$psversiontable
Para las versiones de PowerShell anteriores a la 3.0, el System.Net.WebClient La clase debe usarse para descargar un archivo de Internet. Por ejemplo, en Windows 7 / Windows Server 2008 R2 (en el que PowerShell 2.0 está instalado de forma predeterminada), puede usar los siguientes comandos de PowerShell para descargar un archivo del sitio web HTTP (S) y guardarlo en una unidad local:
$download_url = "https://theitbros.com/wp-content/uploads/2018/08/cropped-logo_fon-1-2.png" $local_path = "C:PStheitbros_logo.png" $WebClient = New-Object System.Net.WebClient $WebClient.DownloadFile($download_url, $local_path)
Para descargar un archivo de un servidor FTP con autorización, debe especificar el nombre de usuario y la contraseña de FTP en el script:
$download_url = "ftp://hpe.com/iso/psp9.2.iso" $local_path = "C:Downloadspsp9.2.iso " $user = "hpeFtpUserName" $pass = "Str0ng3$tPa$$" $WebClient = New-Object System.Net.WebClient $WebClient.Credentials = New-Object System.Net.NetworkCredential($user, $pass) $WebClient.DownloadFile($download_url, $local_path)
En Windows 10, puede usar el Invoke-WebRequest cmdlet para descargar archivos (este cmdlet está disponible en todas las versiones desde PowerShell 3.0). Para descargar un archivo, solo necesita especificar su URL y la carpeta local en la que guardar el archivo:
Invoke-WebRequest https://theitbros.com/wp-content/uploads/2018/08/cropped-logo_fon-1-2.png -OutFile C:pslogo.png
Insinuación. De forma predeterminada, el cmdlet Invoke-WebRequest descarga el archivo en el directorio actual. Si necesita cambiar el directorio y / o el nombre del archivo, use el parámetro –OutFile.
En Windows 10, hay dos alias disponibles para el cmdlet Invoke-WebRequest: rizo y wget.

Entonces, para descargar un archivo del sitio web de Internet, puede usar un comando más corto. En lugar de escribir un nombre de cmdlet completo, puede usar (por ejemplo):
wget https://theitbros.com/backup_file.zip -OutFile C:downloadsbackup.zip
Insinuación. Invoke-WebRequest no realiza una verificación si el archivo de destino existe. Si el archivo ya existe, se sobrescribe sin previo aviso.
Si necesita autenticarse con el usuario actual en un sitio web remoto (a través de NTLM o Kerberos), debe agregar el parámetro –UseDefaultCredentials:
Curl 'http://theitbros.local/file.zip' -UseDefaultCredentials
O puede especificar las credenciales manualmente:
Credentials = Get-Credential Invoke-WebRequest -Uri https://theitbros.com/backup_file.zip -OutFile C:downloadsbackup.zip -Credential $Credentials
Además, puede pasar información en la solicitud de encabezado HTTP. Por ejemplo, configure la clave API:
Invoke-WebRequest -H @{'apiKey'='keyValue'} https://theitbros.com/backup_file.zip -OutFile C:psfile.zip
Si necesita descargar una lista de archivos en un lote, guarde sus URL en un archivo txt simple y use el siguiente comando para iniciar la descarga:
Get-Content urls.txt | ForEach-Object {Invoke-WebRequest $_ -OutFile $(Split-Path $_ -Leaf)}





