Updating Windows Software Is Easier Than Ever with WinGet
Keeping Windows applications current used to mean opening each program in turn, hunting for Check for Updates somewhere under Help, and clicking through an installer wizard — then doing it twenty-nine more times. There is a single command that does the whole lot, and it has been sitting on your machine the entire while.
What WinGet is
WinGet is the Windows Package Manager: a command-line tool that discovers, installs,
upgrades and removes software from Command Prompt, PowerShell or Windows Terminal. If
you have used apt on Linux or Homebrew on a Mac, it is the same idea,
made official by Microsoft.
It is worth being precise about where it comes from, because “built into Windows” is almost right and occasionally misleading. WinGet ships as part of the App Installer component, which the Microsoft Store delivers and keeps updated. It is there on Windows 11, on modern builds of Windows 10, and on Windows Server 2025. Microsoft’s floor is Windows 10 version 1809 (build 17763) or later. On a brand-new profile it can take a moment to register, and on a stripped-down machine it may genuinely be absent — in which case App Installer is a free download from the Store.
Type winget at a prompt. If you get a help screen, you already have it.
And while we are here: it is said “WIN-get” — two syllables, the Win of Windows and the plain word get, which is exactly what the name is made of. You will hear it said other ways, the video further down among them, and nobody is going to correct you at the terminal. But that is the usual one, and it is the one that makes the name explain itself.
Why it is worth the switch
- One command instead of thirty. A single line checks every supported application you have installed and brings them all up to date.
- It covers both halves of your machine. Store apps and ordinary desktop software downloaded from anywhere else are managed through the same interface, from the same prompt.
- It can be scripted. A batch file or PowerShell script can set up a brand-new PC, or run a weekly update, without anyone sitting there clicking Next. This is the part that turns a convenience into a tool.
- It can run quietly — though not by default, which is worth knowing before you walk away from it. See below.
The commands
Open Command Prompt, PowerShell or Windows Terminal. Start with the one that changes nothing.
winget upgrade
Lists every application with a newer version available, and stops there. Nothing is downloaded and nothing is installed. Microsoft’s own advice is to run this first, so you can see what is about to happen.
winget upgrade --all
The blanket upgrade: find, download and install an update for every installed
application that has one. -r and --recurse do the same thing
if you prefer the short form, and winget update is an accepted alias for
winget upgrade throughout.
winget upgrade --all --include-unknown
Some applications do not report a version number at all — they are simply always
“latest.” WinGet cannot tell whether those need updating, so plain
--all passes over them without a word. This flag tells it to try anyway.
Why an app still gets skipped
This is the part most write-ups leave out, and it is the reason people conclude that
WinGet “doesn’t work.” --all quietly declines to touch
two kinds of package, and each has its own switch.
The first is the unknown-version case above. The second is pinning:
WinGet lets you hold a package at a particular version, and --all respects
that pin and moves on. If you have ever pinned something and forgotten, this is where
it hides. To sweep up both at once:
winget upgrade --all --include-unknown --include-pinned
That is the genuinely complete version of the blanket upgrade. Note that
--include-pinned only releases non-blocking pins; a blocking pin
stays put, which is the whole point of having set one.
About “silent”
WinGet is often described as updating everything quietly in the background. That is something it can do, not what it does by default: the default experience shows installer progress, and some installers will put their own window on screen. If you want it to keep quiet, ask:
winget upgrade --all --silent
-h is the short form. It suppresses installer UI where the installer
supports being run that way — WinGet can pass the flag along, but it cannot make
a badly-behaved installer honor it.
Running it as administrator
Some applications need elevation to install. Run WinGet from an ordinary prompt and Windows will raise a User Account Control prompt for each one; decline, and that install fails. Run it from an administrator prompt and those prompts do not appear at all — which is exactly what you want for an unattended run, and exactly why Microsoft attaches a caution to it. An elevated prompt installs whatever it is told to without asking you again. Use it for a list of applications you already trust.
Watch it done
If you would rather see it happen once before trying it yourself, this runs the blanket upgrade in Windows Terminal from start to finish.
Or open it directly on YouTube.
Where to go next
-
The tool itself.
winget --helpprints every command and option it supports, andwinget <command> --helpdrills into one. It is the one reference that is guaranteed to match the version you actually have. - Microsoft Learn — Windows Package Manager learn.microsoft.com The official documentation: every command, every flag, and the notes on pinned and unknown-version packages that the commands above are built around.
- winget.tech winget.tech A browsable front end for the package repository — search ten thousand-odd packages, tick the ones you want, and it writes the install script for you. Its blog is mostly troubleshooting: error codes, hash mismatches, installs that hang.
None of this is new — WinGet has been shipping for years. It is just one of those tools that stays invisible until somebody tells you it is there. Now you know.