Gente instalando software

Cada sistema operativo tiene sus ventajas e inconvenientes. No por ser un producto de alta gama Mac OS es el mejor sistema operativo del mundo. Ni por ser el más usado lo es Windows. Y tampoco por ser libre y gratuíto lo es GNU Linux. Cada uno tiene sus puntos fuertes y débiles. Los que tenemos que pasar de un sistema a otro contínuamente lo vemos día a día. Y si hay algo que diferencia a estos tres sistemas casi radicalmente es la forma en la que se instalan programas nuevos en cada uno de ellos.

Uy, en eso tengo que darte la razón. En Mac OS es poco más que arrastrar programas y en Windows es hacer doble click en un archivo de instalación. Sin embargo en linux hay que meter unos comandos complicadísimos desde el terminal que...

Espera Usuario Anónimo. Antes de que metas más la pata, es bueno recordar que estos tres sistemas ya tienen tienda de aplicaciones (y sí… el último en implementarla ha sido Windows, al igual que fue el último en implementar escritorios múltiples y tantas otras cosas). Pero te voy a hacer un apunte muy importante: ese sistema que tiene Linux y que tan complicado te resulta para instalar y actualizar programas a través del terminal del sistema tiene partes muy positivas. Puede ser un poco complicado de entender al principio, pero gracias a él puedes hacer instalaciones de un montón de programas diferentes desde una única línea de comandos. Tener la posibilidad de usar algo similar en windows es muy interesante, sobre todo para un administrador de sistemas de una pequeña empresa.

¿Seguro que te has tomado hoy la medicación? ¿Cómo le va a interesar a alguien instalar cosas en windows a través de un terminal si puedes instalar programas descargándotelos o entrando en la tienda de aplicaciones de Microsoft?
Gente usando software

Te voy a poner un ejemplo con el que lo vas a entender a la primera. Imagina que por el motivo que sea tienes que instalar 4 portátiles en tiempo record. Necesitas instalarles un montón de software y te va a llevar su tiempo ir instalándolos uno a uno, y eso para cada portátil por separado. Estos equipos no son parte de un dominio, por lo que no puedes optar por hacer instalaciones desatendidas desde el propio servidor ¿No te parecería interesante poder ejecutar un único comando que instalara todo el software que necesitas de una única vez? Es más… imagínate que esos ordenadores tengan ya todo instalado pero te gustaría actualizar todos sus programas ¿No estaría bien poner un único comando en su terminal y que absolutamente todo el software instalado se actualizara a su última versión como por arte de magia? Y por supuesto hacer todo esto sin gastar un duro, sin usar utilidades de terceros ni programas con publicidad invasiva.

A ver... visto así eso estaría muy bien, pero esto que planteas simplemente no se puede hacer en Windows. Windows no es linux. Todo es gráfico y no se puede...

¡Quieto parao! Porque sí que se puede. Para eso tenemos un comando muy útil en Windows 10 y Windows 11 llamado Winget. Escribiendo una única linea puedes instalar de golpe varios cientos de programas en un mismo equipo. Así que en este artículo vamos a explicar cómo podemos usar winget para hacer instalaciones de software desatendidas. Pero también voy a intentar no meterme en aspectos demasiado técnicos para que cualquiera sin demasiados conocimientos informáticos pueda seguir fácilmente las explicaciones.

1) Conceptos básicos para usar winget.

Lo primero que tenemos que tener claro es que Winget se trata de una herramienta que se usa a través de un terminal (Que viene a ser algo muy similar al antediluviano «MS-DOS»). Podemos lanzar este terminal abriendo el menú inicio y buscando la palabra «CMD». Nos saldrá que la mejor coincidencia respecto a lo que hemos escrito es el «Símbolo del sistema», así que pulsamos en ese resultado de la búsqueda.

Cómo abrir cmd

Pero también podemos usar winget invocando un terminal de PowerShell (que viene a ser algo similar al «CMD» pero mucho más moderno y potente). Podemos llegar a él haciendo el mismo procedimiento.

Cómo abrir powershell

En cualquiera de estos terminales podemos probar a escribir simplemente «winget» y pulsar la tecla «Enter» para ver instrucciones básicas de cómo se usa. Os debería salir algo como ésto.

