Compartir a través de


Get-PSSessionConfiguration

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

Sintaxis

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

Description

El cmdlet Get-PSSessionConfiguration obtiene las configuraciones de sesión que se han registrado en el equipo local. Este es un cmdlet avanzado diseñado para que lo usen los administradores del sistema para administrar 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 le permite crear sesiones personalizadas y restringidas sin escribir un programa informático. 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 a los autores de configuración de sesión examinar y comparar configuraciones de sesión.

Para crear y registrar una configuración de sesión, use el cmdlet Register-PSSessionConfiguration. Para obtener más información sobre las configuraciones de sesión, consulte 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 Get-PSSessionConfiguration para obtener solo las configuraciones de 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

En este ejemplo se muestran 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 cmdlet Get-PSSessionConfiguration para obtener la configuración de sesión completa. Un operador de canalización envía la configuración de sesión completa al cmdlet Format-List. El parámetro Property con un valor de * (all) 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 cmdlet Get-ChildItem (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

En este ejemplo se 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 un comando Get-PSSessionConfiguration, pero el usuario no necesita ser miembro del grupo Administradores 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 cmdlet Connect-WSMan se conecta al servicio WinRM en el equipo remoto Server01. El cmdlet (alias ) 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 comando Get-PSSessionConfiguration en un equipo remoto. El comando requiere que la delegación credSSP esté habilitada 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 Administradores 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 cmdlet Enable-WSManCredSSP habilita delegación de CredSSP en Server01, el equipo local. El cmdlet Connect-WSMan 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 cmdlet cambia el valor del de CredSSP en el nodo Servicio del equipo Server02 a True. Esto configura las opciones de servicio en el equipo remoto. El cmdlet Invoke-Command ejecuta el comandoGet-PSSessionConfiguration en el equipo Server02. El comando usa el parámetro credential de y usa el parámetro Authentication de 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 variable de preferencia $PSSessionConfigurationName, que toma un URI de recurso.

(Get-PSSessionConfiguration -Name CustomShell).resourceURI

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

La variable $PSSessionConfigurationName 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 de $PSSessionConfiguration, vea about_Preference_Variables.

Parámetros

-Force

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

Tipo:SwitchParameter
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Name

Obtiene solo las configuraciones de sesión con el nombre o el patrón de nombre especificados. Escriba uno o varios nombres de configuración de sesión. Se permiten caracteres comodín.

Tipo:String[]
Posición:0
Valor predeterminado:All session configurations on the local computer
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín: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 del equipo.

  • Para ejecutar un comando Get-PSSessionConfiguration 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 cmdlet Enable-WSManCredSSP) 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 devuelven 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 con las opciones establecidas para la configuración de sesión y los valores de esas opciones. Además, las configuraciones de sesión que usan un archivo de configuración de sesión tienen propiedades adicionales.

  • Puede usar 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 presentan 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.