saasrankedSoftware, ranked on the facts

winget upgrade --all: update all apps at once on Windows

Applies to Windows 11, Windows 10 version 1809 or later, Windows Server 2025 · 5 min · Beginner
Checked against Microsoft's documentation on 12 Sept 2026

In short

  • winget upgrade with no arguments lists every app that has an upgrade available1.
  • winget upgrade --all upgrades all installed packages that have an update, and -r and --recurse are the same option1.
  • --include-unknown (-u) upgrades packages even if their current version can't be determined1.
  • --silent (-h) runs the installers in silent mode, which suppresses all installer UI1.
  • WinGet is supported on Windows 10 version 1809 (build 17763) or later, on Windows 11 and on Windows Server 20253.

To update every app at once, open Command Prompt or PowerShell and run winget upgrade with no arguments. It shows all available upgrades1,4. Then run winget upgrade --all to install them1. WinGet skips apps whose version it can't determine unless you add --include-unknown, and it skips pinned apps unless you add --include-pinned1.

Syntax

winget upgrade takes an optional query and a list of options1. It also has the alias update1.

Command Prompt
winget upgrade [[-q] <query> ...] [<options>]

These options matter most when you update everything at once1:

  • --all (also -r or --recurse) upgrades all installed packages to the latest version, if one is available.
  • --include-unknown (also -u or --unknown) upgrades packages even if their current version can't be determined.
  • --include-pinned (also --pinned) upgrades packages even if they have a non-blocking pin.
  • --silent (also -h) runs the installer in silent mode, which suppresses all UI.
  • --interactive (also -i) runs the installer in interactive mode.
  • --accept-package-agreements and --accept-source-agreements accept the license agreements and avoid the prompts.

The commands work the same in Command Prompt, Windows PowerShell and PowerShell 74.

Examples

List the apps that have updates

Start here. With no arguments, winget upgrade shows all available upgrades and installs nothing1.

Command Prompt
winget upgrade

It returns a list of the installed apps that have an upgrade available1. winget list --upgrade-available gives a similar list. It shows the update version and the source it comes from2.

Update all apps

This upgrades every installed app that has an update. WinGet looks for all apps with updates and tries to install each one1.

Command Prompt
winget upgrade --all

Microsoft advises running winget upgrade without arguments first, to preview which apps will be upgraded1.

Include apps with an unknown version

Some apps don't provide a version. WinGet can't tell if a newer one exists, so it won't upgrade them unless you add --include-unknown1.

Command Prompt
winget upgrade --all --include-unknown

To preview those apps first, winget list takes the same option. It lists packages even if their current version can't be determined2.

Command Prompt
winget list --upgrade-available --include-unknown

Update all apps without installer windows

--silent suppresses all installer UI. The two accept options accept the license agreements and avoid the prompts1.

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

Without administrator rights, some apps may need elevation to install. Windows then asks you to elevate. If you choose not to, that app fails to install3.

Include pinned apps

Apps pinned with WinGet are skipped by --all. Add --include-pinned to upgrade them. Only apps with non-blocking pins are upgraded1.

Command Prompt
winget upgrade --all --include-pinned

Update a single app

To upgrade one app, name it by its ID1.

Command Prompt
winget upgrade --id Microsoft.PowerToys

Common errors

An app is skipped by --all. Either WinGet can't determine its current version, or the app is pinned. Add --include-unknown or --include-pinned1.

An app fails to install. Without administrator rights, some apps need elevation. If you don't approve the Windows elevation prompt, the app fails to install3. In an Administrator Command Prompt you won't see those prompts. Use caution there, and only install apps you trust3.

WinGet asks you to choose an app. When you name an app, upgrade needs the exact string. If there is any ambiguity, WinGet asks you to filter the command further1. Use --id, or add --exact to match the exact string, including case1.

winget isn't available yet. WinGet only becomes available after you sign in to Windows as a user for the first time. If you just signed in for the first time and WinGet isn't there yet, open PowerShell and run this command to request its registration3:

PowerShell
Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe

If App Installer isn't installed on your device, you can get it from the Microsoft Store3.

winget is missing on a server. WinGet isn't available on Windows Server 2022 or earlier. Windows Server 2025 includes it only for Windows Server with Desktop Experience4.

Questions

Does winget upgrade --all work in PowerShell?
Yes. You can run winget from any command shell, including Command Prompt (cmd.exe), Windows PowerShell (powershell.exe) and PowerShell (pwsh.exe)4.
How do I see the updates before I install them?
Run winget upgrade with no arguments. It shows all available upgrades1. winget list --upgrade-available lists the same kind of apps, with the new version and the source it comes from2.
Why does winget upgrade --all skip some apps?
Some apps don't provide a version, so WinGet can't tell whether a newer one exists. Add --include-unknown to upgrade them. Apps pinned with WinGet are also skipped unless you add --include-pinned1.
Do I need to run winget as administrator?
Not for every app. Without administrator rights, some apps may need elevation to install. Windows then asks you to elevate, and the app fails to install if you decline. In an Administrator Command Prompt you won't see those prompts, so install only apps you trust3.

12 Sept 2026: Published.

Sources

  1. upgrade command (winget), Microsoft Learn. Accessed 12 Sept 2026.
  2. list command (winget), Microsoft Learn. Accessed 12 Sept 2026.
  3. Use WinGet to install and manage applications, Microsoft Learn. Accessed 12 Sept 2026.
  4. Install PowerShell 7 on Windows, Microsoft Learn. Accessed 12 Sept 2026.