about_Session_Configurations
Se aplica a: Windows PowerShell 2.0, Windows PowerShell 3.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