winget: instala y actualiza todas las apps de Windows en segundos

winget: instala y actualiza todas las apps de Windows en segundos

Formatear un PC del trabajo y tener que instalar Chrome, 7-Zip, VLC, Visual Studio Code, Notepad++, Git y otros diez programas más —uno por uno, cada uno con su instalador, cada uno con el bendito "siguiente, siguiente, finalizar"— es el tipo de cosa que hace que cualquier sysadmin pierda 40 minutos sin agregar nada. winget resuelve exactamente eso: un comando, todos los programas instalados.

Qué es winget

winget (Windows Package Manager) es el gestor de paquetes oficial de Microsoft, disponible por defecto en Windows 11 y en Windows 10 versión 1709 o superior. Funciona de forma parecida a apt en Debian o brew en macOS: buscas un paquete por nombre, lo instalas con un comando y el sistema se encarga de la descarga, la verificación y la instalación, sin pop-ups, sin asistentes gráficos, sin barra de herramientas indeseada incrustada en el instalador.

El repositorio predeterminado (winget-pkgs) mantiene más de 6.000 paquetes, incluidos los más usados por desarrolladores y sysadmins. La Microsoft Store funciona como fuente secundaria configurada automáticamente.

Cómo verificar si winget está disponible

Abre PowerShell o el Símbolo del sistema y ejecuta:

winget --version

Si devuelve algo como v1.11.x, está listo para usar. Si aparece "comando no reconocido", instala App Installer desde la Microsoft Store o actualiza Windows a una build reciente: winget viene incorporado a partir de Windows 11 21H2.

Comandos esenciales del día a día

Buscar un paquete

winget search vlc

Devuelve una tabla con nombre, ID del paquete, versión y fuente. El ID es lo que usas para instalaciones exactas: evita ambigüedad cuando hay paquetes con nombres parecidos. Por ejemplo: VideoLAN.VLC en vez de solo "vlc".

Instalar uno o varios programas

winget install VideoLAN.VLC

Para instalar varios de una vez en la misma línea:

winget install Google.Chrome Mozilla.Firefox 7zip.7zip Git.Git Microsoft.VisualStudioCode

winget procesa cada paquete en secuencia, descargando e instalando sin interacción manual.

Listar programas instalados

winget list

Muestra todos los paquetes que winget reconoce en el sistema, con la versión instalada y la versión disponible. Útil para auditar qué está desactualizado antes de ejecutar la actualización.

Desinstalar

winget uninstall VideoLAN.VLC

¿Cómo actualizar todos los programas de Windows de una vez?

Usa winget upgrade --all. Verifica todos los paquetes reconocidos y actualiza los que tienen una nueva versión disponible, sin necesidad de abrir ningún programa manualmente.

Para uso en scripts sin interacción del usuario, agrega los flags de automatización:

winget upgrade --all --silent --accept-package-agreements --accept-source-agreements
  • --silent — sin ventanas gráficas durante la instalación
  • --accept-package-agreements — acepta licencias de uso automáticamente
  • --accept-source-agreements — acepta los términos de las fuentes configuradas

Ejecuta con privilegios de administrador para actualizar paquetes instalados para todos los usuarios de la máquina.

Export e Import: migrando tu configuración a otro PC

Esta es la función menos conocida de winget y una de las más útiles en la práctica. Antes de formatear o migrar a una máquina nueva, exporta la lista de todo lo que está instalado:

winget export -o C:\backup\mis-apps.json

El archivo JSON generado lista todos los paquetes reconocidos por winget. En el PC nuevo, después de instalar Windows, restaura todo con:

winget import -i C:\backup\mis-apps.json --accept-package-agreements

winget instala todo de una vez. Los programas que no están en el repositorio —software corporativo, drivers específicos, aplicaciones heredadas— no entran en el JSON y necesitan instalación manual. Pero la mayor parte de una configuración estándar de desarrollador o analista queda cubierta sin esfuerzo.

Automatizando las actualizaciones con el Programador de Tareas

Para mantener las máquinas siempre actualizadas sin intervención, crea una tarea programada. Guarda lo siguiente en C:\Scripts\winget-update.ps1:

winget upgrade --all --silent --accept-package-agreements --accept-source-agreements

En el Programador de Tareas (Task Scheduler), crea una tarea que ejecute PowerShell con ese script, con privilegios elevados:

powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\winget-update.ps1"

Configúrala para que corra a las 3 a. m. del domingo, cuando la estación probablemente esté inactiva. En entornos con múltiples estaciones, se puede distribuir este script vía GPO o mediante Microsoft Intune.

Si todavía usas PowerShell a nivel básico, esta tarea programada es un punto de entrada natural hacia automatizaciones reales: un archivo, una regla de horario, decenas de programas mantenidos actualizados sin tocar el mouse.

Consejos rápidos

  • Versión específica: winget install Git.Git --version 2.44.0
  • Alcance de instalación: --scope user instala solo para el usuario actual; --scope machine para todos
  • Forzar reinstalación: agrega --force a install
  • Detalles de un paquete: winget show Git.Git
  • Incluir paquetes sin versión conocida en la actualización: --include-unknown

¿winget o Chocolatey?

Durante mucho tiempo, Chocolatey fue el gestor de paquetes más usado en Windows. Todavía tiene un repositorio más grande y funciones avanzadas interesantes para entornos corporativos. Pero winget no necesita instalación adicional en Windows 11, tiene soporte oficial de Microsoft y se integra con la Microsoft Store. Para uso personal y configuraciones de desarrollo, winget cubre lo esencial sin dependencias externas, y la curva de entrada es menor.

Para sysadmins que quieren ir más allá —hardening de estaciones antes del deploy, por ejemplo—, winget combina bien con las configuraciones de seguridad de Windows 11 que ya cubrimos aquí: instalar un sistema limpio con winget y aplicar de inmediato las políticas de seguridad en la misma secuencia es una rutina que se cierra en menos de 30 minutos.

Conclusión

winget no es novedad —la primera versión pública salió en 2020—, pero todavía está subutilizado fuera de entornos de desarrollo. Para quien administra varias máquinas Windows, el dúo winget export + winget import ya justifica aprender la herramienta. Y el winget upgrade --all programado es el tipo de automatización simple que elimina toda una categoría de tareas repetitivas sin exigir un script elaborado.

Si quieres ir más a fondo en el lado del scripting —encadenar winget con otras automatizaciones o crear reportes de versión instalada—, el punto de partida natural es PowerShell 7.6 LTS, que trajo mejoras relevantes para scripts de automatización de infraestructura.

Comentarios