- Winget es el gestor de paquetes oficial de Windows que permite instalar, actualizar y desinstalar aplicaciones desde la línea de comandos.
- La herramienta se integra con Microsoft Store, un repositorio comunitario y orígenes privados, y admite una gran variedad de formatos de instalador.
- Permite automatizar equipos completos mediante archivos de configuración YAML, scripts de PowerShell y políticas de grupo en entornos empresariales.
- Incluye funciones avanzadas como descarga sin instalación, validación de manifiestos, pin de versiones y extensas opciones de seguridad y registro.

Si usas Windows a diario y te pasas media vida instalando, actualizando o quitando programas, aprender a manejar winget desde la terminal te puede ahorrar muchísimo tiempo. Este administrador de paquetes oficial de Microsoft trae a Windows una forma de trabajar muy similar a la de las distros GNU/Linux con apt o dnf, pero sin necesidad de instalar herramientas de terceros.
Con winget puedes buscar, instalar, actualizar, desinstalar y configurar aplicaciones simplemente escribiendo comandos, además de automatizar la preparación completa de un PC con scripts o archivos de configuración. Vamos a ver con calma cómo funciona, qué comandos tienes disponibles y cómo sacarle todo el jugo tanto si eres usuario doméstico, como desarrollador o administrador de sistemas.
Qué es winget y cómo funciona el Administrador de paquetes de Windows
Winget es la herramienta de línea de comandos del Administrador de paquetes de Windows (Windows Package Manager). Es un cliente que se conecta a distintos orígenes (la Microsoft Store, el repositorio comunitario de winget y repositorios privados) para localizar instaladores, descargarlos y ejecutar la instalación de forma controlada y repetible.
En la práctica, winget se compone de varios elementos que trabajan juntos para gestionar el software en el sistema, de modo que el núcleo visible para el usuario es el comando winget, pero por detrás hay servicios y manifiestos que describen cada paquete.
La solución completa del Administrador de paquetes de Windows incluye tres piezas principales que conviene distinguir para entender todo el ecosistema:
- Cliente winget: es el ejecutable de consola que usas en PowerShell, Terminal o el símbolo del sistema para lanzar comandos como
winget installowinget upgrade. - Servicio de empaquetado y repositorios: Microsoft mantiene un repositorio comunitario de manifiestos en GitHub y se integra con Microsoft Store para hospedar y distribuir aplicaciones en equipos Windows.
- Archivos de configuración de winget: son ficheros YAML que describen el “estado deseado” de un PC (aplicaciones, ajustes, scripts), permitiendo configurar un dispositivo entero con un solo comando.
La filosofía es que puedas definir qué software y configuración quieres, y que el Administrador de paquetes se encargue de instalar, actualizar y mantener todo de forma automática, minimizando los errores humanos y las diferencias entre máquinas.
Instalación de winget en Windows 10, Windows 11 y Windows Server
En la mayoría de equipos modernos, winget ya viene listo para usar porque forma parte del Instalador de aplicaciones (App Installer) que se distribuye a través de Microsoft Store en Windows 10 y Windows 11, y mediante actualizaciones en Windows Server 2025. Basta con abrir una terminal y escribir winget para comprobar si está disponible.
Si al ejecutar el comando ves el listado de opciones y la versión del cliente, significa que tienes el Administrador de paquetes de Windows correctamente instalado. En caso contrario, puedes ir a la Microsoft Store, buscar “App Installer” (Instalador de aplicaciones) y actualizar o instalar el paquete.
Instalar versiones preliminares de winget (para desarrolladores)
Si quieres probar antes que nadie las nuevas funciones de winget, Microsoft ofrece compilaciones preliminares (preview). Están pensadas sobre todo para desarrolladores y usuarios avanzados que no tienen problema en encontrarse con algún fallo ocasional.
Hay dos formas habituales de conseguir la versión preliminar del cliente:
- Descargar manualmente el paquete de la versión preview desde el repositorio de winget en GitHub y instalarlo para sustituir temporalmente al cliente estable. No recibirás actualizaciones automáticas de las siguientes previews desde la Store; tendrás que repetir el proceso cuando salga una nueva.
- Unirte al Programa Windows Insider con una cuenta Microsoft, profesional, educativa o Entra ID (antiguo AAD) en los canales Canary o Dev. En esos canales, las builds incluyen automáticamente actualizaciones de winget desde la Microsoft Store con las funciones experimentales más recientes.
Instalar winget en Windows Sandbox (Espacio aislado)
Windows Sandbox es un entorno de escritorio ligero y desechable en el que puedes ejecutar aplicaciones de forma aislada del sistema principal. Todo lo que instales dentro se pierde al cerrar el espacio aislado, lo que resulta ideal para pruebas.
Este entorno no trae de serie ni Microsoft Store ni winget, así que tendrás que instalar el cliente de forma manual. Microsoft recomienda usar el módulo de PowerShell Microsoft.WinGet.Client y el cmdlet Repair-WinGetPackageManager para “arrancar” winget dentro del sandbox.
Desde una consola de PowerShell en el espacio aislado, puedes usar un script como este (adaptado y formateado) para desplegar la versión estable para todos los usuarios del entorno:
$progressPreference = 'silentlyContinue'
Install-PackageProvider -Name NuGet -Force | Out-Null
Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery | Out-Null
Repair-WinGetPackageManager -AllUsers
Si lo necesitas, el módulo también se puede instalar con ámbito de usuario o de máquina usando el parámetro -Scope AllUsers en Install-Module, y puedes añadir -IncludePrerelease a Repair-WinGetPackageManager para probar versiones preliminares.
Consideraciones importantes de permisos y administración
La forma en que se comportan las instalaciones con winget cambia según si ejecutas los comandos con permisos de administrador o como usuario normal. Esto es clave si gestionas muchos equipos o quieres automatizar procesos.
Cuando inicias winget sin privilegios elevados, algunas aplicaciones necesitarán elevación para instalarse. En esos casos, Windows te mostrará el aviso de UAC pidiendo confirmación. Si rechazas la elevación, la instalación o actualización de ese paquete concreto fallará.
Si abres PowerShell o el símbolo del sistema “como administrador” y lanzas winget, las instalaciones que requieran elevación no mostrarán el aviso de UAC, ya que el contexto ya está elevado. Esto es cómodo, pero implica que debes ir con mucho cuidado y limitarte a instalar software de confianza, sobre todo en entornos corporativos.
En escenarios mixtos (programas que deben ir en ámbito de usuario frente a ámbito de máquina) es habitual combinar ejecuciones de winget como usuario y como administrador, o tirar de políticas de grupo para forzar ciertos comportamientos y reducir los avisos.
Uso básico de winget: primeros comandos imprescindibles
Una vez tengas App Installer al día, usar winget es tan sencillo como abrir PowerShell, Windows Terminal o CMD y escribir winget. Verás la versión instalada, una descripción general y el listado de comandos disponibles.
El flujo de trabajo típico arranca casi siempre con una búsqueda, seguida de la instalación de la aplicación que te interesa. Los pasos esenciales serían algo así:
- Buscar una aplicación:
winget search <nombre_de_app> - Comprobar nombre, identificador y origen del paquete que quieres.
- Instalarla:
winget install <nombre_o_id>
Al instalar, winget descarga el instalador correcto para tu arquitectura y origen y lo lanza con los parámetros adecuados (normalmente en modo silencioso o minimizando la interacción), informándote al final si todo ha ido bien.
Si quieres ver las aplicaciones que ya tienes en el sistema, puedes lanzar winget list para que se devuelva un listado de paquetes instalados con sus versiones. Este comando es muy útil para revisar qué se puede actualizar y qué reconocido por winget, aunque no se haya instalado originalmente con esta herramienta.
Listado completo de comandos principales de winget
El cliente soporta una serie de comandos específicos diseñados para cubrir todo el ciclo de vida de las aplicaciones y la configuración. A día de hoy, los comandos generales más importantes son estos:
| Comando | Descripción |
|---|---|
install |
Instala la aplicación indicada desde el origen configurado. |
show |
Muestra información detallada de un paquete (editor, versión, orígenes, etc.). |
source |
Permite añadir, quitar o actualizar repositorios de paquetes. |
search |
Realiza una búsqueda de aplicaciones en los orígenes configurados. |
list |
Muestra la lista de paquetes instalados reconocidos por winget. |
upgrade |
Actualiza aplicaciones concretas o todas las que tengan nueva versión. |
uninstall |
Desinstala una aplicación determinada. |
hash |
Calcula el hash SHA256 de un instalador. |
validate |
Comprueba la validez de un manifiesto antes de enviarlo al repositorio comunitario. |
settings |
Abre y permite editar el archivo de configuración de winget. |
features |
Muestra el estado de las funciones experimentales. |
export |
Exporta a un archivo la lista de paquetes instalados. |
import |
Instala en bloque todos los paquetes listados en un archivo exportado. |
pin |
Permite anclar versiones de paquetes para que no se actualicen más allá de cierto punto. |
configure |
Ejecuta archivos de configuración declarativa para dejar el sistema en un estado deseado. |
download |
Descarga instaladores de aplicaciones sin ejecutarlos. |
repair |
Intenta reparar instalaciones problemáticas. |
dscv3 |
Comandos relacionados con PowerShell DSC v3 y recursos de configuración de estado deseado. |
Opciones globales y parámetros más usados
Casi todos los comandos de winget aceptan opciones globales que modifican su comportamiento, como mostrar más información, controlar el proxy o suprimir advertencias. Algunas de las más relevantes son:
| Opción | Función |
|---|---|
-v, --version |
Muestra la versión actual del cliente winget. |
--info |
Devuelve información detallada de la instalación (licencias, privacidad, directivas de grupo, etc.). |
-?, --help |
Presenta la ayuda específica de un comando. |
--wait |
Hace que winget espere una tecla antes de salir, útil al ejecutarlo en ventanas efímeras. |
--logs, --open-logs |
Abre la carpeta predeterminada donde se guardan los registros de winget. |
--verbose, --verbose-logs |
Activa un registro detallado para depuración. |
--nowarn, --ignore-warnings |
Oculta los mensajes de advertencia. |
--disable-interactivity |
Intenta desactivar todas las peticiones interactivas para uso automatizado. |
--proxy |
Establece el proxy HTTP/HTTPS a usar durante esa ejecución. |
--no-proxy |
Fuerza a winget a no usar proxy incluso si el sistema lo tiene configurado. |
Principales funciones prácticas: buscar, instalar, listar y actualizar
En el día a día lo que más vas a usar de winget son unos pocos comandos muy directos que te permiten gestionar aplicaciones sin tocar instaladores manualmente, igual que harías con un gestor de paquetes en Linux.
Para localizar software disponible tienes a tu disposición winget search <texto>, que devuelve una lista de nombres, identificadores, versiones y orígenes que coinciden con la búsqueda. Este listado te sirve también para identificar el ID exacto del paquete que quieres instalar.
Si quieres comprobar qué programas tienes instalados, basta con ejecutar winget list. El comando muestra todas las aplicaciones que winget reconoce, independientemente de que se instalaran con la herramienta o no, y te permite detectar versiones antiguas susceptibles de actualización.
La instalación estándar se hace con winget install NOMBRE_APP o mejor aún con el ID de paquete, por ejemplo: winget install Microsoft.VisualStudioCode. Si la instalación necesita interacción (aceptar EULA, elegir opciones, etc.), suele realizarla en modo simplificado o silencioso en la medida de lo posible.
A veces, el instalador detiene el proceso para que aceptes un acuerdo de licencia o confirmes algo en pantalla. Para que todo se ejecute de punta a punta sin preguntas, puedes utilizar parámetros como --silent y --accept-package-agreements --accept-source-agreements, de forma que forzarás la aceptación de los acuerdos y suprimirás ventanas innecesarias.
Para mantener el sistema al día, winget ofrece varias formas de actualizar software. El comando winget upgrade sin más mostrará todas las aplicaciones con nuevas versiones disponibles, mientras que winget upgrade NOMBRE_APP actualizará solo un paquete concreto.
Si prefieres hacerlo en bloque, winget upgrade --all intentará actualizar todos los paquetes que tengan versión nueva. Aquí entran en juego los permisos: si lo ejecutas como usuario, saldrán avisos de UAC para cada instalación que requiera elevación; si lo haces como administrador, se gestionarán sin mostrar los cuadros de diálogo.
Por último, desinstalar también es muy sencillo con winget uninstall NOMBRE_APP, e incluso puedes incluir varias aplicaciones en la misma línea de comandos para que se vayan eliminando una tras otra, siempre que winget las reconozca en el sistema.
Comandos menos conocidos pero muy útiles
Además de los comandos básicos, winget incluye varias funciones que pasan desapercibidas en muchas guías rápidas y que resultan muy prácticas cuando trabajas con muchos paquetes o necesitas evitar errores de identificación.
El comando winget show NOMBRE_APP sirve para ver todos los detalles de un paquete antes de instalarlo: editor, versión concreta, ID, origen, tipo de instalador, e incluso a veces enlace oficial. También puedes filtrar por identificador con winget show --id ID_PAQUETE para ir a tiro fijo.
Si te preocupa que la instalación se quede parada esperando que aceptes acuerdos de licencia, puedes añadir los parámetros --accept-package-agreements y --accept-source-agreements a winget install para que se acepten automáticamente los términos legales sin cuadro de diálogo.
Combinando estas opciones con --silent, por ejemplo winget install NOMBRE_APP --accept-package-agreements --accept-source-agreements --silent, consigues instalaciones totalmente desatendidas, muy útiles en scripts de despliegue o cuando quieres dejar el PC trabajando mientras haces otra cosa.
Comando winget download: descargar instaladores sin instalar
En determinadas situaciones te interesa descargar los instaladores de las aplicaciones pero no ejecutarlos todavía: por ejemplo para llevarlos a máquinas sin conexión, preparar un repositorio local o revisar manualmente el contenido antes de instalar.
Para eso existe el comando winget download, cuyo uso básico es winget download [[-q] <query>] [<options>]. Admite tanto consultas genéricas como filtros por ID, nombre o moniker, y descarga el instalador (o instaladores) correspondientes a tu selección.
Cuando el paquete procede de Microsoft Store y es una aplicación empaquetada (MSIX, APPX, bundles, etc.), winget puede descargar también el archivo de licencia asociado. En estos casos, el comando requiere autenticación con Entra ID y que la cuenta pertenezca a roles como Administrador global, Administrador de usuarios o Administrador de licencias para generar y recuperar ese archivo de licencia sin conexión.
Si quieres evitar tratar con la licencia fuera de línea, puedes usar el parámetro --skip-license o --skip-microsoft-store-package-license, de forma que winget solo descargue el instalador y no intente obtener el fichero de licencia.
El comando también permite filtrar por plataforma o arquitectura. Con --platform puedes elegir entre valores como Windows.Desktop, Windows.Universal o Windows.Holographic para limitar las descargas a un tipo concreto de dispositivo.
Del mismo modo, con --architecture puedes indicar x86, x64, ARM o ARM64 para seleccionar solo el instalador adecuado para la CPU de destino. Es especialmente útil si vas a mover esos archivos a otros equipos con arquitectura diferente a la tuya.
Entre las opciones más frecuentes de winget download destacan:
-d, --download-directory: carpeta en la que se guardarán los instaladores descargados.-m, --manifest: ruta a un manifiesto YAML que describe lo que se debe descargar.--id,--name,--moniker: filtros para restringir el resultado a un paquete concreto.-v, --version: versión exacta a descargar, si no quieres la última.-s, --source: limita la operación a un origen específico.--scope,--installer-type,--locale,--skip-dependencies: opciones avanzadas para controlar con detalle qué se descarga.
Algunos ejemplos prácticos serían:
winget download --id Microsoft.PowerToys --version 0.15.2
winget download --id Microsoft.WingetCreate --installer-type msix
winget download --id Microsoft.PowerToys --scope machine --architecture x64 --download-directory C:\Instaladores
Formatos de instalador compatibles con winget
Para poder trabajar de forma homogénea con miles de aplicaciones, winget reconoce un buen número de tipos de instalador habituales en Windows, tanto empaquetados modernos como instaladores clásicos.
Entre los formatos actualmente soportados se encuentran:
- Ejecutables EXE con parámetros de instalación silenciosa (Silent o SilentWithProgress).
- Archivos ZIP que se despliegan en modo portátil.
- Instaladores Inno Setup.
- Instaladores Nullsoft (NSIS).
- Paquetes MSI y WIX.
- Aplicaciones empaquetadas APPX y MSIX.
- Instaladores tipo BURN.
- Aplicaciones portátiles (sin instalación clásica, ejecutables directos).
Gracias a este abanico, winget puede gestionar tanto aplicaciones modernas de la Store como programas de escritorio tradicionales, siempre que sus manifiestos estén correctamente definidos en el repositorio correspondiente.
Scripting y automatización con winget y PowerShell
Si te gusta automatizar tareas o administras varios equipos, tiene mucho sentido combinar winget con PowerShell y scripts declarativos. Para ello, Microsoft publica el módulo Microsoft.WinGet.Client en la PowerShell Gallery, que expone cmdlets específicos para interactuar con el servicio.
Con este módulo puedes crear scripts que instalen, actualicen o reparen paquetes usando PowerShell puro, integrar winget en pipelines de CI/CD o incorporarlo a scripts de aprovisionamiento de máquinas nuevas.
Además, los archivos de configuración YAML asociados al comando winget configure permiten describir en un solo documento:
- Requisitos previos (assertions), como versión mínima de Windows.
- Recursos (resources), que incluyen paquetes a instalar, scripts a ejecutar, ajustes de sistema, etc.
Un ejemplo simplificado de configuración podría contener una sección de aserciones donde se fija la build mínima de Windows 10 y otra de recursos con Visual Studio Code, Google Chrome y un script de PowerShell para preparar otros módulos. Una vez tengas ese YAML, basta con ejecutar:
winget configure --file ruta\a\winget.yaml
De esta forma, un único comando deja un equipo con el mismo conjunto de aplicaciones y ajustes una y otra vez, perfecto para entornos corporativos, aulas, laboratorios o tu propio PC tras formatear.
Añadir repositorios y trabajar con orígenes personalizados
De fábrica, winget utiliza como orígenes principales la Microsoft Store y el repositorio comunitario mantenido en GitHub. Sin embargo, también puedes agregar repositorios adicionales para ampliar el catálogo o trabajar con paquetes internos de tu organización.
Muchos entornos empresariales crean su propio origen REST con manifiestos de sus aplicaciones corporativas, de modo que los usuarios puedan instalarlas mediante winget igual que si fueran paquetes públicos, pero controlando versiones, licencias y distribución.
Para añadir una nueva fuente, abre PowerShell como administrador y ejecuta un comando del estilo:
winget source add --name MiRepositorio --arg https://url.de.mi.repo/api
El comando admite opciones adicionales como --type (tipo de origen, normalmente REST), --trust-level (por ejemplo trusted o none) y --accept-source-agreements, que sirve para aceptar automáticamente los acuerdos de ese repositorio sin que haya que confirmarlo a mano.
Para verificar que la fuente se ha agregado correctamente, puedes usar winget source list y revisar el listado de orígenes registrados. También es posible actualizar o eliminar orígenes cuando ya no los necesites.
Winget para desarrolladores, ISV y empresas
Aunque cualquier usuario puede sacar provecho de winget, donde realmente brilla es en manos de desarrolladores, fabricantes de software y administradores de TI que necesitan estandarizar instalaciones y entornos de trabajo.
Los desarrolladores pueden describir en un archivo sus herramientas imprescindibles (editores, SDK, compiladores, utilidades varias) y dejar que el Administrador de paquetes de Windows se encargue de instalar todas las dependencias correctamente, sin olvidos ni versiones inconsistentes entre máquinas.
Los proveedores de software (ISV) disponen del repositorio de comunidad de winget en GitHub, donde pueden subir los manifiestos de sus aplicaciones para que la herramienta las incluya en el origen por defecto. Los paquetes se validan automáticamente y pueden someterse además a una revisión manual para garantizar su calidad.
En entornos corporativos, winget facilitar la tarea de los equipos de seguridad y TI, ya que se puede usar junto con Microsoft Intune y directivas de grupo para aplicar políticas estrictas sobre qué se instala, desde qué orígenes y en qué condiciones, reduciendo riesgos y manteniendo un nivel homogéneo de actualización y endurecimiento.
Seguridad, anclaje de certificados y políticas de grupo
La conexión entre winget, Microsoft Store y otros orígenes REST está protegida mediante comprobaciones de certificados y mecanismos de seguridad para evitar ataques de intermediario (MITM) y robos de credenciales o datos.
Para el caso particular de Microsoft Store, existe una directiva llamada BypassCertificatePinningForMicrosoftStore que controla si winget valida el hash del certificado de la Store frente a una lista de certificados conocidos. Esto es clave cuando en la organización se usan firewalls con inspección SSL que pueden interferir con la validación.
Las opciones de esta política son:
- Sin configurar (por defecto): winget respeta la configuración estándar del Administrador de paquetes y comprueba los certificados de la Store.
- Habilitar: se omite la validación de certificado de Microsoft Store, lo que puede ser necesario en algunos escenarios de inspección SSL, pero aumenta el riesgo de ataques MITM.
- Deshabilitar: se fuerza a winget a validar que el certificado realmente pertenece a la Store antes de iniciar la conexión.
El anclaje de certificados es una capa extra de seguridad que garantiza que la comunicación entre el cliente winget y Microsoft Store no pueda ser interceptada o manipulada fácilmente. Desactivarlo sin una buena razón es una mala idea desde el punto de vista de seguridad.
Además de esta directiva, cada versión de Windows 11 incorpora plantillas ADMX/ADML específicas para winget que amplían las opciones de configuración en la Consola de administración de directivas de grupo (GPMC). Están organizadas en categorías como control de orígenes permitidos, desarrollo local (características experimentales, manifiestos locales) o políticas de ejecución y uso de proxy.
Para usar estas plantillas, puedes descargar desde GitHub el archivo DesktopAppInstallerPolicies.zip correspondiente a la versión de winget que te interese, extraerlo y copiar los ficheros .admx y .adml a las rutas estándar de C:\Windows\PolicyDefinitions y su subcarpeta de idioma. A partir de ahí, las nuevas opciones aparecerán en GPMC y podrás aplicarlas a OU, sitios o todo el dominio.
Depuración, registros y envío de nuevos paquetes
Cuando algo se tuerce (descargas fallidas, instalaciones que no terminan, conflictos de versiones), winget genera registros detallados que resultan muy útiles para encontrar el origen del problema.
Puedes abrir la carpeta de logs con la opción --open-logs o activando --verbose-logs para que la herramienta guarde más información de cada operación. El repositorio oficial winget-cli en GitHub mantiene además una lista de problemas frecuentes y soluciones recomendadas, donde es buena idea echar un vistazo antes de abrir un nuevo issue.
Si echas de menos algún programa en el catálogo, siempre tienes la posibilidad de crear y enviar un manifiesto al repositorio de comunidad. Así, no solo lo tendrás disponible tú, sino que también podrán instalarlo fácilmente otros usuarios y organizaciones desde winget.
La propia herramienta es de código abierto y vive en el repositorio microsoft/winget-cli, escrito en C++ y pensado para compilarse con Visual Studio 2022. Si quieres contribuir, tendrás que aceptar y firmar el Contrato de licencia de colaborador (CLA) de Microsoft y enviar los cambios desde una rama de tu bifurcación.
Al final, conocer y dominar winget te da la posibilidad de tratar tu PC con Windows más como un sistema “de servidor” o de desarrollo serio: todo scriptable, todo reproducible y con un control fino sobre qué se instala y cómo, evitando clics innecesarios y sorpresas en forma de versiones desalineadas o programas que nadie sabe cómo llegaron al equipo.
Tabla de Contenidos
- Qué es winget y cómo funciona el Administrador de paquetes de Windows
- Instalación de winget en Windows 10, Windows 11 y Windows Server
- Consideraciones importantes de permisos y administración
- Uso básico de winget: primeros comandos imprescindibles
- Listado completo de comandos principales de winget
- Opciones globales y parámetros más usados
- Principales funciones prácticas: buscar, instalar, listar y actualizar
- Comandos menos conocidos pero muy útiles
- Comando winget download: descargar instaladores sin instalar
- Formatos de instalador compatibles con winget
- Scripting y automatización con winget y PowerShell
- Añadir repositorios y trabajar con orígenes personalizados
- Winget para desarrolladores, ISV y empresas
- Seguridad, anclaje de certificados y políticas de grupo
- Depuración, registros y envío de nuevos paquetes