Updated: August 9, 2015


Gets information about the specified Windows PowerShell provider.


Parameter Set: Default
Get-PSProvider [[-PSProvider] <String[]> ] [ <CommonParameters>]

Detailed Description

The Get-PSProvider cmdlet gets the Windows PowerShell providers in the current session. You can get a particular drive or all drives in the session.

Windows PowerShell providers let you access a variety of data stores as though they were file system drives. For information about Windows PowerShell providers, see about_Providers.



Specifies the name or names of the Windows PowerShell providers about which this cmdlet gets information.







Default Value


Accept Pipeline Input?

true (ByPropertyName)

Accept Wildcard Characters?



This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see    about_CommonParameters.


The input type is the type of the objects that you can pipe to the cmdlet.

  • None

    You cannot pipe objects to this cmdlet.


The output type is the type of the objects that the cmdlet emits.

  • System.Management.Automation.ProviderInfo

    This cmdlet returns objects that represent the Windows PowerShell providers in the session.


Example 1: Display a list of all available providers

This command displays a list of all available Windows PowerShell providers.

PS C:\> Get-PSProvider

Example 2: Display a list of all Windows PowerShell providers that begin with specified letters

This command displays a list of all Windows PowerShell providers with names that begin with the letter f or r.

PS C:\> Get-PSProvider f*, r* | Format-List

Example 3: Find snap-ins or module that added providers to your session

These commands find the Windows PowerShell snap-ins or modules that added providers to your session. All Windows PowerShell elements, including providers, originate in a snap-in or in a module.

These commands use the PSSnapin and Module properties of the ProviderInfo object that Get-PSProvider returns. The values of these properties contain the name of the snap-in or module that adds the provider.

The first command gets all of the providers in the session and formats them in a table with the values of their Name, Module, and PSSnapin properties.

The second command uses the Where-Object cmdlet to get the providers that come from the Microsoft.PowerShell.Security snap-in.

PS C:\> Get-PSProvider | Format-Table name, module, pssnapin -auto

Name        Module       PSSnapIn
----        ------       --------
Test        TestModule
WSMan                    Microsoft.WSMan.Management
Alias                    Microsoft.PowerShell.Core
Environment              Microsoft.PowerShell.Core
FileSystem               Microsoft.PowerShell.Core
Function                 Microsoft.PowerShell.Core
Registry                 Microsoft.PowerShell.Core
Variable                 Microsoft.PowerShell.Core
Certificate              Microsoft.PowerShell.Security

PS C:\>Get-PSProvider | Where {$_.pssnapin -eq "Microsoft.PowerShell.Security"}

Name            Capabilities      Drives
----            ------------      ------
Certificate     ShouldProcess     {cert}

Example 4: Resolve the path of the Home property of the file system provider

This example shows that the tilde symbol (~) represents the value of the Home property of the FileSystem provider. The Home property value is optional, but for the FileSystem provider, it is defined as $env:homedrive\$env:homepath or $home.

PS C:\> Resolve-Path ~


PS C:\>(get-psprovider FileSystem).home

Related topics

Community Additions