Gets the registered session configurations on the computer.
Syntax
Get-PSSessionConfiguration [[-Name] <string[]>] [<CommonParameters>]
Description
The Get-PSSessionConfiguration cmdlet gets the session configurations that have been registered on the local computer. This is an advanced cmdlet that is designed to be used by system administrators to manage customized session configurations for their users.
To create and register a session configuration, use the Register-PSSessionConfiguration cmdlet.
Parameters
-Name <string[]>
Gets only the session configurations with the specified name or name pattern. Enter one or more session configuration names. Wildcards are permitted.
Required? |
false |
Position? |
1 |
Default Value |
All session configurations on the local computer |
Accept Pipeline Input? |
false |
Accept Wildcard Characters? |
true |
<CommonParameters>
This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see about_CommonParameters.
Inputs and Outputs
The input type is the type of the objects that you can pipe to the cmdlet. The return type is the type of the objects that the cmdlet returns.
Inputs |
None You cannot pipe input to this cmdlet. |
Outputs |
Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfiguration
|
Notes
To run this cmdlet on Windows Vista, Windows Server 2008, and later versions of Windows, you must open Windows PowerShell with the "Run as administrator" option.
To view the session configurations on the computer, you must be a member of the Administrators group on the computer.
To run a Get-PSSessionConfiguration command on a remote computer, Credential Security Service Provider (CredSSP) authentication must be enabled in the client settings on the local computer (by using the Enable-WSManCredSSP cmdlet) and in the service settings on the remote computer, and you must use the CredSSP value of the Authentication parameter when establishing the remote session. Otherwise, access is denied.
Example 1
C:\PS>get-pssessionconfiguration This command gets the session configurations on the computer.
Example 2
C:\PS>get-pssessionconfiguration -name Microsoft* Name PSVersion StartupScript Permission ---- --------- ------------- ---------- microsoft.powershell 2.0 BUILTIN\Administrators AccessAll... microsoft.powershell32 2.0 BUILTIN\Administrators AccessAll... Description ----------- This command uses the Name parameter of Get-PSSessionConfiguration to get only the session configurations with names that begin with "Microsoft". This command gets the two default session configurations that come with Windows PowerShell.
Example 3
C:\PS>Get-PSSessionConfiguration -name microsoft.powershell | get-member TypeName: Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfiguration Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() Capability NoteProperty System.Object[] Capability=System.Object[] ExactMatch NoteProperty System.String ExactMatch=False Filename NoteProperty System.String Filename=%windir%\system32\pwrshplugin.dll lang NoteProperty System.String lang=en-US Name NoteProperty System.String Name=microsoft.powershell PSVersion NoteProperty System.String PSVersion=2.0 ResourceUri NoteProperty System.String ResourceUri=https://schemas.microsoft.com/powershell/microsoft.powershell SDKVersion NoteProperty System.String SDKVersion=1 SecurityDescriptorSddl NoteProperty System.String SecurityDescriptorSddl=O:NSG:BAD:P(A;;GA;;;BA)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD) SupportsOptions NoteProperty System.String SupportsOptions=true Uri NoteProperty System.String Uri=https://schemas.microsoft.com/powershell/microsoft.powershell xmlns NoteProperty System.String xmlns=https://schemas.microsoft.com/wbem/wsman/1/config/PluginConfiguration XmlRenderingType NoteProperty System.String XmlRenderingType=text Permission ScriptProperty System.Object Permission {get=trap { continue; }... C:\PS> Get-PSSessionConfiguration -name microsoft.powershell | format-list -property * Name : microsoft.powershell Filename : %windir%\system32\pwrshplugin.dll SDKVersion : 1 XmlRenderingType : text lang : en-US PSVersion : 2.0 ResourceUri : https://schemas.microsoft.com/powershell/microsoft.powershell SupportsOptions : true Capability : {Shell} Uri : https://schemas.microsoft.com/powershell/microsoft.powershell SecurityDescriptorSddl : O:NSG:BAD:P(A;;GA;;;BA)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD) ExactMatch : False xmlns : https://schemas.microsoft.com/wbem/wsman/1/config/PluginConfiguration Permission : BUILTIN\Administrators AccessAllowed Description ----------- These commands examine the PSSessionConfiguration object that Get-PSSessionConfiguration returns. The first command uses the Get-PSSessionConfiguration cmdlet to get the Microsoft.PowerShell default configuration. The second command uses a pipeline operator (|) to send the object that Get-PSSessionConfiguration returns to the Get-Member cmdlet. The output shows the properties and methods of the object. The third command sends the same object to the Format-List cmdlet. The Property parameter with a value of * (all) directs Format-List to display all of the properties and property values of the object in a list. The output of this command has very useful information, including the location of the .dll that implements the configuration type, the resource Uniform Resource Identifier (URI) for the endpoint that is created, and the Security Descriptor Definition Language (SDDL) for the configuration.
Example 4
C:\PS>dir wsman:\localhost\plugin WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin Name Type Keys ---- ---- ---- Event Forwarding Plugin Container {Name=Event Forwarding Plugin} MaintenanceShell Container {Name=MaintenanceShell} microsoft.powershell Container {Name=microsoft.powershell} microsoft.powershell32 Container {Name=microsoft.powershell32} WMI Provider Container {Name=WMI Provider} Description ----------- This command uses the Get-ChildItem cmdlet (alias = dir) in the WSMan: provider drive to look at the content of the Plugin node. This is another way to look at the session configurations on the computer. The PlugIn node contains ContainerElement objects (Microsoft.WSMan.Management.WSManConfigContainerElement) that represent the registered Windows PowerShell session configurations, along with other plug-ins for WS-Management.
Example 5
C:\PS>enable-wsmanCredSSP -delegate server02 C:\PS> connect-wsman server02 C:\PS> set-item wsman:\server02*\service\auth\credSSP -value $true C:\PS> invoke-command -scriptblock {Get-PSSessionConfiguration} -computername Server02 -authentication CredSSP -credential Domain01\Admin01 Name PSVersion StartupScript Permission PSComputerName ---- --------- ------------- ---------- -------------- microsoft.powershell 2.0 BUILTIN\Administrators AccessAll... server02.corp.fabrikam.com microsoft.powershell32 2.0 BUILTIN\Administrators AccessAll... server02.corp.fabrikam.com MyX86Shell 2.0 c:\test\x86Shell.ps1 BUILTIN\Administrators AccessAll... server02.corp.fabrikam.com Description ----------- This example shows how to run a Get-PSSessionConfiguration command on a remote computer. The command requires that CredSSP delegation be enabled in the client settings on the local computer and in the service settings on the remote computer. To run the commands in this example, you must be a member of the Administrators group on the local computer and the remote computer. The first command uses the Enable-WSManCredSSP cmdlet to enable CredSSP delegation from the Server01 local computer to the Server02 remote computer. This configures the CredSSP client setting on the local computer. The second command uses the Connect-WSMan cmdlet to connect to the Server02 computer. This action adds a node for the Server02 computer to the WSMan: drive on the local computer, allowing you to view and change the WS-Management settings on the Server02 computer. The third command uses the Set-Item cmdlet to change the value of the CredSSP item in the Service node of the Server02 computer to True. This configures the service settings on the remote computer. The fourth command uses the Invoke-Command cmdlet to run a Get-PSSessionConfiguration command on the Server02 computer. The command uses the Credential parameter, and it uses the Authentication parameter with a value of CredSSP.
Example 6
C:\PS>(get-PSSessionConfiguration -name CustomShell).resourceURI https://schemas.microsoft.com/powershell/microsoft.CustomShell Description ----------- This command uses the Get-PSSessionConfiguration cmdlet to get the resource URI of a session configuration. This command is useful when setting the value of the $PSSessionConfigurationName preference variable, which takes a resource URI. The $PSSessionConfiguationName variable specifies the default configuration that is used when you create a session. This variable is set on the local computer, but it specifies a configuration on the remote computer. For more information about the $PSSessionConfiguration variable, see about_Preference_Variables.
See Also