Acerca de las configuraciones de sesiónAbout Session Configurations

DESCRIPCIÓN BREVESHORT DESCRIPTION

Describe las configuraciones de sesión, que determinan los usuarios que pueden conectarse remotamente al equipo y los comandos que pueden ejecutar.Describes session configurations, which determine the users who can connect to the computer remotely and the commands they can run.

DESCRIPCIÓN LARGALONG DESCRIPTION

Una configuración de sesión, también conocida como "punto de conexión" es un grupo de opciones de configuración en el equipo local que definen el entorno de las sesiones de PowerShell que se crean cuando los usuarios locales o remotos se conectan a PowerShell en el equipo local.A session configuration, also known as an "endpoint" is a group of settings on the local computer that define the environment for the PowerShell sessions that are created when remote or local users connect to PowerShell on the local computer.

Los administradores del equipo pueden usar configuraciones de sesión para proteger el equipo y definir entornos personalizados para los usuarios que se conectan al equipo.Administrators of the computer can use session configurations to protect the computer and to define custom environments for users who connect to the computer.

Los administradores también pueden usar configuraciones de sesión para determinar los permisos necesarios para conectarse al equipo de forma remota.Administrators can also use session configurations to determine the permissions that are required to connect to the computer remotely. De forma predeterminada, solo los miembros del grupo administradores tienen permiso para usar la configuración de sesión para conectarse de forma remota, pero puede cambiar la configuración predeterminada para permitir que todos los usuarios, o usuarios seleccionados, se conecten de forma remota al equipo.By default, only members of the Administrators group have permission to use the session configuration to connect remotely, but you can change the default settings to allow all users, or selected users, to connect remotely to your computer.

A partir de PowerShell 3,0, puede usar un archivo de configuración de sesión para definir los elementos de una configuración de sesión.Beginning in PowerShell 3.0, you can use a session configuration file to define the elements of a session configuration. Esta característica facilita la personalización de las sesiones sin escribir código y detectar las propiedades de una configuración de sesión.This feature makes it easy to customize sessions without writing code and to discover the properties of a session configuration. Para crear un archivo de configuración de sesión, use el cmdlet New-PSSessionConfiguration.To create a session configuration file, use the New-PSSessionConfiguration cmdlet. Para obtener más información sobre los archivos de configuración de sesión, consulte about_Session_Configuration_Files.For more information about session configuration files, see about_Session_Configuration_Files.

Las configuraciones de sesión son una característica de servicios web para la comunicación remota de PowerShell basada en la administración (WS-Management).Session configurations are a feature of Web Services for Management (WS-Management) based PowerShell remoting. Solo se usan cuando se usan los cmdlets New-PSSession, Invoke-Command o Enter-PSSession para conectarse a un equipo remoto.They are used only when you use the New-PSSession, Invoke-Command, or Enter-PSSession cmdlets to connect to a remote computer.

Nota: para administrar las configuraciones de sesión, inicie PowerShell con la opción "ejecutar como administrador".Note: To manage the session configurations, start PowerShell with the "Run as administrator" option.

Acerca de las configuraciones de sesiónAbout Session Configurations

Cada sesión de PowerShell usa una configuración de sesión.Every PowerShell session uses a session configuration. Esto incluye las sesiones persistentes que se crean con los cmdlets New-PSSession o Enter-PSSession y las sesiones temporales que PowerShell crea cuando se usa el parámetro ComputerName de un cmdlet que usa la tecnología de comunicación remota basada en WS-Management, como Invoke-Command.This includes persistent sessions that you create by using the New-PSSession or Enter-PSSession cmdlets, and the temporary sessions that PowerShell creates when you use the ComputerName parameter of a cmdlet that uses WS-Management-based remoting technology, such as Invoke-Command.

Los administradores pueden usar configuraciones de sesión para proteger los recursos del equipo y crear entornos personalizados para los usuarios que se conectan al equipo.Administrators can use session configurations to protect the resources of the computer and to create custom environments for users who connect to the computer. Por ejemplo, puede usar una configuración de sesión para limitar el tamaño de los objetos que recibe el equipo en la sesión, para definir el modo de lenguaje de la sesión y para especificar los cmdlets, los proveedores y las funciones que están disponibles en la sesión.For example, you can use a session configuration to limit the size of objects that the computer receives in the session, to define the language mode of the session, and to specify the cmdlets, providers, and functions that are available in the session.

