How to use the Windows Package Manager to update installed programs at once
Microsoft released the first final version of Windows Package Manager just a moment ago. The program adds new options to Windows to install, uninstall and manage programs installed on the system. You can check out the linked review above to find out more about the base functionality of the package manager for Windows.
In this guide, we'll be taking a close look at the upgrade feature that it supports. Unlike most Windows package managers, upgrading is not limited to the programs installed using the package manager, but to all programs installed on the device, provided that they are found in the repository of programs that it uses.
In other words: you can use the Windows Package Manager to update installed Windows programs in one go, with just a single command.
Here is how it works:
First thing you need to do is download the latest version of the Windows Package Manager from the official GitHub repository and install it on the system. It is available for Windows 10 devices only.
Once installed, open an elevated PowerShell prompt, e.g. by using the shortcut Windows-X and selecting Windows PowerShell (admin) from the "secret" menu that opens.
Run the command winget upgrade to get a list of programs for which updates are available. The recognition depends on the repository that is being used. The default community repository has over 1500 different programs at the time of writing.
Each program is listed with its name, ID, the installed and available version. The available version should be newer than the installed version.
Upgrade all out of date programs on Windows 10 with Winget
While you can upgrade individual programs using winget upgrade programname, e.g. winget upgrade WizTree, you can also use the winget upgrade --all command to upgrade all out of date programs in one go.
The default option displays the installers of each program, but you may suppress this by adding the -h parameter for silent upgrade installations. Not all programs displays windows or options during installation though.
Each program is downloaded from the linked path, usually the official repository, and then installed on the device.
Once done, rerun the winget upgrade command to check if all upgrades for the outdated programs were installed on the device. Windows 10 users who want to have more control may run upgrades individually instead.
Closing Words
Windows Package Manager is a good option when it comes to upgrading programs that are out of date. Like any other program of its kind, it is limited to the programs that are in its database. While it is possible to create a custom repository and maintain a list of programs using it, it is probably too much work for individuals to do so.
Now You: how do you keep your programs up to date?
upgrade -all bombs out with error number on malwarebytes, doesn’t have a lot of programs yet.
SUMo is popular, but unreliable. A few years ago, there was an incident where SUMo’s download server was infected with malware. Furthermore, I may see beta or release pending versions, even though I specified “stable”.
SUMo could not manage updates properly, so I switched to PatchMyPC.
What I lack in PatchMyPC, I get RSS on the app development side, and to information from SUMo.
Considering zero-die attacks, etc., it is important to streamline the application of updates, so I will try the Windows Package Manager.
I use Software Update Monitor, SUMo for this purpose.
Im worry about github developments scripts because i listen that some projects are infected with malware and another harmfull files. My choice is search and install manually soft updates.
and dont forget that you can always type more with beloved powershell
https://en.wikipedia.org/wiki/PowerShell#Comparison_of_cmdlets_with_similar_commands
I’ve been using Chocolatey for years and I even set up a weekly task to run an upgrade all command so I never have to mess with it. Windows Package Manager has an advantage over Chocolatey in that it knows what it already installed on the system and when it’s updated outside of when Package Manager does it. Chocolatey has those features, but not in the free version. WPM is still missing a few programs that I use that Chocolatey covers and I haven’t seen that it has a “pin” feature like Chocolatey where you can prevent it from updating selected programs.
I guess. It would be nice to know where the updates come from and what has changed. There have been third party utilities to look for outdated programs forever. Nothing magical about CLI vs. GUI.
It can be fairly difficult to add repositories to distros, the Linux community tends to keep packages well corralled. A home made Windows “repository” would be what, IDK, a list of links that have to be updated constantly? Not at all what distro repos comprise.
I wonder what happens if winget finds programs on your computer it doesn’t like?
I’ve been using Chocolatey for quite a while.
choco install vlc firefox potplayer -y
cup all -y
choco uninstall googlechrome -y
Download an install in bulk, by-passing my habitual VirusTotal scan. No thanks.
Who keep the repository clean of malware?
If we are not directly downloading from the original website?
It’s nor really visible in the screenshots because of the blue background but winget seems to download the apps from the original websites
Hmmm . . . I perceive a problem that prevents a Linux like experience. Several programs I run are one year or even lifetime “gratis” license programs with the serial associated directly with the installed program and version. For example, “Glary Utilities Pro.” The program updates occasionally; however, the updates are so minor that even an older Pro version of the program is better than a new “free” version, so I wouldn’t want it updated.
Using a tool like “Patch My PC,” allows the user to uncheck any undesired updates and update all of the rest which could be over a dozen. Winget Upgrade [name of each program] would be a burden if I still want to use a licensed, Pro version of some program that would be included in the winget upgrade –all command. Maybe there is an exclusion command I missed.
The other drawback I see with Windows Package Manager is it’s uselessness in setting up a fresh install. Say I have a dozen programs I want to install on a fresh Windows 10 machine; I can’t make that happen with Windows Package Manager. I would have to use something like Chocolately or Ninite, etc. to download/install a program before updating with the Windows Package Manager.
With Linux, the situation is much different because programs are open source and serials/licenses aren’t an issue. As well, most distros have a prominent Software Repository that enables easy click, click, click checking for programs to install [if not already installed–I find Linux distros highly desirable because nearly anything I need is already packaged]. For me, it makes setting up a Linux machine incomparably faster and more secure than any Windows machine.
The only way to replicate a Linux experience would be for Microsoft to offer a “software repository” for popular, desirable programs that the Windows Community agrees are useful to offer without adding bundleware, etc. to the programs.
VioletMoon,
Unless I’m missing something you can definitely do an automated install of all the programs on a fresh Windows install with winget. That’s like half the point. Winget is Chocolatey done properly.
> Say I have a dozen programs I want to install on a fresh Windows 10 machine; I can’t make that happen with Windows Package Manager.
Just because you can’t do something doesn’t mean Windows Package Manager can’t do it.
Okay–name any dozen programs you would like on a fresh Windows 10 install and use Windows Package Manager to download and install only those dozen programs without resorting to a line-by-line command.
Show us your technique and mastery.
Not this–which is the point I am making:
winget install –id=Microsoft.Teams -e ; winget install –id=Zoom.Zoom -e ; winget install –id=Notion.Notion -e ; winget install –id=SlackTechnologies.Slack -e ; winget install –id=Toggl.TogglDesktop -e ; winget install –id=ShareX.ShareX -e ; winget install –id=Loom.Loom -e ; winget install –id=LogMeIn.LastPass -e ; winget install –id=Spotify.Spotify -e ; winget install –id=Discord.Discord -e ; winget install –id=TeamViewer.TeamViewer -e ; winget install –id=Microsoft.Skype -e ; winget install –id=Microsoft.Edge -e ; winget install –id=Mozilla.Firefox -e ; winget install –id=Google.Chrome -e ; winget install –id=Microsoft.OneDrive -e ; winget install –id=Google.DriveFileStream -e
> without resorting to a line-by-line command.
That was not in the original statement.
Do you think we can’t see what you’re doing? You first blurted out something that does not correspond to reality (because you do not understand the tool, but you have a desire to blurt out in excess). And when the mistake was pointed out to you, you started making clarifications that changed the original terms.
But even now you, again gibbering without understanding the question, so I show my “technique and mastery”:
winget can import (and export) a list of applications. With one short command if you have that list (made beforehand with export or manually).
And you once again showed that you’re blurting your tongue without even looking at the documentation.
P.S.
I miss the days when only experienced people could be Linux users, able to at least read the documentation for a program before smartly scribbling their “opinions” about it.
Use a splat table and a foreach command.
I would just create a batch file with all of the programs I want. The winstall GUI will do it for you. Then you just run that file and it installs everything in one go.
I tried it, it’s almost like how it was on Linux – sudo apt get update.
> Now You: how do you keep your programs up to date?
https://ketarin.org/ – can check, download, execute actions after download (for example extract or run setup).
That took a long time for Microsoft to copy a feature that is already for ages available for Ubuntu and other Linux distro systems.
In the End maybe MS starts to learn that convenience for computer users is an important issue.
I only hope that MS has made the security make tight such that hackers cannot change the links to the upgrade sources, else you introduce a very dangerous route for malware/ransomware upload.
Will do some tests first on my VB installation because risking it on my main machine.
Well, if you read about what happened with npm, or for that matter browser extensions with similar names, or the same with Google Play Store apps, etc., then the lesson here is clear: do not trust automatic installations, upgrades, whatever and ALWAYS verify everything. For example: you download Google Chrome. Scan the .exe installer at VirusTotal. Check the digital signature of the .exe. Run it on a VM or at app.any.run and see how it goes. Then, and only then, if everything is OK install it on your machine.
Dude you’re paranoid.
Konstantinos,
Steve is (he’s also illogical, since he doesn’t trust the package manager, but then immediately trusts virustotal). ard OTOH makes a very sensible point.
‘…Then, and only then, if everything is OK install it on your machine’.
Whatever happened to ‘living dangerously’?!!
;-)