WinGet, Windows' package manager

This is part of a series on modern Windows utilities

WinGet, Windows' package manager

WinGet is Microsoft's official package manager for Windows. It's a command line utility that has to be installed via the Windows Store. Once installed, using the Windows Store is not required.

Packages can be installed, updated, and uninstalled. Additionally, the packages installed on a machine can be exported to a file and then installed on another machine using the generated file.

Some packages are installed only for the user running WinGet. Others are installed for all users and will pop up a dialog box requesting elevated permissions.

Sample output

C:\> winget search KeePassXC

Name      Id                      Version Source
--------------------------------------------------
KeePassXC XP8K2L36VP0QMB          Unknown msstore
KeePassXC KeePassXCTeam.KeePassXC 2.7.1   winget
C:\> winget show KeePassXCTeam.KeePassXC

Found KeePassXC [KeePassXCTeam.KeePassXC]
Version: 2.7.1
Publisher: KeePassXC Team
Publisher Url: https://keepassxc.org
Publisher Support Url: https://github.com/keepassxreboot/keepassxc/issues
Author: KeePassXC Team
[...]
Installer:
  Type: wix
  Download Url: https://github.com/keepassxreboot/keepassxc/releases/download/2.7.1/KeePassXC-2.7.1-Win64.msi
  SHA256: a737dd49a49a3c4b5feadcc4fc60b7b039155d68c6ea68779f50431e8bd9bb37
  Release Date: 2022-04-06

Package hosting

WinGet provides packages from two types of sources.

winget

Packages from Source 'winget' are sourced from the link provided by the package maintainer. Use winget show <package Id> to see where the installer will be downloaded from.

msstore

Packages from Source 'msstore' are downloaded from the Microsoft Store. winget show <package Id> will still provide information about the package.

'msstore' packages often (always?) have an unknown version. This keeps WinGet from being able to update them.

Tips

WinGet knows about other packages, but if it can't determine the version number, it can't update them. WinGet works best as a general package manager when it's the primary source of packages.

Before installing a package, use winget show <package Id> to ensure the installer is coming from a trusted place.