Como gestionar descargas con PowerShell {HowTo}

hoy veremos como podemos gestionar nuestras descargas utilizando PowerShell. Esta herramienta como ya saben posee una consola avanzada para Windows que nos permite configurar y realizar determinadas tareas en el sistema operativo de Microsoft en modo texto. Aunque no llega al nivel de la terminal de Linux, esta consola es muy útil y potente para realizar configuraciones que no se pueden realizar desde la interfaz e incluso para automatizar determinadas actividades mediante scripts. Esta consola cuenta con una gran cantidad de comandos que nos permiten controlar al máximo Windows, hasta el punto de poder bajar archivos de Internet desde ella.

Lo normal cuando vamos a bajar un archivo de Internet es hacerlo desde el navegador. Seleccionamos el archivo que queremos bajar y lo bajamos al ordenador. Sin embargo, seguro que alguna vez nos hemos encontrado con algunos problemas a la hora de bajar un archivo. O puede que, por algún motivo, el navegador no funcione y tengamos que bajar urgentemente un archivo de Internet.

Y antes de volvernos locos intentando buscar la mejor forma de hacerlo, podemos optar por lo fácil y recurrir a PowerShell.

Descargar archivos con PowerShell

www.radians.com.arPodemos abrir PowerShell fácilmente simplemente haciendo clic sobre la barra de búsqueda de Windows 10 y buscando este programa. Para descargar los archivos no hace falta ejecutar la consola de Windows con permisos de Administrador. Si preferimos ahorrar problemas de permisos, por ejemplo, también funcionarán los comandos al abrir la consola con permisos de Admin.

Una vez que tenemos abierta la ventana de PowerShell, solo nos queda conocer la URL del archivo que queremos bajar. Una vez la tengamos, ejecutamos el siguiente comando en la consola de PowerShell para crear una nueva instancia y preparar el programa para bajar el archivo de Internet:

$client = new-object System.Net.WebClient

A continuación usaremos el método DownloadFile para bajar el archivo. La estructura que tiene que tener el comando que debemos ejecutar es la siguiente:

$client.DownloadFile("URL de descarga","Ruta, nombre y extensión del archivo")

Obviamente debemos cambiar «URL de descarga» por la dirección URL desde la que vamos a bajar el archivo al ordenador, y «Ruta, nombre y extensión del archivo» por el directorio donde queremos guardar el archivo, junto con su nombre y su extensión. Tanto la URL como la ruta de destino del comando deben ir entre comillas dobles, las que se escriben con shift + 2.

Pulsamos «Enter» y comenzará la descarga automáticamente. Esperamos a que finalice y, cuando acabe, la descarga estará en el directorio que le hayamos especificado.

www.radians.com.ar

www.radians.com.ar

En caso de que el servidor requiera de algún tipo de autenticación, podemos autenticarnos con usuario y contraseña directamente desde PowerShell ejecutando el siguiente comando después del «new-object» que hemos explicado antes:

$client.Credentials = Get-Credential

Obviamente esto tiene bastantes limitaciones, pero es muy util para bajar contenido estatico desde algunos sitios donde debemos selccionar muchos archivos. Recuerdo por ejemplo utilizarlo para bajar unas sesiones de un teched de Microsoft, que utilizando el browser hubiese demorado mucho mas.

Saludos.

Obviamente, el poder descargar archivos de Internet con PowerShell nos puede sacar de algún que otro apuro. Pero no es, ni de lejos, la mejor forma de hacerlo. Este sistema de descargas puede ser útil, por ejemplo, en scripts y en tareas de automatización. Incluso para trabajar con copias de seguridad o archivos remotos que se actualizan a menudo. Pero no para el día a día.

Las descargas no son precisamente rápidas, eso para empezar. Además, tampoco vamos a tener ningún control sobre ellas (no podemos pausar y reanudar, ni siquiera cancelar) ni cuenta con sistemas de validación de descargas. Las funciones que nos ofrece PowerShell para bajar archivos de Internet son más bien reducidas. Aunque cumplen con su función

Roberto Di Lello

Acerca del autor: Roberto Di Lello

Hola, soy Roberto Di Lello trabajo como Consultor Senior en Infraestructura, especializado en Tecnologias Microsoft con mas de 25 años en la industria. He sido galardonado como MS-MVP en Active Directory-Enterprise Mobility por 10 años, y actualmente soy MVP Windows Insider, ademas de poseer otras certificaciones de Microsoft. He trabajado en distintos projectos que involucran Migraciones, Implementaciones, y soporte de Active Directory y Microsoft Exchange, y en los ultimos años me he desempeñado armando equipos de trabajo para diferentes paises y areas de sistemas, he planificado a distintas migraciones a datacenters (ambiente cloud y mixtos). He tenido la oportunidad de participar como miembro del staff de Microsoft en eventos internacionales como ser TechEd NorteAmerica y MS Ignite (NA) al ser Trainer Certificado por Microsoft (MCT).

You May Also Like

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.