Get-PSSessionConfiguration

Obtiene las configuraciones de sesión registradas en el equipo.

Syntax

Get-PSSessionConfiguration
   [[-Name] <String[]>]
   [-Force]
   [<CommonParameters>]

Description

El Get-PSSessionConfiguration cmdlet obtiene las configuraciones de sesión que se han registrado en el equipo local. Se trata de un cmdlet avanzado diseñado para que lo usen los administradores del sistema para administrar las configuraciones de sesión personalizadas para sus usuarios.

A partir de PowerShell 3.0, puede definir las propiedades de una configuración de sesión mediante un archivo de configuración de sesión (.pssc). Esta característica permite crear sesiones restringidas y personalizadas sin necesidad de escribir un programa. Para obtener más información sobre los archivos de configuración de sesión, consulte about_Session_Configuration_Files.

Además, a partir de PowerShell 3.0, se han agregado nuevas propiedades de nota al objeto de configuración de sesión que Get-PSSessionConfiguration devuelve. Estas propiedades facilitan a los usuarios y los autores de la configuración de sesión el poder examinar y comparar las configuraciones de sesión.

Para crear y registrar una configuración de sesión, use el Register-PSSessionConfiguration cmdlet . Para más información sobre las configuraciones de sesión, vea about_Session_Configurations.

Ejemplos

Ejemplo 1: Obtener configuraciones de sesión en el equipo local

Get-PSSessionConfiguration

Ejemplo 2: Obtención de las dos configuraciones de sesión predeterminadas

El comando usa el parámetro Name de para obtener solo las configuraciones de Get-PSSessionConfiguration sesión con nombres que comienzan por "Microsoft".

Get-PSSessionConfiguration -Name Microsoft*

Name                      PSVersion  StartupScript        Permission
----                      ---------  -------------        ----------
microsoft.powershell      5.1                             BUILTIN\Administrators AccessAll...
microsoft.powershell32    5.1                             BUILTIN\Administrators AccessAll...

Ejemplo 3: Obtención de las propiedades y valores de una configuración de sesión

Este ejemplo muestra las propiedades y los valores de propiedad de una configuración de sesión que se creó mediante un archivo de configuración de sesión.

Get-PSSessionConfiguration -Name Full  | Format-List -Property *

Copyright                     : (c) 2011 User01. All rights reserved.
AliasDefinitions              : {System.Collections.Hashtable}
SessionType                   : Default
CompanyName                   : Unknown
GUID                          : 1e9cb265-dae0-4bd3-89a9-8338a47698a1
Author                        : User01
ExecutionPolicy               : Restricted
SchemaVersion                 : 1.0.0.0
LanguageMode                  : FullLanguage
Architecture                  : 64
Filename                      : %windir%\system32\pwrshplugin.dll
ResourceUri                   : http://schemas.microsoft.com/powershell/Full
MaxConcurrentCommandsPerShell : 1500
UseSharedProcess              : false
ProcessIdleTimeoutSec         : 0
xmlns                         : http://schemas.microsoft.com/wbem/wsman/1/config/PluginConfiguration
MaxConcurrentUsers            : 10
lang                          : en-US
SupportsOptions               : true
ExactMatch                    : true
configfilepath                : C:\WINDOWS\System32\WindowsPowerShell\v1.0\SessionConfig\Full_1e9cb265-dae0-4bd3-89a9-8338a47698a1.pssc
RunAsUser                     :
IdleTimeoutms                 : 7200000
PSVersion                     : 3.0
OutputBufferingMode           : Block
AutoRestart                   : false
MaxShells                     : 300
MaxMemoryPerShellMB           : 1024
MaxIdleTimeoutms              : 43200000
SDKVersion                    : 1
Name                          : Full
XmlRenderingType              : text
Capability                    : {Shell}
RunAsPassword                 :
MaxProcessesPerShell          : 25
Enabled                       : True
MaxShellsPerUser              : 30
Permission                    :

En el ejemplo se usa el Get-PSSessionConfiguration cmdlet para obtener la configuración de sesión completa. Un operador de canalización envía la configuración de sesión completa al Format-List cmdlet . El parámetro Property con un valor de * (todos) dirige Format-List para mostrar todas las propiedades y valores del objeto en una lista.