Opciones de Winget
¡Pues te has colao, alelao! A mi me pone que ese comando no existe. ¿Estás seguro de que esto está presente en Windows 11?

Efectivamente, me he encontrado algún equipo que no disponía de esta herramienta a la primera. Si no la tenéis, podéis acudir a la tienda de aplicaciones de Microsoft, buscarla e instalarla desde ahí, aunque si no me equivoco en todos los Windows Pro debería venir instalada por defecto.

Instalar Winget desde la tienda de windows.
Ya, pero Windows Server 2016, 2019 y 2021 a pesar de estar basados en Windows 10 no tienen la tienda de aplicaciones, listillo. 

Tú como siempre poniendo problemas. Efectivamente: no hay tienda de aplicaciones en esas versiones de Windows Server. A pesar de que hay gente por internet que se ha buscado la vida para usar Winget de forma extraoficial en esas versiones de Windows Server, no recomiendo hacer nada que afecte a la estabilidad de un servidor, así que olvídate de usar este método en servidores.

Bueno… como os decía tenemos ya instrucciones en pantalla para usar Winget. Así que vamos a hacer nuestra primer comando para probar sus características. Vamos a instalar un programa llamado Audacity, pero primero debemos saber cómo se llama dentro de Winget.

¿Cómo que cómo se llama? Pues se llamará Audacity, claro. ¿O acaso tú te llamas de día Marcos y de noche Mari Consuelo? Mmmm...

No tienes remedio. A ver… puede ser que haya varios programas que se llamen de la misma forma. Se me vienen a la cabeza así a botepronto unos cuantos llamados «Spark». Así que para distinguir distintos programas, Winget los nombra con algo parecido a un nombre y un apellido. Son algo así como dos palabras separadas por un punto que hacen que cada programa tenga un identificador único. Para saber cómo se llama «Audacity» dentro de winget debo teclear «winget search» y luego el nombre del programa. En este caso teclearé lo siguiente:

winget search audacity

Y nos debería salir algo como esto.

Winget search spotify

Como podéis ver nos propone varios resultados. En este caso (y gran parte de las veces) el nombre y el apellido coinciden, así que el «nombre completo» de lo que vamos a instalar es «Audacity.Audacity».

Ahora que sabemos qué es lo que vamos a instalar, podemos usar el comando «winget install», seguido del nombre del programa a instalar. En nuestro ejemplo teclearemos lo siguiente:

winget install Audacity.Audacity

Después de darle a la tecla «enter» nos debería salir algo como esto.

winget install audacity
Espera... pero justo después de darle me sale una ventana preguntando si quiero darle privilegios de administrador o algo así. 

Efectivamente. Ese comando lo que ha hecho ha sido descargar el instalador del programa y ejecutarlo, pero muchos programas necesitan privilegios de administrador para poder ser instalados, así que si es el caso te va a pedir permiso para la instalación. Luego veremos que esto nos lo vamos a poder saltar a la torera.

Ya que estamos, con el mismo programa podemos hacer desinstalaciones de forma también muy sencilla. Si queremos desinstalar el programa que acabamos de instalar, lo haremos con el comando «winget uninstall», de esta forma:

Winget uninstall audacity

Así que con este método podemos instalar y desinstalar programas de forma muy sencilla y con un único comando en nuestro terminal.

Ehhh... bueno... vale... Un minipunto para ti por la machada de instalar un programa desde el terminal. Pero sigo sin saber por qué habría alguien lo suficientemente friki como para instalar programas así. No me entiendas mal. No te estoy llamando friki. Sólo que haces cosas un poco rarunas y...

No intentes arreglarlo, Usuario Anónimo. En cuanto veamos algunos usos más de esta aplicación empezarás a comprender por qué a los que hacemos muchas instalaciones nos gusta este comando. Y al final del artículo verás un uso concreto que hará que te enamores de él.

2) Actualizar el software existente en tu ordenador con el comando Winget.

Este comando, además de permitirnos instalar programas en concreto, nos puede escanear todo el software que tengamos ya instalado en el ordenador y actualizarlo a su última versión ¡¡aunque no lo hayamos instalado anteriormente con Winget!! Y hacerlo es extremadamente sencillo. Sólo necesitamos usar este comando.

