Winget upgrade all means running winget upgrade --all, a single command that updates every installed app Windows Package Manager can match to a newer version. Open Terminal, type winget upgrade to preview what will change, then run winget upgrade --all. Add --silent to hide installer windows and --include-unknown to catch apps with no detectable version.
WinGet is the command-line package manager built into Windows 11 and modern Windows 10. This guide explains the exact flags, as documented on Microsoft Learn, and how to use them safely on a home or work PC.
What Does Winget Upgrade --all Actually Do?
It checks every installed app against WinGet's sources and installs the latest available version of each one it can match. Without --all, winget upgrade on its own only lists apps that have an update waiting, which makes it a useful dry run.
WinGet is part of App Installer, a system component delivered through the Microsoft Store on Windows 10 version 1809 and later and on Windows 11, and through Windows Update on Windows Server 2025, according to the WinGet documentation on Microsoft Learn. It updates apps such as browsers, 7-Zip, VLC, PowerToys or Visual Studio Code. It does not install Windows feature updates or security patches; those still come through Windows Update.
Winget Upgrade All Command: Every Useful Flag
The flags below are taken from Microsoft's winget upgrade command reference. Short and long forms do the same thing.
| Flag | What it does |
|---|---|
-r, --recurse, --all
|
Upgrades all installed packages that have a newer version available |
-h, --silent
|
Runs each installer silently, with no installer windows |
-u, --unknown, --include-unknown
|
Also upgrades apps whose current version cannot be determined |
--pinned, --include-pinned
|
Includes apps you pinned with a non-blocking pin |
--accept-package-agreements |
Accepts package licence agreements so no prompt appears |
--accept-source-agreements |
Accepts the source agreement (for example the Microsoft Store source) |
--disable-interactivity |
Turns off interactive prompts from WinGet itself |
--uninstall-previous |
Removes the old version during upgrade, for apps that would otherwise install side by side |
-i, --interactive
|
Shows each installer's own screens so you can choose options |
One common search, winget --upgrade all, is not valid syntax. upgrade is a command, not a flag, so it has no leading dashes, and all is the flag. The correct form is winget upgrade --all.
How Do I Run Winget Upgrade All Step by Step?
Open a terminal, preview the list, then run the upgrade. The whole process usually takes a few minutes, depending on how many apps need updating and your connection speed.
- Right-click the Start button and select Terminal (Admin). An elevated window lets machine-wide installers run without a separate permission prompt for each app.
- Type
winget --versionand press Enter to confirm WinGet is installed. - Type
winget upgradeand press Enter. Read the list of apps, current versions and available versions. - If the list looks right, type
winget upgrade --alland press Enter. - Accept the source agreement if prompted the first time (type Y).
- Wait for each package to download and install. WinGet shows a progress bar and a result for each app.
- Restart any apps that were open, or restart the PC if an installer asked for it.
If winget is not recognised, App Installer may not have registered yet. Microsoft notes that WinGet becomes available only after a user's first sign-in, when the Microsoft Store finishes registering it. Updating App Installer from the Microsoft Store normally fixes this.
How Do I Run Winget Upgrade All Apps Silently?
Add --silent (or -h) together with the two agreement flags, so neither WinGet nor the installers stop to ask questions. This is the version people mean when they search for winget upgrade -h --all.
winget upgrade --all --silent --accept-package-agreements --accept-source-agreements
Silent mode depends on each app's installer. WinGet passes the silent switch defined in the package manifest, but a few installers still show a window or require a restart. Silent mode also hides choices such as desktop shortcuts or optional components, so the installer's defaults apply. If you want to see those choices for one app, upgrade it on its own with winget upgrade --id Publisher.AppName --interactive.
What Does --include-unknown Do in Winget?
--include-unknown tells WinGet to upgrade apps even when it cannot read their installed version number. Some apps do not register a version in Windows, so WinGet treats them as already up to date and skips them during --all.
winget upgrade --all --include-unknown
The cause and effect matters here. Because WinGet cannot compare versions, it will reinstall the latest release over whatever is present, even if you already had it. That is usually harmless, but it can take longer and occasionally resets an app's settings. Run winget upgrade --include-unknown first, without --all, to see which extra apps would be affected.
How Do I Stop Winget Updating a Specific App?
Pin the app, and winget upgrade --all will skip it. This is useful for software where a new version could break a workflow, such as a tool tied to a particular plug-in or a driver utility.
- Find the app's ID with
winget list. - Run
winget pin add --id Publisher.AppNameto create a standard pin. - Check your pins with
winget pin list. - When you are ready to update it again, run
winget pin remove --id Publisher.AppName.
A standard pin only excludes the app from --all; you can still upgrade it by name, and --include-pinned brings it back into a bulk run. A blocking pin, created with --blocking, stops upgrades through WinGet entirely. Microsoft's pin command documentation also describes gating pins that allow updates only within a version range, such as 1.2.*.
A Common Mistake We See
The most common problem is running winget upgrade --all on a work PC or a freshly set-up machine without previewing the list first. WinGet matches apps by name and ID, and occasionally it matches a program to a package from a different source or offers a version you did not expect. On a business machine that can mean an unplanned update to software your team relies on.
Preview with winget upgrade, pin anything sensitive, and keep app updates separate from Windows servicing. If a PC is unstable before you start, fix that first; our guides to DISM RestoreHealth and a Windows 11 repair install cover repairing Windows itself without wiping your apps. WinGet is also handy after setting up a new PC: you can remove what you do not need, as described in our guide to debloating Windows 11 safely, and keep the rest current with one command.
Frequently Asked Questions
Does winget upgrade all update Windows itself?
No. WinGet updates installed applications only. Windows feature updates, such as Windows 11 25H2, monthly security patches and driver updates still come through Settings → Windows Update. Running both keeps the operating system and your apps up to date, which closes more security gaps than either one alone.
Is winget upgrade --all safe to run?
Generally, yes. WinGet downloads installers from the sources listed in each package manifest and checks the installer hash before running it. The main risk is an unexpected app update rather than malware. Preview with winget upgrade first and pin any app that must stay on its current version.
What is the winget upgrade all apps silent command?
Use winget upgrade --all --silent --accept-package-agreements --accept-source-agreements. The --silent flag (short form -h) hides installer windows, and the two agreement flags stop licence prompts. A few installers ignore silent mode or need a restart, so check the results summary when the command finishes.
Why does winget keep showing the same update?
This usually happens when an app installs its new version side by side instead of replacing the old one, or when the app reports its version differently from the WinGet manifest. Try winget upgrade --id Publisher.AppName --uninstall-previous, or uninstall the old copy from Settings → Apps → Installed apps.
Can I schedule winget upgrade --all to run automatically?
You can create a task in Task Scheduler that runs the silent command at sign-in or on a schedule. Run it with highest privileges so machine-wide installers can complete. On shared or business PCs, scheduled bulk upgrades are best tested on one machine first, because silent updates can change software without warning anyone.
Does winget work on Windows Server?
Microsoft lists WinGet as available on Windows Server 2025, where App Installer is updated through Windows Update. Earlier Windows Server versions are not listed as supported in the WinGet documentation, so test carefully before relying on it there and use your normal patching tools for production servers.
Conclusion
Winget upgrade all gives you one command, winget upgrade --all, to keep every supported app on your PC current, with --silent, --include-unknown and pins to control how it behaves. Preview first, pin what matters, and let Windows Update handle the operating system. If you are setting up a new machine or moving to a supported version, see our Windows 11 licences.
Useful Links
| Resource | Link |
|---|---|
| Windows 11 licences | Shop Windows 11 |
| Debloat Windows 11 | How to debloat Windows 11 safely |
| Repair Windows without wiping | Windows 11 repair install |
| Repair the Windows image | DISM RestoreHealth guide |
| winget upgrade reference (Microsoft) | winget upgrade command |
| winget pin reference (Microsoft) | winget pin command |
| WinGet overview (Microsoft) | Use WinGet to install and manage applications |
اترك تعليقاً