La herramienta de línea de comandos winget permite a los usuarios detectar, instalar, actualizar, quitar y configurar aplicaciones en equipos con Windows 10 (versión 1809, compilación 17763, o posterior), Windows 11 y Windows Server 2025. Es la interfaz cliente del servicio Administrador de paquetes de Windows (Windows Package Manager) y se distribuye como parte del componente App Installer.
Antes de empezar, comprueba si winget está disponible en tu equipo. Abre PowerShell o el Símbolo del sistema y ejecuta:
winget --version
Si el comando devuelve un número de versión, ya lo tienes instalado. Si no, instala App Installer desde la Microsoft Store o desde los lanzamientos de winget-cli en GitHub.
Comando winget list
El comando list muestra las aplicaciones instaladas actualmente en el equipo. Incluye tanto las aplicaciones instaladas a través del Administrador de paquetes de Windows como las instaladas por otros medios (instaladores descargados manualmente, Microsoft Store, etc.).
Además, list indica si hay una actualización disponible para alguna aplicación. Cuando la detecta, muestra la versión instalada, la versión más reciente disponible y el origen desde el que se puede obtener.
Uso
winget list [[-q] <query>] [<options>]

💡 Nota: Si solo quieres enumerar las aplicaciones que tienen una actualización disponible, usa winget list --upgrade-available (sin más argumentos) o directamente winget upgrade.
Argumentos
| Argumento | Descripción |
|---|---|
-q, --query | Consulta usada para buscar una aplicación instalada. |
-?, --help | Muestra la ayuda detallada de este comando. |
⚠️ Importante: El argumento de consulta es posicional. No se admite el uso de comodines (* o ?). Escribe la cadena de caracteres que esperas que te ayude a encontrar el paquete instalado.
Opciones
| Opción | Descripción |
|---|---|
--id | Limita la lista al identificador de la aplicación. |
--name | Limita la lista al nombre de la aplicación. |
--moniker | Limita la lista al moniker (alias) de la aplicación. |
-s, --source | Restringe la lista al origen indicado (ej: winget, msstore). |
--tag | Filtra los resultados por etiquetas. |
--command | Filtra los resultados por el comando asociado a la aplicación. |
-n, --count | Limita el número de aplicaciones mostradas. |
-e, --exact | Usa coincidencia exacta (distingue mayúsculas y minúsculas). |
--scope | Filtra por ámbito de instalación: user (usuario) o machine (equipo). |
--upgrade-available | Muestra únicamente los paquetes que tienen una actualización disponible. |
--include-unknown | Incluye paquetes cuya versión instalada no se puede determinar. |
--include-pinned | Incluye paquetes que tienen una restricción (pin) que impide su actualización. |
--sort | Ordena los resultados por un campo (name, id, source, etc.). |
--accept-source-agreements | Acepta automáticamente los acuerdos del origen. |
--header | Agrega una cabecera HTTP personalizada del origen REST. |
--verbose-logs | Genera un registro detallado de la operación. |
--disable-interactivity | Desactiva las preguntas interactivas. |
Ejemplos prácticos
Listar una aplicación por nombre:
winget list --name "Visual Studio Code"

Listar una aplicación por ID desde un origen concreto:
winget list --id Microsoft.PowerToys --source winget

Limitar la salida a 9 resultados:
winget list -n 9

Detectar aplicaciones con actualizaciones
Cuando winget list detecta que una aplicación tiene una actualización disponible, añade una columna con la versión más reciente y el origen desde donde se puede obtener. En la imagen siguiente puedes ver que la versión preliminar de Windows Terminal tiene una actualización disponible.