winget upgrade --all

Este comando primero buscará el software que tenemos instalado en el equipo. Luego nos mostrará una lista de los paquetes que tenemos instalados que tengan una versión superior en la tienda de aplicaciones de Microsoft (nos dirá qué versión tenemos y cuál es la última versión). Y por último irá actualizando todo el software, programa por programa. Lo que veremos en la pantalla será algo similar a esto.

winget upgrade all

De un plumazo tendremos todo el software actualizado de nuestro equipo. ¿A que ahora empiezas a verle utilidad a este comando, Usuario Anónimo?

Reconozco que a veces tengo que darte la razón (aunque sean pocas). Pero cada vez que winget actualiza un programa tengo que darle privilegios administrativos para que siga adelante. Un poco coñazo sí que es. 

Nada que no se pueda solucionar poniendo algún parámetro avanzado al comando Winget. Ya verás.

3) Algunos usos «avanzados» del comando Winget.

Y sí… he usado comillas en lo de «avanzados» porque tampoco es que sean tan complicados. Aunque en todo caso son una pequeña vuelta de tuerca al uso de Winget.

Podemos ver en la página oficial de Winget que tiene microsoft Microsoft que hay una gran cantidad de parámetros que podemos ponerle a este programa, pero para mi los más útiles son los siguientes:

  • «-e»: nos permitirá buscar el nombre exacto del programa que buscamos, distinguiendo mayúsculas y minúsculas.
  • «-h»: ejecuta winget en modo silencioso. Suprime la intefaz de usuario
  • «–accept-package-agreements«: hace que no nos pregunte si aceptamos contratos de licencia para el paquete que estamos instalando o actualizando.

Para mi, la mejor forma de actualizar todo el software del ordenador (o de instalar software nuevo) es combinar lo que hemos explicado en el punto 2 del artículo con estos tres parámetros. Yo suelo hacerlo así:

  • Primero ejecuto CMD pero como administrador (cuando busco el comando, le hago click con el botón derecho del ratón y selecciono «ejecutar como administrador»).
Ejecutar como administrador
  • Luego ejecuto el comando para actualizar el software, pero con esos parámetros que acabamos de decir. Nos quedaría algo tal que así:
winget upgrade --all -h --accept-package-agreements --accept-source-agreements

De esta forma se actualizará todo el software de nuestro equipo sin pedirnos nada en ningún momento. Simplemente se actualizará todo poco a poco.

Otra cosa que podemos hacer es un comando largo para que se vayan instalando uno por uno los programas que nos interesan en el ordenador. Podemos tenerlo a mano para cuando nos toque configurar un equipo, instalar todo el software necesario de golpe.

Para eso tenemos que tener claro estos conceptos:

  • De nuevo, para evitar que se nos vayan pidiendo privilegios de administrador o aceptar contratos de licencia, debemos usar los parámetros que hemos visto hace un momento.
  • Para cada programa que vayamos a instalar, debemos ejecutar el comando entero con esos parámetros (vamos a repetirlos tantas veces como programas vayamos a instalar)
  • Si hemos optado por instalar todo a través de CMD, hay que separar cada uno de los comandos con el separador «&&»
  • Si hemos optado por usar Powershell, debemos separar cada uno de los comandos con un punto y coma («;»).

Por ejemplo, si queremos instalar Spotify, Gimp y 7Zip a la vez desde CMD usaremos el siguiente comando:

winget install Spotify.Spotify -h --accept-package-agreements --accept-source-agreements && winget install GIMP.GIMP -h --accept-package-agreements --accept-source-agreements && winget install 7zip.7zip -h --accept-package-agreements --accept-source-agreements

(Tened en cuenta que si ya tenéis alguno de estos programas instalados, este largo comando os dará un error y no os dejará continuar).

Y si queremos instalar los mismos programas pero usando powershell, tal y cómo hemos dicho debemos sustituir ese «&&» por un punto y coma de esta forma:

winget install Spotify.Spotify -h --accept-package-agreements --accept-source-agreements  ; winget install GIMP.GIMP -h --accept-package-agreements --accept-source-agreements  ; winget install 7zip.7zip -h --accept-package-agreements --accept-source-agreements