La configuración del descriptor de seguridad de una configuración de sesión determina quién puede usar la configuración de sesión para conectarse al equipo.By configuring the security descriptor of a session configuration, you determine who can use the session configuration to connect to the computer. Los usuarios deben tener permiso de ejecución en una configuración de sesión para utilizarla en una sesión.Users must have Execute permission to a session configuration to use it in a session. Si un usuario no tiene los permisos necesarios para usar cualquiera de las configuraciones de sesión en un equipo, el usuario no podrá conectarse al equipo de forma remota.If a user does not have the required permissions to use any of the session configurations on a computer, the user cannot connect to the computer remotely.

De forma predeterminada, solo los administradores del equipo tienen permiso para usar las configuraciones de sesión predeterminadas.By default, only Administrators of the computer have permission to use the default session configurations. No obstante, puede cambiar los descriptores de seguridad para permitir que todos los usuarios, ninguno o solo los usuarios seleccionados usen las configuraciones de sesión en el equipo.But, you can change the security descriptors to allow everyone, no one, or only selected users to use the session configurations on your computer.

Configuraciones de sesión integradasBuilt-in Session Configurations

PowerShell 3,0 incluye configuraciones de sesión integradas denominadas Microsoft. PowerShell y Microsoft. PowerShell. Workflow.PowerShell 3.0 includes built-in session configurations named Microsoft.PowerShell and Microsoft.PowerShell.Workflow. En los equipos que ejecutan versiones de 64 bits de Windows, PowerShell también proporciona Microsoft. PowerShell32, una configuración de sesión de 32 bits.On computers running 64-bit versions of Windows, PowerShell also provides Microsoft.PowerShell32, a 32-bit session configuration.

La configuración de sesión Microsoft. PowerShell se usa para las sesiones de forma predeterminada, es decir, cuando un comando para crear una sesión no incluye el parámetro ConfigurationName del cmdlet New-PSSession, ENTER-PSSession o Invoke-Command.The Microsoft.PowerShell session configuration is used for sessions by default, that is, when a command to create a session does not include the ConfigurationName parameter of the New-PSSession, Enter-PSSession, or Invoke-Command cmdlet.

Los descriptores de seguridad de las configuraciones de sesión predeterminadas solo permiten a los miembros del grupo administradores del equipo local usarlos.The security descriptors for the default session configurations allow only members of the Administrators group on the local computer to use them. Como tal, solo los miembros del grupo administradores pueden conectarse al equipo de forma remota a menos que cambie la configuración predeterminada.As such, only members of the Administrators group can connect to the computer remotely unless you change the default settings.

Puede cambiar las configuraciones de sesión predeterminadas mediante la variable de preferencia $PSSessionConfigurationName.You can change the default session configurations by using the $PSSessionConfigurationName preference variable. Para obtener más información, consulte about_Preference_Variables.For more information, see about_Preference_Variables.

Ver las configuraciones de sesión en el equipo localViewing Session Configurations on the Local Computer

Para obtener las configuraciones de sesión en el equipo local, use el cmdlet Get-PSSessionConfiguration.To get the session configurations on your local computer, use the Get-PSSessionConfiguration cmdlet.

Por ejemplo, escriba:For example, type:

PS C:> Get-PSSessionConfiguration | Format-List -Property Name, Permission

Name       : microsoft.powershell
Permission : BUILTIN\Administrators AccessAllowed

Name       : microsoft.powershell.workflow
Permission : BUILTIN\Administrators AccessAllowed

Name       : microsoft.powershell32
Permission : BUILTIN\Administrators AccessAllowed

El objeto de configuración de sesión se expande en PowerShell 3,0 para mostrar las propiedades de la configuración de sesión que se configuran mediante un archivo de configuración de sesión.The session configuration object is expanded in PowerShell 3.0 to display the properties of the session configuration that are configured by using a session configuration file.

Por ejemplo, para ver todas las propiedades de un objeto de configuración de sesión, escriba:For example, to see all of the properties of a session configuration object, type:

PS C:> Get-PSSessionConfiguration | Format-List -Property *

También puede usar el proveedor de WSMan en PowerShell para ver las configuraciones de sesión.You can also use the WSMan provider in PowerShell to view session configurations. El proveedor WSMan crea una unidad WSMAN: en la sesión.The WSMan provider creates a WSMAN: drive in your session.

