sábado, 14 de febrero de 2026

📝 Winget upgrade vs winget update: ¿cuál es la diferencia y cómo bloquear actualizaciones con pins?

Cuando administramos aplicaciones en Windows, WinGet se ha convertido en una herramienta fundamental para instalar, actualizar y mantener software desde la línea de comandos. Sin embargo, aún genera confusión la diferencia entre winget upgrade y winget update, así como el uso del comando winget pin para evitar que ciertos programas se actualicen automáticamente.

En esta entrada te explico estas diferencias y te muestro un ejemplo real de cómo bloquear un programa para que no se actualice, utilizando blocking pins.


🔄 ¿Cuál es la diferencia entre winget upgrade y winget update?

Según la documentación oficial, update no es un comando diferente, sino un alias de upgrade. Esto significa que:

➡️ winget update = winget upgrade\ Ambos realizan exactamente la misma acción: actualizar aplicaciones. [learn.microsoft.com], [github.com]

Por lo tanto, cualquier comando que ejecutes con upgrade funcionará igualmente con update, incluyendo parámetros como --all, --silent, --include-unknown, etc.


🔒 Cómo funciona el pinning en WinGet

WinGet permite “anclar” paquetes para controlar si pueden o no ser actualizados:

Tipos de pin:

  1. Pinning\ Excluye al paquete de winget upgrade --all, pero permite actualizarlo manualmente. [learn.microsoft.com]

  2. Blocking\ Bloquea completamente la actualización, incluso si se intenta actualizar el paquete directamente.\ Requiere eliminar el pin o usar --force para sobrescribirlo. [learn.microsoft.com]

  3. Gating\ Permite actualizaciones solo dentro de un rango de versiones definido. [learn.microsoft.com]

En este post nos enfocaremos en blocking, ideal cuando quieres impedir que un programa sea actualizado bajo cualquier circunstancia.


🛑 Ejemplo práctico: bloquear MobaXterm para que no se actualice

A continuación tienes un ejemplo real ejecutado con WinGet, usando un prompt tradicional tipo:

c:\WinUser>

📌 1. Ver qué paquetes están actualmente anclados (pins)

c:\WinUser> winget pin list
Nombre    Id                Versión        Origen Tipo de anclaje
-----------------------------------------------------------------
MobaXterm Mobatek.MobaXterm 25.0.0    winget Pinning

📌 2. Quitar el pin existente

c:\WinUser> winget pin remove Mobatek.MobaXterm
Encontrado MobaXterm [Mobatek.MobaXterm]
El anclaje se quitó correctamente

📌 3. Crear un pin blocking para impedir actualizaciones

c:\WinUser> winget pin add Mobatek.MobaXterm --blocking
Encontrado MobaXterm [Mobatek.MobaXterm]
Anclaje agregado correctamente

📌 4. Verificación final

c:\WinUser> winget pin list
Nombre    Id                Versión        Origen Tipo de anclaje
-----------------------------------------------------------------
MobaXterm Mobatek.MobaXterm 24.2.0.5220    winget Blocking

Ahora MobaXterm no se actualizará automáticamente, ni con winget upgrade --all ni con winget upgrade Mobatek.MobaXterm, a menos que lo fuerces manualmente o elimines el pin.


Conclusión

  • winget update y winget upgrade son lo mismo: update es solo un alias. [learn.microsoft.com]
  • Puedes usar winget pin para evitar que una aplicación se actualice.
  • El tipo blocking es útil para software corporativo, herramientas críticas o versiones específicas que deseas mantener estables. [learn.microsoft.com]