WinGet Update Windows 11 Apps With 1 Easy Powerful Command

Updating your Windows 11 apps one at a time is a waste of your afternoon. Winget update can update many of the apps on your PC in a single command, as long as it can identify them and find an available update. Here’s the exact workflow I use on my own Windows 11 25H2 machine to keep everything current in about 30 seconds.

Last updated September 2026 for Windows 11 25H2 and winget 1.28+.

The one winget update command that does it all

On Windows 11, open Windows Terminal (Admin) and run:

winget upgrade --all --silent --accept-package-agreements --accept-source-agreements

How to Update All Your Apps at Once with WinGet on Windows 11 (Easy 2026 Guide)

If the list includes apps with an Unknown installed version and you want WinGet to attempt those updates too, run:

winget upgrade --all --include-unknown --silent --accept-package-agreements --accept-source-agreements

That single line does five things:

  • –all attempts to update every detected app with an available update.
  • –include-unknown tells WinGet to also attempt updates for apps whose installed version cannot be identified. That can catch more software, but it is best used after you review the list first because WinGet cannot always tell whether those apps are already current.
  • –silent asks WinGet to use the package’s silent installer mode, but that only works when the installer’s manifest provides and supports silent switches. Some third-party installers may still show a window, ask for elevation, or otherwise require attention. Microsoft defines –silent as running the installer in silent mode and suppressing UI, but the actual behavior still depends on the installer.
  • –accept-package-agreements pre-accepts EULAs so it doesn’t stop and wait.
  • –accept-source-agreements pre-accepts source EULAs the same way.

Kick it off, grab coffee, come back. WinGet will attempt to update every eligible package it detects. Most updates should complete without extra prompts, although some installers can still require attention. If this is your first time using WinGet, start with our full WinGet install guide first — it walks you through getting WinGet set up correctly.

Check what’s about to update first

If you’re the cautious type — and honestly, you should be for the first run — check the update list before firing:

winget upgrade

How to Update All Your Apps at Once with WinGet on Windows 11 (Easy 2026 Guide)

You’ll get a table of every app with an available update, showing the current version, the target version, and the source (winget or msstore). Nothing changes until you run the actual upgrade command.

winget update just the apps you care about

Sometimes --all is overkill. To upgrade a single app:

winget upgrade --id Microsoft.PowerShell

How to Update All Your Apps at Once with WinGet on Windows 11 (Easy 2026 Guide)

Use winget list first if you need to find the exact ID. Case doesn’t matter, but the dotted format does — Microsoft.PowerShell works, powershell won’t.

To upgrade a few apps in one shot without doing everything on the system:

winget upgrade Microsoft.PowerShell Microsoft.WindowsTerminal

Skip apps you don’t want to touch

WinGet’s pin feature is the unsung hero of upgrade --all. Pin any app you want to hold back — perfect for Node.js LTS lines, that one Adobe app your workflow depends on, or a specific version of Docker Desktop your team standardized on.

Pin an app to its current version:

winget pin add --id OpenJS.NodeJS.LTS

Or pin to a specific major version:

winget pin add --id OpenJS.NodeJS.LTS --version 20.*

Now winget upgrade --all will skip that app. You can remove the pin later with:

winget pin remove --id OpenJS.NodeJS.LTS

Turn this into a monthly maintenance script

Screenshot of Windows Task Scheduler interface displaying task summary and status information for the last 24 hours.

In Task Scheduler, run this task under your normal Windows account, select Run with highest privileges, and test it manually before relying on the monthly schedule.

$LogPath = "$env:USERPROFILE\Documents\winget-update-log.txt"
Start-Transcript -Path $LogPath -Append
winget source update
winget upgrade --all --silent --disable-interactivity --accept-package-agreements --accept-source-agreements
Stop-Transcript

Keep –include-unknown out of the scheduled task unless you have manually reviewed the affected apps and are comfortable with WinGet attempting their updates automatically. The transcript file gives you a clean log of what was updated, when. If something breaks after an update, you’ll know exactly which one to blame.

What if winget upgrade --all skips an app?

The three most common reasons an app gets skipped:

  1. WinGet cannot determine the installed version. Some apps report versions like 2026.09.1-preview that WinGet can’t compare reliably.. Fix: run winget upgrade first, review the apps marked as Unknown, then use --include-unknown only if you want WinGet to attempt those updates.
  2. The app is pinned. Run winget pin listto see packages that are currently excluded from bulk upgrades.
  3. WinGet cannot match the app to a package. WinGet can only update software it recognizes through a configured source. An app installed manually from a .exe may still be detected, but apps without a package match will not appear in the upgrade list. Run winget list to see what WinGet can identify.
  4. The update needs administrator rights. Some machine-wide apps require elevation to update. Close the terminal, reopen Windows Terminal (Admin), and try again.

winget list --upgrade-available

How to Update All Your Apps at Once with WinGet on Windows 11 (Easy 2026 Guide)

winget source update

Command line interface displaying the output of the 'winget source update' command, showing progress and completion messages.

winget source reset --force

Use the first command to see detected apps with updates. If packages or sources appear missing, try winget source update. Use winget source reset --force only as a last resort because it resets the configured WinGet sources.

Bonus: back up your app list before a Windows reinstall

Before wiping a machine, export the apps WinGet can identify so you can reinstall many of them more quickly on the new PC:

winget export -o C:\apps.json

Add –include-versions only if you want the export file to include the currently installed version numbers:

winget export -o C:\apps.json --include-versions

The export command creates a JSON file of identifiable applications. The optional --include-versions setting records installed versions; it does not make the export a full backup.

winget import -i C:\apps.json --accept-package-agreements --accept-source-agreements

That command can reinstall many of the apps WinGet exported, saving time after a clean Windows install. It will not restore app settings, licenses, user data, browser profiles, game saves, or programs WinGet could not identify. It’s a lifesaver for the Windows 11 26H2 clean-install crowd.

Check out ExpressVPN

winget

RECENT POSTS YOU MIGHT LIKE


Discover more from Microsoft News Now

Subscribe to get the latest posts sent to your email.