Resumiendo: Con estos trucos podemos hacer un largo comando que nos permitirá instalar un montón de programas de una vez en los equipos que deseemos. Es algo muy útil si tienes que repetir la misma instalación en varios equipos.

Bufff... pero tío: hacer una línea de comando larga es mucho curro para mi. Oye, eso ¿No puede hacerlo otro?

Veeenga. Voy a contarte un método para hacer instalaciones de un montón de software a la vez usando Winget pero sin tener que teclear ningún comando.

4) Winstall: Tu gran aliado a la hora de usar Winget.

Existe una página web que nos va a ayudar muchísimo a la hora de hacer «colecciones» de software que luego podremos instalar con el comando «Winget». La web es esta:

https://winstall.app

Para usarla, desgraciadamente debemos tener un usuario de Twitter. Odio tener que logarme en un servicio con las credenciales de otro. Twitter no tiene por qué saber que quiero usar esa web. Pero no nos queda más remedio si queremos usar esa página, así que… Toca logarse.

Login en winstall

Una vez que nos hayamos logado debemos irnos a «Packs» y luego a «Create a pack».

Crear un pack en winstall

Ahora le ponemos un nombre a nuestro pack de programas (Por ejemplo: «Instalación de Arturo», o «pack de ofimática»). Y debajo añadimos una descripción (Algo del tipo «Programas que suelo instalar antes de ir a dormir»). Podemos hacer este pack de programas público (cualquiera podrá usar tu listado para instalar esos programas) o dejarlo privado para que lo usemos sólo nosotros.

También le podemos poner un color a nuestro pack. Pero antes de darle al botón «Create pack» vamos a pulsar en el botón «Add apps».

Crear pack en winstall 2

Es en esta sección dónde añadiremos programas a nuestro pack. Simplemente en el cuadro de búsqueda buscamos el nombre del programa, y cuando nos aparezca, pulsamos el botón «+» que hay en el recuadro del programa. Una vez que terminemos de añadir aplicaciones ya le podemos dar al botón de «Create pack».

Seleccionar aplicaciones.

Ahora ya podemos ver el pack que hemos creado con todas las aplicaciones que nos interesan, pero lo verdaderamente interesante está debajo del todo. La zona inferior nos permite escoger varias opciones:

  • Primero debemos escoger si el script que nos va a generar lo queremos ejecutar en un «CMD» (batch), en powershell o si queremos crear un archivo que importar en un breve comando en nuestro símbolo del sistema (winget import).
  • Podemos seleccionar si los programas van a instalarse sólo para el usuario que hace la instalación o van a estar disponibles para cualquier usuario del ordenador.
  • Y después podemos seleccionar algunas opciones más. Creo que es interesante dejar marcadas la de «Request silent installation», y las dos que empiezan por «Override…». Así la instalación no nos preguntará tantas cosas mientras se ejecuta.
Opciones de winstall

Y con todo esto, si os fijáis, debajo de todo se os generará un pequeño texto con todo lo que hay que poner en el terminal deseado. Simplemente copiamos ese texto, lo ponemos en el «CMD» y pulsamos enter. Se irán instalando todos los programas uno por uno en el equipo. Podéis pasarle ese texto a alguien para que haga la instalación de varias decenas de programas más sencilla de su vida. O podéis incluso pasarle el enlace de la página del pack a alguien para que revise la instalación antes de hacerla.

Mira… te voy a poner de ejemplo un pack que uso yo para algunos equipos del ámbito familiar. Este es el pack de archivos.

https://winstall.app/packs/OIOwn24Bk

Y tal y cómo aparece en la zona inferior de esa página, ésto es lo que tendrías que poner en el «CMD» para instalarlos. Sólo tendrías que copiar este texto, pegarlo en el «CMD» y pulsar enter. En unos minutos los tendrás todos instalados en tu ordenador, sin temor a virus ni nada raro.

