Updated: December 3, 2014

Applies To: Windows PowerShell 4.0


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 to retrieve information.







Default Value


Accept Pipeline Input?

true (ByPropertyName)

Accept Wildcard Characters?



This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. 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

    Get-PSProvider returns objects that represent the Windows PowerShell providers in the session.


-------------------------- EXAMPLE 1 --------------------------

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

PS C:\> get-psprovider

-------------------------- EXAMPLE 2 --------------------------

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 --------------------------

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 --------------------------

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