If you have ever used Linux you will be used to the idea of applications like yum, apt-get, or rpm. For a long time Windows had nothing like this, so third parties filled this gap e.g. NuGet, and Chocolatey.
Since 2003 Windows did have a package management system but it wasn't very good. Since version 5x (2016), it has become more comprehensive and a lot easier to work with. The new architecture looks like this
- EndUser: As a user or sysadmin, you are in the “EndUser” section: This gives you access to several PowerShell cmdlets that we will use in the next section of this article.
- PackageManagementCore: This corresponds to the actions that can be performed on your machine. Available actions are: discovery, install / uninstall and inventory.
- PackageManagementProviders: This section regroups the providers that can interconnect to PackageManagementCore. It can be an officially-supported “Microsoft” provider or a 3rd party provider to expand the possibilities.
- Package Sources: Also called “Repositories”. This is the place where the software packages are stored. These sources are managed by the providers themselves. Their location can be an online URL, a local folder or a network shared folder.
Basically an end user can install packages (libraries and executable software) from various sources.
Listing available Package Management CommandLets
Using a PowerShell window run the following command
shell command
get-command -module packagemanagement | sort noun, verb
It will yield the following result
Listing Available Package Providers
shell command
find-packageprovider
Listing Installed Package Providers
shell command
get-packageprovider