Windows Package Manager v0.3 Preview
We have been hard at work building new experimental features for the Windows Package Manager. We have just released the Windows Package Manager v0.3 Preview. I would like to share the first major feature to exit experimental status. I also have the privilege of announcing support for Group Policy.
I have been through several Windows 10 environments over the last year. It is hard to describe how much pleasure I felt with the simplicity of
winget install as I set a new build up so I can become productive. Things have just gotten better with the Windows Package Manager v0.3 Preview. Now I use
winget import, and I can easily help others save time modifying those install scripts.
The import file format is JSON. We have provided a schema to make it easier to author and modify these files. They can include packages from multiple sources. You can also specify the exact version of a package to install on your machine.
Announcing Group Policy
One of the most important concerns facing enterprise customers is the ability to manage all the Windows 10 machines in their organization. With this release, IT professionals can configure Group Policy via ADMX ingestion. The .admx and .adml files are available to download in a .zip file at the GitHub releases page starting with the Windows Package Manager v0.3 Preview.
If you are running Windows 10 build 1809 and later, you should evaluate and configure these policies for your enterprise. The Windows Package Manager is distributed via the App Installer. When we ship 1.0, this will be an automatic update from the Microsoft Store to all 1809 and later devices.
These policies empower an organization to manage the Windows Package Manager, control the availability or behavior of several commands and arguments, as well as what sources the client connects to. I’ve included a screenshot from the Local Group Policy Editor below.
We’ve implemented a feature toggle so you can try new features out and give us feedback. You can run
winget features to see what’s available. If you execute
winget settings your JSON editor will launch.
You can use
winget list to display the same list of installed apps found in your Add/Remove Programs in Windows 10. This command also takes several arguments including a search string. I’ve provided an example below showing PowerToys, Windows Terminal Preview, and Windows Terminal all installed on my system. This command is pivotal for the next few experimental features. As you can imagine, mapping all of the legacy applications on your machine with a manifest in the community repository is a daunting task to achieve. We expect to continue iterating in this area over time to continue improving the matching logic.
I love PowerShell. Occasionally, when I start up a new Windows Terminal session, I get a notice that a new version of PowerShell is available. What really gets me excited is when I see that notification, I know I can just
winget upgrade Microsoft.PowerShell. Of course, right after I hit [Enter] I remember the upgrade is going to abort my session. We have some more work to do here.
I mentioned how I wanted to get the space back on my C: drive by removing things I don’t need from my system. With this feature enabled you too can
winget uninstall "some giant app". The truly great thing to point out here is that it doesn’t matter how you installed that giant application either.
Our goal with
winget export is to make it easy to get the collection of packages installed on one machine so you can import them on another. This is where we have the most work related to the list command. Only a small subset of the programs installed on my Windows 10 system have good matching entries with the community repository. This is one of the main reasons we have experimental features. After a long scrolling list of “Installed package is not available from any source: “some program name” I have an output file I can work with.
When I look at our backlog (filtered to Features with the most 👍) it’s pretty easy to see what we need to tackle next. Right up in the top 10 Issues along with the ones we’re working on, I see .zip & .exe support, native PowerShell support, and dependencies. If you have a feature request, look at our backlog and add your “thumbs up”. If you can’t find the feature you’re looking for, create a new Issue.
How to get the Windows Package Manager
If you are a Windows Insider or part of our Package Manager Insider program, you should already have the latest version. The Windows Package Manager is delivered in the App Installer via the Microsoft Store. If you prefer to just download the client, head on over to the GitHub releases page and take it for a spin. You can also join the Windows Package Manager Insider Program if you’d like automatic updates from the store, and you want to run on a released version of Windows 10.
Be sure to check out the GitHub client issues and add a “+1” to any features you’d really like to see. If you encounter a bug in the Windows Package Manager v0.3 Preview you can use Feedback Hub ([Windows]+[f]) to let us know about the problem. Select “Apps” and “Windows Package Manager” in the “Choose a category” section to report the issue.
It seems the link to the schema (https://aka.ms/winget-packages.schema.json) does not work.
Should probably be https://aka.ms/winget-manifest.singleton.1.0.0.schema.json
Can you compare/contrast this to programs like get-package (PS), nuget, oneget, etc. ?
Love this release. One minor issue where it looks like build-level version numbers aren’t correctly reflected in the upgrade list:
For all of the packages below, there were upgrades pending, I did the upgrades and in some cases upgrades were installed, for others it said no updates were pending… but the winget upgrade list still says there’s an upgrade available. I suspect it is just that the version sniff on the installed version isn’t including the ZZZ from X.Y.ZZZ
Microsoft Windows [Version 10.0.21382.1000]
(c) Microsoft Corporation. All rights reserved.
Name Id Version Available Source
Discord Discord.Discord 1.0.9000 1.0.9001 winget
IntelliJ IDEA Community Edition JetBrains.IntelliJIDEA.Community 203.7717.56 2021.1.1 winget
MediaMonkey VentisMediaInc.MediaMonkey 4.1 184.108.40.2060 winget
Microsoft Teams Microsoft.Teams 1.4.00.8872 1.4.00.11161 winget
Zoom Zoom.Zoom 5.4.9 (59931.0110) 5.6.823 winget
GitKraken Axosoft.GitKraken 7.6.0 7.6.1 winget
Plex Media Player plex.plexmediaplayer 2.58.0 220.127.116.116 winget
Visual Studio Code Microsoft.VisualStudioCode 1.56.2 1.56.2.054a929533 winget