First Look At The Windows Package Manager

Microsoft released a preview of the Windows Package Manager today during the virtual Build 2020 conference. Windows administrators may use it to install first-party and third-party programs such as 7-Zip, KeePass, Arduino IDE, or Discord.

The package manager, similar to package managers on Linux systems, enables users to search for, download, install, and uninstall programs and packages for the Windows operating system. Its main purpose is to automate the installation, updating and configuration of software on Windows.

Windows Package Manager works similar to package managers on Linux or third-party Windows programs such as Chocolatey. Microsoft decided to release it as open source; interested users can check out the GitHub repository for documentation and download of the preview version of the Package Manager.

The package manager requires at least Windows 10 version 1709 and may be installed either from the Microsoft Store (requires a Windows 10 Insider build and sending an invite email for now), or manually from GitHub.

Once installed, open a Windows Terminal, PowerShell or Command Prompt instance to start using it. The command is winget and you may want to run it without any parameter to display the available commands and help first.

The main commands available at the time are:

  • winget install // to install a program.
  • winget show // displays information about the specified application.
  • winget source // to mange sources.
  • winget search // to list all programs or specific ones.
  • winget hash // to hash installer files.
  • winget validate // to validate manifest files.

The command winget search displays the list of programs that Windows Package Manager supports currently. A good selection of popular programs as well as developer tools is supported currently. Programs like vim, Whatsapp, GIMP, VLC, Steam, or Sublime Text can be installed using the Package Manager.

Please note that uninstall functionality is not supported at this point in time. Microsoft plans to integrate the feature as well as list and update functionality soon into the program.

The command winget install “program name” downloads the selected package and runs its installer. Programs seem to be downloaded from third-party sites (the developer site) and not from a repository that Microsoft maintains.

The file location is displayed by winget. The package manager supports exe, msi, and msix installers currently.

Winget may be run without elevated rights. The installation of some programs may require elevation, however and prompts will be displayed if that is required.

The command winget show “package name” displays information about the program; this may include links to the homepage and license, download URL, SHA256 hash, and type of installer.

Software companies and developers may wonder whether they may submit their programs to the Windows Package Manager so that they are included. Microsoft has information on the process on the Docs website. Basically, what developers need to do is create a package manifest that provides information about the application before they submit the manifest to the Windows Package Manager repository on GitHub.

Scripting is supported; admins may create batch or powershell scripts to install multiple applications at once, e.g.

@echo off
Echo Install Powertoys and Terminal
REM Powertoys
winget install Microsoft.Powertoys
if %ERRORLEVEL% EQU 0 Echo Powertoys installed successfully.
REM Terminal
winget install Microsoft.WindowsTerminal
if %ERRORLEVEL% EQU 0 Echo Terminal installed successfully. %ERRORLEVEL%

Closing Words

Windows Package Manager could become an essential tool in the arsenal of Windows system administrators and also home users. It depends on a number of factors including if and how it is going to be integrated into Windows natively, the availability of packages, and functionality.

(Source: ghacks)


Interesting news. It’s about time! Chocolatey is nice, but it’s not as powerful as Unices package managers.

1 Like