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-unknown also 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.

Written by Daniel Ruiz Peláez, Systems & Infrastructure Engineer (Linux, VMware, Proxmox, Active Directory, networking and security). These are notes from real problems I have solved.

← Back to all posts