What is Windows Package Manager?
Windows Package Manager is a native tool consisting of a command line tool and a set of services for installing application packages. It’s included in later versions of Windows 10 and Windows 11.
Independent vendors (ISVs) can publish applications via the Microsoft Community Package Manifest Repository on GitHub.
When a package manifest is submitted to Microsoft, it is validated and checked for compliance with Windows Package Manager policies to ensure that it is functional and not malicious. After these checks are passed, it is added to the public facing repository for use by the client side winget tool.
This approach is somewhat like Linux package managers, lending itself easily to automation via scripts or device management tooling (Microsoft InTune, SCCM, Workspace ONE UEM). Given that, by default, the applications reside out on the internet, there is the caveat that an internet connection is required (though it is possible to set up a private repository). The upside is managing deployments and updates is simplified.
What are the benefits of using Windows Package Manager?
Simply put, efficiency is the key benefit of Windows Package Manager and it will free up time for your support teams and administrators. So what can it really do?
- Quickly and easily install software: Winget installs software with a single command line.
- Updates software: Automatically updates software to ensure your users are always on the latest version.
- Manages your software inventory: Winget keeps track of all the software installed on your systems.
- Deploy software on multiple systems: You can use winget to simultaneously deploy and update software to multiple systems at once to save time and effort.
By offering increased speed and efficiency, security, control, compliance, centralisation and automation, Windows Package Manager is one free tool that can save you a whole lot of time.
What is winget?
Putting it simply, it’s a one-stop command line tool for Windows Package Manager. It needs to be run in an elevated context when you wish to make changes to the client device (not a problem if you’re pushing a script or using a management tool to automate running the command), but queries are fine from a user Command Line prompt.
Let’s go through the command line tooling used with the Package Manager – winget.
What do I have installed?
An easy one – just run winget list. You’ll note that it shows the application by Name, ID, version, and source.
How do we install something new?
Firstly, we need to find whether the application we want is available. We use winget search to find what we’re looking for. We can search using filters etc (use -? To find out more), or we can just drop some text in. For example, let’s say we want TightVNC, we can use winget search vnc, as below.
We can see TightVNC listed. Now we can install it using winget install. There are a few options available for this.
For our TightZip installation, we’ll keep it simple. We’ll use –id GlavSoft.TightVNC to select what we want to install and -h for a silent install.
The installation was successful.
How do we upgrade an installed app?
This all falls under winget upgrade. Running this on its own will list apps with available upgrades via winget.
Let’s say we want to upgrade Notepad++. To upgrade this silently, we run:
Winget upgrade -h –id Notepad++.Notepad++
The -h runs things silently. We select the Windows Package Manager by using the ID or name field. –id is used for the ID, –name is used for the Name field. I prefer ID as it’s easier to work with (no spaces etc). There are other options available too, for example -o to provide a log location.
If we run the Upgrade command again, we see that Notepad++ is no longer on the list.
And we can confirm that Notepad++ has been upgraded successfully….
Using winget upgrade –all allows us to upgrade all outstanding packages. This could be used on a scheduled basis to ensure applications are up to date.
Uninstall an application
This is a relatively simple process with winget. We can use the List function to identify the application we wish to remove. We’ll remove TightVNC that we installed earlier.
We can then set up our command, this time using winget uninstall. Again, we use the ID of the application and the -h to make the removal silent.
Here we see TightVNC is removed.
Closing thoughts
The Windows Package Manager is a useful means of managing and maintaining applications. The fact that it’s built into Windows 11 and available for later releases of Windows 10 make it an attractive option without the need to deploy additional tooling. This, of course, means that it lends itself to automated solutions, be it scripted builds of Windows clients, or as a mechanism for installing applications through device management solutions. I can imagine it being used by small / medium businesses to centrally govern applications, improve compliance and security as well as save time and effort for support teams and admins. As an out of the box option, opening a cornucopia of Microsoft vetted applications to businesses, this handy little tool offers a convenience that Windows users have previously been missing.
Windows Package Manager is certainly a useful tool to have.