Update All Windows Apps Silently with winget
List pending updates:
winget upgrade
Update everything silently and save a log (create C:\TMP first):
winget upgrade --all --accept-source-agreements --accept-package-agreements --silent *> "C:\TMP\winget_upgrade.log"
Useful extras:
--include-unknownalso updates apps whose installed version winget can't detect.- Keep an app on its current version:
winget pin add --id Google.Chrome.
Schedule it with Task Scheduler as an admin user with Run with highest privileges:
powershell.exe -NoProfile -Command "winget upgrade --all --accept-source-agreements --accept-package-agreements --silent"
winget is not available to the SYSTEM account by default, so don't run the task as SYSTEM.
Related: winget as administrator.