La salida incluye información útil, incluido el autor de la configuración de la sesión, el tipo de sesión, el modo de idioma y la directiva de ejecución de sesiones que se crean con esta configuración de sesión, cuotas de sesión y la ruta de acceso completa al archivo de configuración de sesión.

Esta vista de una configuración de sesión se usa para las sesiones que incluyen un archivo de configuración de sesión. Para obtener más información sobre los archivos de configuración de sesión, consulte about_Session_Configuration_Files.

Ejemplo 4: otra manera de examinar las configuraciones de sesión

En este ejemplo se usa el Get-ChildItem cmdlet (alias dir) en la unidad de proveedor WSMan: para examinar el contenido del nodo Complemento. Esta es otra manera de examinar las configuraciones de sesión en el equipo.

dir wsman:\localhost\plugin

Type            Keys                                Name
----            ----                                ----
Container       {Name=Event Forwarding Plugin}      Event Forwarding Plugin
Container       {Name=Full}                         Full
Container       {Name=microsoft.powershell}         microsoft.powershell
Container       {Name=microsoft.powershell.workf... microsoft.powershell.workflow
Container       {Name=microsoft.powershell32}       microsoft.powershell32
Container       {Name=microsoft.ServerManager}      microsoft.ServerManager
Container       {Name=WMI Provider}                 WMI Provider

El nodo PlugIn contiene objetos ContainerElement (Microsoft.WSMan.Management.WSManConfigContainerElement) que representan las configuraciones de sesión de PowerShell registradas, junto con otros complementos para WS-Management.

Ejemplo 6: Visualización de configuraciones de sesión en un equipo remoto

Este ejemplo muestra cómo usar el proveedor WSMan para ver las configuraciones de sesión en un equipo remoto. Este método no proporciona tanta información como comandoGet-PSSessionConfiguration, pero el usuario no necesita ser miembro del grupo Administración istrators para ejecutar este cmdlet.

Connect-WSMan -ComputerName Server01
dir WSMan:\Server01\Plugin

WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin

Type            Keys                                Name
----            ----                                ----
Container       {Name=Empty}                        Empty
Container       {Name=Event Forwarding Plugin}      Event Forwarding Plugin
Container       {Name=Full}                         Full
Container       {Name=microsoft.powershell}         microsoft.powershell
Container       {Name=microsoft.powershell.workf... microsoft.powershell.workflow
Container       {Name=microsoft.powershell32}       microsoft.powershell32
Container       {Name=microsoft.ServerManager}      microsoft.ServerManager
Container       {Name=NoLanguage}                   NoLanguage
Container       {Name=RestrictedLang}               RestrictedLang
Container       {Name=RRS}                          RRS
Container       {Name=SEL Plugin}                   SEL Plugin
Container       {Name=WithProfile}                  WithProfile
Container       {Name=WMI Provider}                 WMI Provider

El Connect-WSMan cmdlet se conecta al servicio WinRM en el equipo remoto Server01. El Get-ChildItem cmdlet (alias dir) de la unidad WSMan: obtiene los elementos de la ruta de acceso Server01\Plugin . La salida muestra los elementos del directorio Plugin en el equipo Server01. Los elementos incluyen las configuraciones de sesión, que son un tipo de complemento WSMan, junto con otros tipos de complementos en el equipo.

Ejemplo 7: Obtención de configuraciones de sesión detalladas desde un equipo remoto

En este ejemplo se muestra cómo ejecutar un Get-PSSessionConfiguration comando en un equipo remoto. El comando requiere que esté habilitada la delegación CredSSP en la configuración del cliente en el equipo local y en la configuración del servicio en el equipo remoto.

Para ejecutar los comandos de este ejemplo, debe ser miembro del grupo Administración istrators en los equipos locales y remotos y debe iniciar PowerShell con la opción Ejecutar como administrador.

Enable-WSManCredSSP -Delegate Server02
Connect-WSMan Server02
Set-Item WSMan:\Server02*\Service\Auth\CredSSP -Value $true
Invoke-Command -ScriptBlock {Get-PSSessionConfiguration} -ComputerName Server02 -Authentication CredSSP -Credential Domain01\Admin01

Name                      PSVersion  StartupScript        Permission                          PSComputerName
----                      ---------  -------------        ----------                          --------------
microsoft.powershell      5.1                             BUILTIN\Administrators AccessAll... server02.corp.fabrikam.com
microsoft.powershell32    5.1                             BUILTIN\Administrators AccessAll... server02.corp.fabrikam.com
MyX86Shell                5.1        c:\test\x86Shell.ps1 BUILTIN\Administrators AccessAll... server02.corp.fabrikam.com

El Enable-WSManCredSSP cmdlet habilita la delegación credSSP en Server01, el equipo local. El Connect-WSMan cmdlet se conecta al equipo Server02. Esta acción agrega un nodo para Server02 a la unidad WSMan: en el equipo local, lo que le permite ver y cambiar la configuración de WS-Management en el equipo Server02. El Set-Item cmdlet cambia el valor del elemento CredSSP en el nodo Servicio del equipo Server02 a True. Esto configura las opciones de servicio en el equipo remoto. El Invoke-Command cmdlet ejecuta elGet-PSSessionConfiguration comando en el equipo Server02. El comando usa el parámetro Credential y usa el parámetro Authentication con un valor de CredSSP. La salida muestra las configuraciones de sesión en el equipo remoto Server02.

Ejemplo 8: Obtención del URI del recurso de una configuración de sesión

Este ejemplo es útil para establecer el valor de la $PSSessionConfigurationName variable de preferencia, que toma un URI de recurso.

(Get-PSSessionConfiguration -Name CustomShell).resourceURI

http://schemas.microsoft.com/powershell/microsoft.CustomShell

La $PSSessionConfigurationName variable especifica la configuración predeterminada que se usa al crear una sesión. Esta variable se establece en el equipo local, pero especifica una configuración en el equipo remoto. Para obtener más información sobre la variable $PSSessionConfiguration, vea about_Preference_Variables.

Parámetros

-Force

Suprime el aviso para reiniciar el servicio WinRM, si el servicio no se está ejecutando aún.

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

-Name

Obtiene solo las configuraciones de sesión con el nombre o el patrón de nombre especificado. Escriba uno o más nombres de configuración de sesión. Se permiten los caracteres comodín.

Type:String[]
Position:0
Default value:All session configurations on the local computer
Required:False
Accept pipeline input:False
Accept wildcard characters:True

Entradas

None

No se pueden canalizar objetos a este cmdlet.

Salidas

Microsoft.PowerShell.Commands.PSSessionConfigurationCommands

Notas

  • Para ejecutar este cmdlet, inicie PowerShell con la opción Ejecutar como administrador .

  • Para ver las configuraciones de sesión en el equipo, debe ser miembro del grupo Administradores en el equipo.

  • Para ejecutar un Get-PSSessionConfiguration comando en un equipo remoto, la autenticación del proveedor de servicios de seguridad de credenciales (CredSSP) debe estar habilitada en la configuración del cliente en el equipo local (mediante el Enable-WSManCredSSP cmdlet) y en la configuración del servicio en el equipo remoto. Además, debe usar el valor CredSSP del parámetro Authentication al establecer la sesión remota. De lo contrario, se deniega el acceso.

  • Las propiedades de nota del objeto que Get-PSSessionConfiguration devuelve aparecen en el objeto solo cuando tienen un valor. Solo las configuraciones de sesión creadas mediante un archivo de configuración de sesión tienen todas las propiedades definidas.

  • Las propiedades de un objeto de configuración de sesión varían según las opciones establecidas para la configuración de sesión y los valores de esas opciones. Además, las configuraciones de sesión que utilizan un archivo de configuración de sesión tienen propiedades adicionales.

  • Puede utilizar comandos en la unidad WSMan: para cambiar las propiedades de las configuraciones de sesión. Sin embargo, no puede usar la unidad WSMan: en PowerShell 2.0 para cambiar las propiedades de configuración de sesión que se introducen en PowerShell 3.0, como OutputBufferingMode. Los comandos de PowerShell 2.0 no generan un error, pero son ineficaces. Para cambiar las propiedades introducidas en PowerShell 3.0, use la unidad WSMan: en PowerShell 3.0.