Comando winget: list, upgrade, install y search en Windows

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>]
Ayuda del comando winget list mostrando argumentos y opciones

💡 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

ArgumentoDescripción
-q, --queryConsulta usada para buscar una aplicación instalada.
-?, --helpMuestra 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ónDescripción
--idLimita la lista al identificador de la aplicación.
--nameLimita la lista al nombre de la aplicación.
--monikerLimita la lista al moniker (alias) de la aplicación.
-s, --sourceRestringe la lista al origen indicado (ej: winget, msstore).
--tagFiltra los resultados por etiquetas.
--commandFiltra los resultados por el comando asociado a la aplicación.
-n, --countLimita el número de aplicaciones mostradas.
-e, --exactUsa coincidencia exacta (distingue mayúsculas y minúsculas).
--scopeFiltra por ámbito de instalación: user (usuario) o machine (equipo).
--upgrade-availableMuestra únicamente los paquetes que tienen una actualización disponible.
--include-unknownIncluye paquetes cuya versión instalada no se puede determinar.
--include-pinnedIncluye paquetes que tienen una restricción (pin) que impide su actualización.
--sortOrdena los resultados por un campo (name, id, source, etc.).
--accept-source-agreementsAcepta automáticamente los acuerdos del origen.
--headerAgrega una cabecera HTTP personalizada del origen REST.
--verbose-logsGenera un registro detallado de la operación.
--disable-interactivityDesactiva las preguntas interactivas.

Ejemplos prácticos

Listar una aplicación por nombre:

winget list --name "Visual Studio Code"
Resultado de winget list filtrado por nombre de aplicación

Listar una aplicación por ID desde un origen concreto:

winget list --id Microsoft.PowerToys --source winget
Resultado de winget list filtrado por identificador y origen

Limitar la salida a 9 resultados:

winget list -n 9
Salida de winget list limitada a nueve aplicaciones

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.

winget list mostrando la columna de actualización disponible para una aplicación

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

ArgumentoDescripción
-q, --queryConsulta usada para buscar la aplicación a actualizar.
-?, --helpMuestra 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ónDescripción
-m, --manifestRuta a un archivo de manifiesto YAML local.
--idActualiza usando el identificador exacto de la aplicación.
--nameLimita la búsqueda al nombre de la aplicación.
--monikerLimita la búsqueda al moniker de la aplicación.
-v, --versionEspecifica la versión exacta a la que actualizar.
-s, --sourceRestringe la búsqueda al origen indicado.
-e, --exactUsa coincidencia exacta (distingue mayúsculas y minúsculas).
-i, --interactiveEjecuta el instalador en modo interactivo (muestra la interfaz).
-h, --silentEjecuta el instalador en modo silencioso (sin interfaz).
--purgeElimina todos los archivos del directorio del paquete (portable).
-o, --logGuarda el registro en la ruta de archivo especificada.
--overridePasa una cadena directamente al instalador.
-l, --locationUbicación de instalación (si el instalador lo permite).
--forceOmite errores de coincidencia de hash (no recomendado).
--accept-package-agreementsAcepta automáticamente los términos de licencia del paquete.
--accept-source-agreementsAcepta automáticamente los acuerdos del origen.
--headerCabecera HTTP personalizada del origen REST.
--allActualiza todas las aplicaciones con actualización disponible.
--include-unknownActualiza también los paquetes cuya versión actual no se puede determinar.
--uninstall-previousDesinstala la versión anterior antes de instalar la nueva.
--disable-interactivityDesactiva las preguntas interactivas (útil en scripts).
--verbose-logsGenera 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:

  1. Ejecuta winget list (o winget upgrade) para ver qué aplicaciones tienen actualizaciones disponibles.
  2. Identifica la aplicación que deseas actualizar (por ejemplo, Microsoft.WindowsTerminalPreview).
  3. Ejecuta winget upgrade --id Microsoft.WindowsTerminalPreview para actualizarla.
Flujo de winget list seguido de winget upgrade para actualizar Windows Terminal

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.

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>]
Ayuda del comando winget install mostrando argumentos y opciones

Argumentos

ArgumentoDescripción
-q, --queryConsulta usada para buscar la aplicación a instalar.
-?, --helpMuestra 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ónDescripción
-m, --manifestRuta a un archivo de manifiesto YAML local.
--idInstala usando el identificador exacto de la aplicación.
--nameLimita la búsqueda al nombre de la aplicación.
--monikerLimita la búsqueda al moniker de la aplicación.
-v, --versionEspecifica la versión exacta a instalar.
-s, --sourceRestringe la búsqueda al origen indicado.
--scopeDefine el ámbito: user (usuario) o machine (equipo).
-a, --architectureSelecciona la arquitectura: x86, x64 o arm64.
-e, --exactUsa coincidencia exacta (distingue mayúsculas y minúsculas).
-i, --interactiveModo interactivo (muestra la interfaz del instalador).
-h, --silentModo silencioso (sin interfaz del instalador).
--localeConfiguración regional en formato BCP47 (ej: es-ES, en-US).
-o, --logGuarda el registro en la ruta especificada.
--overridePasa argumentos directamente al instalador.
-l, --locationUbicación de instalación personalizada.
--forceOmite la verificación de hash (no recomendado).
--accept-package-agreementsAcepta automáticamente los términos de licencia.
--accept-source-agreementsAcepta automáticamente los acuerdos del origen.
--headerCabecera HTTP personalizada del origen REST.
-r, --renameCambia el nombre del ejecutable (aplicaciones portables).
--verbose-logsGenera 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.