Si no hay actualizaciones disponibles, list mostrará solo la versión instalada actual y no aparecerá la columna de actualización.
Comando winget upgrade
El comando upgrade actualiza la aplicación especificada a su versión más reciente. Puedes usar previamente winget list para identificar qué aplicaciones necesitan actualización. En versiones recientes, winget update funciona como alias de upgrade, pero se recomienda usar upgrade por ser el verbo principal en la documentación oficial.
Este comando requiere que especifiques una cadena lo suficientemente precisa como para identificar una única aplicación. Si hay ambigüedad, winget te pedirá que filtres más el resultado.
Uso
winget upgrade [[-q] <query>] [<options>]
Argumentos
| Argumento | Descripción |
|---|---|
-q, --query | Consulta usada para buscar la aplicación a actualizar. |
-?, --help | Muestra la ayuda detallada de este comando. |
⚠️ Importante: El argumento de consulta es posicional. No se admiten comodines. Escribe la cadena de caracteres que esperas que identifique el paquete a actualizar.
Opciones
| Opción | Descripción |
|---|---|
-m, --manifest | Ruta a un archivo de manifiesto YAML local. |
--id | Actualiza usando el identificador exacto de la aplicación. |
--name | Limita la búsqueda al nombre de la aplicación. |
--moniker | Limita la búsqueda al moniker de la aplicación. |
-v, --version | Especifica la versión exacta a la que actualizar. |
-s, --source | Restringe la búsqueda al origen indicado. |
-e, --exact | Usa coincidencia exacta (distingue mayúsculas y minúsculas). |
-i, --interactive | Ejecuta el instalador en modo interactivo (muestra la interfaz). |
-h, --silent | Ejecuta el instalador en modo silencioso (sin interfaz). |
--purge | Elimina todos los archivos del directorio del paquete (portable). |
-o, --log | Guarda el registro en la ruta de archivo especificada. |
--override | Pasa una cadena directamente al instalador. |
-l, --location | Ubicación de instalación (si el instalador lo permite). |
--force | Omite errores de coincidencia de hash (no recomendado). |
--accept-package-agreements | Acepta automáticamente los términos de licencia del paquete. |
--accept-source-agreements | Acepta automáticamente los acuerdos del origen. |
--header | Cabecera HTTP personalizada del origen REST. |
--all | Actualiza todas las aplicaciones con actualización disponible. |
--include-unknown | Actualiza también los paquetes cuya versión actual no se puede determinar. |
--uninstall-previous | Desinstala la versión anterior antes de instalar la nueva. |
--disable-interactivity | Desactiva las preguntas interactivas (útil en scripts). |
--verbose-logs | Genera un registro detallado. |
Ejemplos prácticos
Actualizar una aplicación a una versión específica:
winget upgrade powertoys --version 0.15.2
Actualizar por identificador:
winget upgrade --id Microsoft.PowerToys
Actualizar todas las aplicaciones (incluidas las de versión desconocida):
winget upgrade --all --include-unknown
Actualizar todo de forma totalmente desatendida (para scripts):
winget upgrade --all --include-unknown --silent --disable-interactivity --accept-package-agreements --accept-source-agreements
💡 Nota: Algunas aplicaciones no informan de su versión instalada. Como winget no puede determinar si existe una versión más reciente, quedan fuera de --all de forma predeterminada. Añade --include-unknown para intentar actualizarlas también.
Flujo de trabajo recomendado: list + upgrade
El flujo típico para actualizar una aplicación concreta es:
- Ejecuta
winget list(owinget upgrade) para ver qué aplicaciones tienen actualizaciones disponibles. - Identifica la aplicación que deseas actualizar (por ejemplo,
Microsoft.WindowsTerminalPreview). - Ejecuta
winget upgrade --id Microsoft.WindowsTerminalPreviewpara actualizarla.

Comando winget install
El comando install instala la aplicación especificada. Antes de instalar, usa winget search para encontrar la aplicación y obtener su ID exacto.
Comando auxiliar: winget search
Busca la aplicación para obtener su identificador exacto:
winget search vscode
Esto mostrará resultados parecidos a estos:
Nombre Id Versión Origen -------------------------------------------------------------------- Visual Studio Code Microsoft.VisualStudioCode 1.85.1 winget
Uso
winget install [[-q] <query>] [<options>]

Argumentos
| Argumento | Descripción |
|---|---|
-q, --query | Consulta usada para buscar la aplicación a instalar. |
-?, --help | Muestra la ayuda detallada de este comando. |
⚠️ Importante: El argumento de consulta es posicional. No se admiten comodines. Usa una cadena que identifique de forma única el paquete que deseas instalar.
Opciones
| Opción | Descripción |
|---|---|
-m, --manifest | Ruta a un archivo de manifiesto YAML local. |
--id | Instala usando el identificador exacto de la aplicación. |
--name | Limita la búsqueda al nombre de la aplicación. |
--moniker | Limita la búsqueda al moniker de la aplicación. |
-v, --version | Especifica la versión exacta a instalar. |
-s, --source | Restringe la búsqueda al origen indicado. |
--scope | Define el ámbito: user (usuario) o machine (equipo). |
-a, --architecture | Selecciona la arquitectura: x86, x64 o arm64. |
-e, --exact | Usa coincidencia exacta (distingue mayúsculas y minúsculas). |
-i, --interactive | Modo interactivo (muestra la interfaz del instalador). |
-h, --silent | Modo silencioso (sin interfaz del instalador). |
--locale | Configuración regional en formato BCP47 (ej: es-ES, en-US). |
-o, --log | Guarda el registro en la ruta especificada. |
--override | Pasa argumentos directamente al instalador. |
-l, --location | Ubicación de instalación personalizada. |
--force | Omite la verificación de hash (no recomendado). |
--accept-package-agreements | Acepta automáticamente los términos de licencia. |
--accept-source-agreements | Acepta automáticamente los acuerdos del origen. |
--header | Cabecera HTTP personalizada del origen REST. |
-r, --rename | Cambia el nombre del ejecutable (aplicaciones portables). |
--verbose-logs | Genera un registro detallado. |
Ejemplos prácticos
Instalar una versión específica:
winget install powertoys --version 0.15.2
Instalar por identificador:
winget install --id Microsoft.PowerToys
Instalar por ID y versión concreta:
winget install --id Microsoft.PowerToys --version 0.15.2
Instalar en modo silencioso para todos los usuarios del equipo:
winget install --id Microsoft.VisualStudioCode --silent --scope machine
Resolución de ambigüedad (selección múltiple)
Si la consulta no es lo bastante específica y devuelve varios resultados, winget mostrará una lista numerada para que selecciones la aplicación correcta. Esto te da los datos adicionales necesarios para refinar la búsqueda:
winget install vscode Se encontraron varios paquetes coincidentes. Introduzca un número: 1: Visual Studio Code [Microsoft.VisualStudioCode] 2: Visual Studio Code Insiders [Microsoft.VisualStudioCode.Insiders]...
Para saber más sobre otros comandos de la consola, consulta la documentación oficial del Administrador de paquetes de Windows.