about_Session_Configurations

Se aplica a: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0

TEMA

about_Session_Configurations

DESCRIPCIÓN BREVE

Describe las configuraciones de sesión, que determinan los usuarios que pueden conectarse remotamente al equipo y los comandos que pueden ejecutar.

DESCRIPCIÓN LARGA

Una configuración de sesión, que también recibe el nombre de "extremo", es un grupo de ajustes del equipo local que definen el entorno para las sesiones de Windows PowerShell® que se crean cuando los usuarios locales o remotos se conectan a Windows PowerShell en el equipo local.

Los administradores del equipo pueden usar las configuraciones de sesión para proteger el equipo y definir los entornos personalizados para los usuarios que se conecten al equipo.

Los administradores también pueden usar las configuraciones de sesión para determinar los permisos necesarios para conectarse al equipo de forma remota. 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 remotamente al equipo.

A partir de Windows PowerShell 3.0, puede usar un archivo de configuración de sesión para definir los elementos de una configuración de sesión. Esta característica facilita la personalización de sesiones sin escribir código y la detección de las propiedades de una configuración de sesión. Para crear un archivo de configuración de sesión, use el cmdlet New-PSSessionConfiguration. Para más información sobre los archivos de configuración de sesión, consulte about_Session_Configuration_Files (https://go.microsoft.com/fwlink/?LinkID=236023).

Las configuraciones de sesión son una característica de Windows PowerShell para la comunicación remota basada en los servicios web para administración (WS-Management). Se usan únicamente cuando se emplean los cmdlets New-PSSession, Invoke-Command o Enter-PSSession para conectarse a un equipo remoto.

Nota: Para administrar las configuraciones de sesión, inicie Windows PowerShell con la opción "Ejecutar como administrador".

SOBRE LAS CONFIGURACIONES DE SESIÓN

Cada sesión de Windows PowerShell usa una configuración de sesión. Esto incluye las sesiones persistentes que cree mediante los cmdlets New-PSSession o Enter-PSSession y las sesiones temporales que Windows PowerShell crea cuando se usa el parámetro ComputerName de un cmdlet que emplea la tecnología de comunicación remota basada en WS-Management, como Invoke-Command.

Los administradores pueden usar las configuraciones de sesión para proteger los recursos del equipo y crear entornos personalizados para los usuarios que se conecten al equipo. 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 del idioma de la sesión y para especificar los cmdlets, proveedores y funciones que están disponibles en la sesión.

Mediante la configuración del descriptor de seguridad de una configuración de sesión, puede determinar quién puede usar la configuración de sesión para conectarse al equipo. Los usuarios deben tener permiso de ejecución en una configuración de sesión para poder usarla en una sesión. Si un usuario no tiene los permisos necesarios para usar ninguna configuración de sesión en un equipo, no podrá conectarse al equipo de forma remota.

De forma predeterminada, solo los administradores del equipo tienen permiso para usar las configuraciones de sesión predeterminadas. Sin embargo, puede cambiar los descriptores de seguridad para permitir a todos los usuarios, a ninguno o a un grupo seleccionado usar las configuraciones de sesión en el equipo. Insertar aquí el cuerpo de la subsección.

CONFIGURACIONES DE SESIÓN INTEGRADAS

Windows PowerShell 3.0 incluye configuraciones de sesión integradas, denominadas Microsoft.PowerShell y Microsoft.PowerShell.Workflow. En los equipos que ejecutan versiones de 64 bits de Windows, Windows PowerShell también proporciona Microsoft.PowerShell32, una configuración de sesión de 32 bits.

La configuración de sesión de Windows 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.

Los descriptores de seguridad de las configuraciones de sesión predeterminadas solo permiten usar estas configuraciones a los miembros del grupo Administradores en el equipo local. Por lo tanto, solo los miembros del grupo Administradores pueden conectarse al equipo remotamente, a menos que cambie la configuración predeterminada.

Puede cambiar las configuraciones de sesión predeterminadas mediante la variable de preferencia $PSSessionConfigurationName. Para obtener más información, consulte about_Preference_Variables.

VER LAS CONFIGURACIONES DE SESIÓN EN EL EQUIPO LOCAL

Para obtener las configuraciones de sesión del equipo local, use el cmdlet Get-PSSessionConfiguration.

Por ejemplo, escriba:

        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 Windows PowerShell 3.0 para mostrar las propiedades de la configuración de sesión que están establecidas mediante un archivo de configuración de sesión.

Por ejemplo, para ver todas las propiedades de un objeto de configuración de sesión, escriba:

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

También puede usar el proveedor de WSMan en Windows PowerShell para ver las configuraciones de sesión. El proveedor de WSMan crea una unidad WSMAN: en la sesión.

En la unidad WSMAN:, las configuraciones de sesión se encuentran en el nodo Complemento. (Todas las configuraciones de sesión se encuentran en el nodo Complemento, pero hay elementos en el nodo Complemento que no son configuraciones de sesión).

Por ejemplo, para ver las configuraciones de sesión en el equipo local, escriba: Insertar aquí el cuerpo de la subsección.

         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.workf... microsoft.powershell.workflow
         Container       {Name=microsoft.powershell32}       microsoft.powershell32

VER LAS CONFIGURACIONES DE SESIÓN DE UN EQUIPO REMOTO

Para ver las configuraciones de sesión de un equipo remoto, use el cmdlet Connect-WSMan para agregar una nota para el equipo remoto en la unidad WSMAN: del equipo local y, a continuación, use la unidad WSMAN: para ver las configuraciones de sesión.

Por ejemplo, el comando siguiente agrega un nodo para el equipo remoto Server01 a la unidad WSMAN: del equipo local.

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

Cuando finaliza el comando, puede ir al nodo para el equipo Server01 para ver las configuraciones de sesión.

Por ejemplo:

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


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

CAMBIAR EL DESCRIPTOR DE SEGURIDAD DE UNA CONFIGURACIÓN DE SESIÓN

En Windows Server 2012 y versiones más recientes de Windows Server, las configuraciones de sesión integradas están habilitadas de manera predeterminada para usuarios remotos. En otras versiones compatibles de Windows, debe cambiar los descriptores de seguridad de las configuraciones de sesión para permitir el acceso remoto.

Para habilitar el acceso remoto a las configuraciones de sesión en el equipo, use el cmdlet Enable-PSRemoting. Insertar aquí el cuerpo de la subsección.

Además, de forma predeterminada, solo los miembros del grupo Administradores del equipo tienen permiso de ejecución en las configuraciones de sesión predeterminadas, aunque puede cambiar los descriptores de seguridad de las configuraciones de sesión predeterminadas y las configuraciones de sesión que usted cree.

Para conceder a otros usuarios permiso para conectarse al equipo de forma remota, use el cmdlet Set-PSSessionConfiguration para agregar permisos de "Ejecutar" para estos usuarios en los descriptores de seguridad de las configuraciones de sesión Microsoft.PowerShell y Microsoft.PowerShell32.

Por ejemplo, el comando siguiente abre una página de propiedades que le permite cambiar el descriptor de seguridad de la configuración de sesión predeterminada Microsoft.PowerShell.

        PS C:\> Set-PSSessionConfiguration -name Microsoft.PowerShell -ShowSecurityDescriptorUI

Para denegar a todos los usuarios el permiso en todas las configuraciones de sesión del equipo, use el cmdlet Disable-PSSessionConfiguration. Por ejemplo, el siguiente comando deshabilita las configuraciones de sesión predeterminada del equipo.

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

Para impedir que los usuarios remotos se conecten al equipo, pero permitir que los usuarios locales se conecten, use el cmdlet Disable-PSRemoting. Disable-PSRemoting agrega una entrada "Network_Deny_All" a todas las configuraciones de sesión del equipo.

        PS C:\> Disable-PSRemoting

Para permitir que los usuarios remotos usen todas las configuraciones de sesión del equipo, use el cmdlet Enable-PSRemoting o Enable-PSSessionConfiguration. Por ejemplo, el siguiente comando habilita el acceso remoto a las configuraciones de sesión integradas.

        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. Use el parámetro SecurityDescriptorSDDL para enviar un valor de cadena SDDL. Use el parámetro ShowSecurityDescriptorUI para mostrar una hoja de propiedades de interfaz de usuario que le ayudará a crear un nuevo SDDL.

Por ejemplo:

        PS C:\> Set-PSSessionConfiguration -Name Microsoft.PowerShell -ShowSecurityDescriptorUI

CREAR UNA NUEVA CONFIGURACIÓN DE SESIÓN

Para crear una nueva configuración de sesión en el equipo local, use el cmdlet Register-PSSessionConfiguration. Para definir la nueva configuración de sesión, puede usar un ensamblado de C#, un script de Windows PowerShell y los parámetros del cmdlet Register-PSSessionConfiguration.

Por ejemplo, el siguiente comando crea una configuración de sesión idéntica a la configuración de sesión Microsoft.PowerShell, salvo que limita los datos recibidos de un comando remoto a 20 megabytes (MB). (El valor predeterminado es 50 MB). Insertar aquí el cuerpo de la subsección.

        PS C:\> Register-PSSessionConfiguration -Name NewConfig --MaximumReceivedDataSizePerCommandMB                    20

Al crear una configuración de sesión, puede administrarla mediante los cmdlets de otra configuración de sesión. La configuración de sesión aparece en la unidad WSMAN:.

Para obtener más información, consulte Register-PSSessionConfiguration.

QUITAR UNA CONFIGURACIÓN DE SESIÓN

Para quitar una configuración de sesión del equipo local, use el cmdlet Unregister-PSSessionConfiguration. Por ejemplo, el comando siguiente quita la configuración de sesión NewConfig del equipo.

        PS C:\> Unregister-PSSessionConfiguration -Name NewConfig

Para obtener más información, consulte Unregister-PSSessionConfiguration.

RESTAURACIÓN DE UNA CONFIGURACIÓN DE SESIÓN

Para restaurar una configuración de sesión predeterminada que se ha eliminado (sin registrar) accidentalmente, use el cmdlet Enable-PSRemoting.

El cmdlet Enable-PSRemoting vuelve a crear todas las configuraciones de sesiones predeterminadas que ya no existen en el equipo. No sobrescribe ni cambiar los valores de las configuraciones de sesión existentes.

Para restaurar los valores originales de las propiedades de una configuración de sesión predeterminada, use Unregister-PSSessionConfiguration para eliminar la configuración de sesión y, a continuación, el cmdlet Enable-PSRemoting para volver a crearla.

SELECCIÓN DE UNA CONFIGURACIÓN DE SESIÓN

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.

Por ejemplo, este comando usa el cmdlet New-PSSession para iniciar una PSSession en el equipo Server01. El comando usa el parámetro ConfigurationName para seleccionar la configuración WithProfile en el equipo Server01.

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

Este comando solo tendrá éxito si el usuario actual tiene permiso para usar la configuración de sesión WithProfile o puede proporcionar las credenciales de un usuario que tiene los permisos necesarios.

También puede usar la variable de preferencia $PSSessionConfigurationName para cambiar la configuración de sesión predeterminada del equipo. Para más información sobre la variable de preferencia $PSSessionConfigurationName, consulte about_Preference_Variables.

PALABRAS CLAVE

about_Endpoints

about_SessionConfigurations

VEA TAMBIÉN

about_Preference_Variables

about_PSSession

about_Remote

about_Session_Configuration_Files

New-PSSession

Disable-PSSessionConfiguration

Enable-PSSessionConfiguration

Get-PSSessionConfiguration

New-PSSessionConfigurationFile

Register-PSSessionConfiguration

Set-PSSessionConfiguration

Test-PSSessionConfigurationFile

Unregister-PSSessionConfiguration