En la unidad WSMAN:, las configuraciones de sesión se encuentran en el nodo del complemento.In the WSMAN: drive, session configurations are in the Plugin node. (Todas las configuraciones de sesión se encuentran en el nodo del complemento, pero hay elementos en el nodo del complemento que no son configuraciones de sesión).(All session configurations are in the Plugin node, but there are items in the Plugin node that are not session configurations.)

Por ejemplo, para ver las configuraciones de sesión en el equipo local, escriba:For example, to view the session configurations on the local computer, type:

PS C:> dir wsman:\localhost\plugin\microsoft*

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

Type       Keys                              Name
----       ----                              ----
Container  {Name=microsoft.powershell}       microsoft.powershell
Container  {Name=microsoft.powershell.wor... microsoft.powershell.workflow
Container  {Name=microsoft.powershell32}     microsoft.powershell32

Ver las configuraciones de sesión en un equipo remotoViewing Session Configurations on a Remote Computer

Para ver las configuraciones de sesión en un equipo remoto, use el cmdlet Connect-WSMan para agregar una nota para el equipo remoto a la unidad WSMAN: del equipo local y, a continuación, use la unidad WSMAN: para ver las configuraciones de sesión.To view the session configurations on a remote computer, use the Connect-WSMan cmdlet to add a note for the remote computer to the WSMAN: drive on your local computer, and then use the WSMAN: drive to view the session configurations.

Por ejemplo, el comando siguiente agrega un nodo para el equipo remoto Server01 a la unidad WSMAN: del equipo local.For example, the following command adds a node for the Server01 remote computer to the WSMAN: drive on the local computer.

PS C:> Connect-WSMan server01.corp.fabrikam.com

Una vez completado el comando, puede desplazarse hasta el nodo del equipo Server01 para ver las configuraciones de sesión.When the command is complete, you can navigate to the node for the Server01 computer to view the session configurations.

Por ejemplo:For example:

PS C:> cd wsman:

PS WSMan:> dir

ComputerName                                  Type
------------                                  ----
localhost                                     Container
server01.corp.fabrikam.com                    Container

PS WSMan:> dir server01\plugin\

WSManConfig: Microsoft.WSMan.Management\WSMan::server01.corp.fabrikam.com\Pl
ugin

Type       Keys                              Name
----       ----                              ----
Container  {Name=microsoft.powershell}       microsoft.powershell
Container  {Name=microsoft.powershell.wor... microsoft.powershell.workflow
Container  {Name=microsoft.powershell32}     microsoft.powershell32

Cambiar el descriptor de seguridad de una configuración de sesiónChanging the Security Descriptor of a Session Configuration

En Windows Server 2012 y versiones más recientes de Windows Server, las configuraciones de sesión integradas están habilitadas de forma predeterminada para los usuarios remotos.In Windows Server 2012 and newer releases of Windows Server, the built-in session configurations are enabled for remote users by default. En otras versiones compatibles de Windows, debe cambiar los descriptores de seguridad de las configuraciones de sesión para permitir el acceso remoto.In other supported versions of Windows, you must change the security descriptors of the session configurations to allow remote access.

Para habilitar el acceso remoto a las configuraciones de sesión en el equipo, use el cmdlet Enable-PSRemoting.To enable remote access to the session configurations on the computer, use the Enable-PSRemoting cmdlet. Este cmdlet crea dos configuraciones de sesión:This cmdlet creates two session configurations:

  • con el nombre definido como: "PowerShell".with the name defined as: "PowerShell." + "versión actual de PowerShell"+ "current PowerShell version"
  • con el nombre "PowerShell. 6", no vinculado a ninguna versión específica de PowerShell.with name "PowerShell.6", untied to any specific PowerShell version.

Además, de forma predeterminada, solo los miembros del grupo administradores del equipo tienen permiso de ejecución para las configuraciones de sesión predeterminadas, pero puede cambiar los descriptores de seguridad en las configuraciones de sesión predeterminadas y en las configuraciones de sesión que cree.Also, by default, only members of the Administrators group on the computer have Execute permission to the default session configurations, but you can change the security descriptors on the default session configurations and on any session configurations that you create.

Para conceder a otros usuarios permiso para conectarse al equipo de forma remota, use el cmdlet Set-PSSessionConfiguration para agregar permisos "Execute" para esos usuarios a los descriptores de seguridad de las configuraciones de sesión Microsoft. PowerShell y Microsoft. PowerShell32.To give other users permission to connect to the computer remotely, use the Set-PSSessionConfiguration cmdlet to add "Execute" permissions for those users to the security descriptors of the Microsoft.PowerShell and Microsoft.PowerShell32 session configurations.

Por ejemplo, el siguiente comando abre una página de propiedades que le permite cambiar el descriptor de seguridad para la configuración de sesión predeterminada de Microsoft. PowerShell.For example, the following command opens a property page that lets you change the security descriptor for the Microsoft.PowerShell default session configuration.

Set-PSSessionConfiguration -name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Para denegar el permiso todos a todas las configuraciones de sesión en el equipo, use el cmdlet Disable-PSSessionConfiguration.To deny everyone permission to all the session configurations on the computer, use the Disable-PSSessionConfiguration cmdlet. Por ejemplo, el siguiente comando deshabilita las configuraciones de sesión predeterminadas en el equipo.For example, the following command disables the default session configurations on the computer.

PS C:> Disable-PSSessionConfiguration -Name Microsoft.PowerShell

Para evitar que los usuarios remotos se conecten al equipo, pero permitir que los usuarios locales se conecten, use el cmdlet Disable-PSRemoting.To prevent remote users from connecting to the computer, but allow local users to connect, use the Disable-PSRemoting cmdlet. Disable-PSRemoting agrega una entrada "Network_Deny_All" a todas las configuraciones de sesión del equipo.Disable-PSRemoting adds a "Network_Deny_All" entry to all session configurations on the computer.

PS C:> Disable-PSRemoting

Para permitir que los usuarios remotos usen todas las configuraciones de sesión en el equipo, use el cmdlet Enable-PSRemoting o Enable-PSSessionConfiguration.To allow remote users to use all session configurations on the computer, use the Enable-PSRemoting or Enable-PSSessionConfiguration cmdlet. Por ejemplo, el siguiente comando habilita el acceso remoto a las configuraciones de sesión integradas.For example, the following command enables remote access to the built-in session configurations.

PS C:> Enable-PSSessionConfiguration -name Microsoft.Power*

Para realizar otros cambios en el descriptor de seguridad de una configuración de sesión, use el cmdlet Set-PSSessionConfiguration.To make other changes to the security descriptor of a session configuration, use the Set-PSSessionConfiguration cmdlet. Use el parámetro SecurityDescriptorSDDL para enviar un valor de cadena SDDL.Use the SecurityDescriptorSDDL parameter to submit an SDDL string value. Use el parámetro ShowSecurityDescriptorUI para mostrar una hoja de propiedades de la interfaz de usuario que le ayude a crear un nuevo SDDL.Use the ShowSecurityDescriptorUI parameter to display a user interface property sheet that helps you to create a new SDDL.

Por ejemplo:For example:

Set-PSSessionConfiguration -Name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Crear una nueva configuración de sesiónCreating a New Session Configuration

Para crear una nueva configuración de sesión en el equipo local, use el cmdlet Register-PSSessionConfiguration.To create a new session configuration on the local computer, use the Register-PSSessionConfiguration cmdlet. Para definir la nueva configuración de sesión, puede usar un ensamblado de C#, un script de PowerShell y los parámetros del cmdlet Register-PSSessionConfiguration.To define the new session configuration, you can use a C# assembly, a PowerShell script, and the parameters of the Register-PSSessionConfiguration cmdlet.

Por ejemplo, el siguiente comando crea una configuración de sesión que es idéntica a la configuración de sesión Microsoft. PowerShell, con la salvedad de que limita los datos recibidos de un comando remoto a 20 megabytes (MB).For example, the following command creates a session configuration that is identical the Microsoft.PowerShell session configuration, except that it limits the data received from a remote command to 20 megabytes (MB). (El valor predeterminado es 50 MB).(The default is 50 MB).

Register-PSSessionConfiguration -Name NewConfig `
  -MaximumReceivedDataSizePerCommandMB 20

Al crear una configuración de sesión, puede administrarla mediante los otros cmdlets de configuración de sesión y aparece en la unidad WSMAN:.When you create a session configuration, you can manage it by using the other session configuration cmdlets, and it appears in the WSMAN: drive.

Para obtener más información, consulte Register-PSSessionConfiguration.For more information, see Register-PSSessionConfiguration.

Quitar una configuración de sesiónRemoving a Session Configuration

Para quitar una configuración de sesión del equipo local, use el cmdlet Unregister-PSSessionConfiguration.To remove a session configuration from the local computer, use the Unregister-PSSessionConfiguration cmdlet. Por ejemplo, el comando siguiente quita la configuración de sesión documento newconfig del equipo.For example, the following command removes the NewConfig session configuration from the computer.

PS C:> Unregister-PSSessionConfiguration -Name NewConfig

Para obtener más información, consulte unregister-PSSessionConfiguration.For more information, see Unregister-PSSessionConfiguration.

Restaurar una configuración de sesiónRestoring a Session Configuration

Para restaurar una configuración de sesión predeterminada que se eliminó (no registró) accidentalmente, use el cmdlet Enable-PSRemoting.To restore a default session configuration that was deleted (unregistered) accidentally, use the Enable-PSRemoting cmdlet.

El cmdlet Enable-PSRemoting vuelve a crear todas las configuraciones de sesión predeterminadas que no existen en el equipo.The Enable-PSRemoting cmdlet recreates all default sessions configurations that do not exist on the computer. No sobrescribe ni cambia los valores de propiedad de las configuraciones de sesión existentes.It does not overwrite or change the property values of existing session configurations.

Para restaurar los valores de propiedad originales de una configuración de sesión predeterminada, use el Unregister-PSSessionConfiguration para eliminar la configuración de sesión y, a continuación, use el cmdlet Enable-PSRemoting para volver a crearla.To restore the original property values of a default session configuration, use the Unregister-PSSessionConfiguration to delete the session configuration and then use the Enable-PSRemoting cmdlet to recreate it.

Seleccionar una configuración de sesiónSelecting a Session Configuration

Para seleccionar una configuración de sesión determinada para una sesión, use el parámetro ConfigurationName de New-PSSession, ENTER-PSSession o Invoke-Command.To select a particular session configuration for a session, use the ConfigurationName parameter of New-PSSession, Enter-PSSession, or Invoke-Command.

Por ejemplo, este comando usa el cmdlet New-PSSession para iniciar una PSSession en el equipo Server01.For example, this command uses the New-PSSession cmdlet to start a PSSession on the Server01 computer. El comando usa el parámetro ConfigurationName para seleccionar la configuración de WithProfile en el equipo Server01.The command uses the ConfigurationName parameter to select the WithProfile configuration on the Server01 computer.

PS C:> New-PSSession -ComputerName Server01 -ConfigurationName WithProfile

Este comando solo se realizará correctamente si el usuario actual tiene permiso para usar la configuración de sesión WithProfile o puede proporcionar las credenciales de un usuario que tenga los permisos necesarios.This command will succeed only if the current user has permission to use the WithProfile session configuration or can supply the credentials of a user who has the required permissions.

También puede utilizar la variable de preferencia $PSSessionConfigurationName para cambiar la configuración de sesión predeterminada en el equipo.You can also use the $PSSessionConfigurationName preference variable to change the default session configuration on the computer. Para obtener más información sobre la variable de preferencia $PSSessionConfigurationName, vea about_Preference_Variables.For more information about the $PSSessionConfigurationName preference variable, see about_Preference_Variables.

PALABRAKEYWORDS

about_Endpoints about_SessionConfigurationsabout_Endpoints about_SessionConfigurations

CONSULTE TAMBIÉNSEE ALSO

about_Preference_Variablesabout_Preference_Variables

about_PSSessionsabout_PSSessions

about_Remoteabout_Remote

about_Session_Configuration_Filesabout_Session_Configuration_Files

New-PSSessionNew-PSSession

Disable-PSSessionConfigurationDisable-PSSessionConfiguration

Enable-PSSessionConfigurationEnable-PSSessionConfiguration

Get-PSSessionConfigurationGet-PSSessionConfiguration

New-PSSessionConfigurationFileNew-PSSessionConfigurationFile

Register-PSSessionConfigurationRegister-PSSessionConfiguration

Set-PSSessionConfigurationSet-PSSessionConfiguration

Test-PSSessionConfigurationFileTest-PSSessionConfigurationFile

Unregister-PSSessionConfigurationUnregister-PSSessionConfiguration