Get-PackageProvider

Returns a list of package providers that are connected to Package Management.

Syntax

Get-PackageProvider
   [[-Name] <String[]>]
   [-ListAvailable]
   [-Force]
   [-ForceBootstrap]
   [<CommonParameters>]

Description

The Get-PackageProvider cmdlet returns a list of package providers that are connected to Package Management. Examples of these providers include PSModule, NuGet, and Chocolatey. You can filter the results based on all or part of one or more provider names.

Examples

Example 1: Get all currently loaded package providers

Get-PackageProvider

This command gets a list of all the package providers that are currently loaded on the local computer.

Example 2: Get all available package providers

Get-PackageProvider -ListAvailable

This command gets a list of all package providers that are available on the local computer.

Example 3: Dynamically get a package provider

Get-PackageProvider -Name "Chocolatey" -ForceBootstrap

This command automatically installs the Chocolatey provider if your computer does not have the Chocolatey provider installed.

Parameters

-Force

Indicates that this cmdlet forces all other actions with this cmdlet that can be forced. In Get-PackageProvider, this means the Force parameter acts the same as the ForceBootstrap parameter.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ForceBootstrap

Indicates that this cmdlet forces Package Management to automatically install the package provider.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ListAvailable

Gets all installed providers. Get-PackageProvider gets provider in paths listed in the PSModulePath environment variable as well as the package provider assembly folders:

  • $env:ProgramFiles\PackageManagement\ProviderAssemblies
  • $env:LOCALAPPDATA\PackageManagement\ProviderAssemblies

Without this parameter, Get-PackageProvider gets only the providers loaded in the current session.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Specifies one or more provider names, or partial provider names. Separate multiple provider names with commas. Valid values for this parameter include names of providers that you have installed with packages; PackageManagement ships with a set of default providers, including the PSModule and MSI providers.

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Outputs

Microsoft.PackageManagement.Implementation.PackageProvider

This cmdlet returns a PackageProvider object for each installed package provider matching the parameters. By default, it returns every installed package provider.

Notes

Important

As of April 2020, the PowerShell Gallery no longer supports Transport Layer Security (TLS) versions 1.0 and 1.1. If you are not using TLS 1.2 or higher, you will receive an error when trying to access the PowerShell Gallery. Use the following command to ensure you are using TLS 1.2:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

For more information, see the announcement in the PowerShell blog.