Actualiza Todos los Programas de un Golpe en Windows

Actualizar todos los programas instalados en un sistema operativo es fundamental para mantener la seguridad y el rendimiento.
En Linux, esto ha sido siempre muy sencillo con un par de comandos:
sudo apt-get update
sudo apt-get upgrade
O en una sola línea:
sudo apt update && sudo apt upgrade -y
Con esto, se actualizan tanto los repositorios como los programas instalados.
Pero, ¿y en Windows?
Actualizar todos los programas en Windows con un solo comando
Ahora, con winget, Microsoft ha facilitado este proceso. Solo necesitas ejecutar:
winget update --all
Si antes quieres ver qué programas tienen actualizaciones disponibles, usa:
winget update
Gracias a estos comandos, podemos mantener nuestro sistema actualizado sin esfuerzo.
¿Se pueden excluir programas de la actualización?
Actualmente, winget no tiene una opción directa para excluir aplicaciones específicas de la actualización. Sin embargo, con PowerShell podemos solucionar esto.
Aquí te dejo un script que actualiza todos los programas excepto los que especifiques:
# Define los programas que NO deseas actualizar.
$excludedApps = @(
"Microsoft.VisualStudioCode",
"Google.Chrome"
)
# Obtén la lista de actualizaciones disponibles en JSON.
try {
$updatesJson = winget upgrade --accept-source-agreements --accept-package-agreements --output json
$upgradableApps = $updatesJson | ConvertFrom-Json
} catch {
Write-Error "No se pudo obtener la lista de actualizaciones. Verifica que winget esté instalado y actualizado."
exit 1
}
# Recorre cada programa y actualiza solo si NO está en la lista de exclusión.
foreach ($app in $upgradableApps) {
if ($excludedApps -contains $app.Id) {
Write-Host "Saltando actualización para $($app.Id) (excluido por configuración)."
}
else {
Write-Host "Actualizando $($app.Id)..."
winget upgrade --id $($app.Id) --accept-source-agreements --accept-package-agreements
}
}
Conclusión
Lo que en Linux ha sido posible desde hace mucho tiempo con apt update && apt upgrade, ahora en Windows también se puede lograr con winget upgrade --all.
Sin embargo, si necesitas personalizar las actualizaciones, puedes utilizar un pequeño script en PowerShell para excluir ciertos programas y mantener el control total de tu sistema.