winget install --id=RustDesk.RustDesk -e -h --override --force --scope "machine" && winget install --id=Google.Chrome -e -h --override --force --scope "machine" && winget install --id=Mozilla.Firefox -e -h --override --force --scope "machine" && winget install --id=VideoLAN.VLC -e -h --override --force --scope "machine" && winget install --id=Bitwarden.Bitwarden -e -h --override --force --scope "machine" && winget install --id=GIMP.GIMP -e -h --override --force --scope "machine" && winget install --id=File-New-Project.EarTrumpet -e -h --override --force --scope "machine" && winget install --id=QL-Win.QuickLook -e -h --override --force --scope "machine" && winget install --id=7zip.7zip -e -h --override --force --scope "machine" && winget install --id=Adobe.Acrobat.Reader.64-bit -e -h --override --force --scope "machine" && winget install --id=geeksoftwareGmbH.PDF24Creator -e -h --override --force --scope "machine" && winget install --id=Google.EarthPro -e -h --override --force --scope "machine" && winget install --id=Nextcloud.NextcloudDesktop -e -h --override --force --scope "machine" && winget install --id=Oracle.JavaRuntimeEnvironment -e -h --override --force --scope "machine" && winget install --id=Inkscape.Inkscape -e -h --override --force --scope "machine" && winget install --id=KDE.Krita -e -h --override --force --scope "machine" && winget install --id=TheDocumentFoundation.LibreOffice -e -h --override --force --scope "machine" && winget install --id=Scribus.Scribus -e -h --override --force --scope "machine" && winget install --id=Greenshot.Greenshot -e -h --override --force --scope "machine" && winget install --id=Telegram.TelegramDesktop -e -h --override --force --scope "machine" && winget install --id=WhatsApp.WhatsApp -e -h --override --force --scope "machine" && winget install --id=Microsoft.Teams -e -h --override --force --scope "machine" && winget install --id=Microsoft.Skype -e -h --override --force --scope "machine" && winget install --id=aluxnimm.outlookcaldavsynchronizer -e -h --override --force --scope "machine" && winget install --id=Spotify.Spotify -e -h --override --force --scope "machine" && winget install --id=eMule.eMule -e -h --override --force --scope "machine" && winget install --id=Transmission.Transmission -e -h --override --force --scope "machine" && winget install --id=PuTTY.PuTTY -e -h --override --force --scope "machine" && winget install --id=WinSCP.WinSCP -e -h --override --force --scope "machine" && winget install --id=Balena.Etcher -e -h --override --force --scope "machine" && winget install --id=Win32diskimager.win32diskimager -e -h --override --force --scope "machine" && winget install --id=RaspberryPiFoundation.RaspberryPiImager -e -h --override --force --scope "machine" && winget install --id=Piriform.Recuva -e -h --override --force --scope "machine" && winget install --id=LSoftTechnologies.ActiveKillDisk -e -h --override --force --scope "machine" && winget install --id=RealVNC.VNCViewer -e -h --override --force --scope "machine" && winget install --id=AnyDeskSoftwareGmbH.AnyDesk -e -h --override --force --scope "machine" && winget install --id=OpenVPNTechnologies.OpenVPN -e -h --override --force --scope "machine" && winget install --id=WireGuard.WireGuard -e -h --override --force --scope "machine" && winget install --id=Bluefish.Bluefish -e -h --override --force --scope "machine" && winget install --id=angryziber.AngryIPScanner -e -h --override --force --scope "machine" && winget install --id=PatchMyPC.PatchMyPC -e -h --override --force --scope "machine" && winget install --id=AdrienAllard.FileConverter -e -h --override --force --scope "machine" && winget install --id=Valve.Steam -e -h --override --force --scope "machine" && winget install --id=EpicGames.EpicGamesLauncher -e -h --override --force --scope "machine" && winget install --id=Apple.iTunes -e -h --override --force --scope "machine" && winget install --id=gerardog.gsudo -e -h --override --force --scope "machine"

Simplemente crea el pack a tu gusto, úsalo como veas conveniente y compártelo con quién quieras.

Pero... pero... ¡Entonces esto te puede permitir instalar cosas muy rápido en oficinas y empresas!

Efectivamente. Hay otros métodos más idóneos cuando dispones de un «Windows Server» con roles de administrador de dominio, pero para pequeñas empresas o tiendas de informática es algo tremendamente útil.

Y a vosotros ¿Qué os parece? ¿Os da la impresión de que es algo demasiado complicado? ¿Creéis que podéis sacarle utilidad? Espero ansioso vuestros comentarios aquí abajo.

Share