TEMA about_Session_Configurations DESCRIPCIÓN BREVE Describe las configuraciones de sesión, que determinan los usuarios que pueden establecer conexión con el equipo de forma remota y los comandos que pueden ejecutar. DESCRIPCIÓN DETALLADA Una configuración de sesión es un grupo de valores en el equipo local que definen el entorno de las sesiones de Windows PowerShell que se crean cuando usuarios remotos se conectan al equipo local. Los administradores del equipo pueden utilizar las configuraciones de sesión para proteger el equipo y definir entornos personalizados para los usuarios que se conectan al equipo. Los administradores también pueden utilizar las configuraciones de sesión a fin de determinar los permisos necesarios para conectarse de forma remota al equipo. De manera predeterminada, solo los miembros del grupo Administradores tienen permiso para usar la configuración de sesión a fin de conectarse de forma remota. Sin embargo, se puede cambiar la configuración predeterminada de modo que todos los usuarios o determinados usuarios puedan conectarse de forma remota al equipo. Las configuraciones de sesión son una característica de la comunicación remota de Windows PowerShell basada en Web Services for Management (WS-Management). Se utilizan únicamente cuando se usa el cmdlet New-PSSession, Invoke-Command o Enter-PSSession para establecer una conexión con un equipo remoto. Nota: para administrar las configuraciones de sesión en un equipo en el que se ejecuta Windows Vista, Windows Server 2008 o una versión posterior de Windows, inicie Windows PowerShell con la opción "Ejecutar como administrador". Acerca de las configuraciones de sesión Cada sesión de Windows PowerShell utiliza una configuración de sesión. Esto también se aplica a las sesiones persistentes que se crean mediante el cmdlet New-PSSession o Enter-PSSession así como a las sesiones temporales creadas por Windows PowerShell cuando se usa el parámetro ComputerName de un cmdlet que utiliza la tecnología de comunicación remota basada en WS-Management, como Invoke-Command. Los administradores pueden utilizar las configuraciones de sesión para proteger los recursos del equipo y crear entornos personalizados para los usuarios que se conectan al equipo. Por ejemplo, pueden utilizar una configuración de sesión para limitar el tamaño de los objetos que el equipo recibe en la sesión, definir el modo de lenguaje de la sesión y especificar los cmdlets, proveedores y funciones que están disponibles en la sesión. Al configurar el descriptor de seguridad de una configuración de sesión, se determina quién puede utilizar la configuración de sesión para conectarse al equipo. Los usuarios deben disponer del permiso de ejecución de una configuración de sesión a fin de poder utilizarla en una sesión. Si un usuario no tiene los permisos necesarios para utilizar las configuraciones de sesión en un equipo, no podrá conectarse de forma remota al equipo. De manera predeterminada, solo los administradores del equipo tienen permiso para usar las configuraciones de sesión predeterminadas. Sin embargo, se pueden cambiar los descriptores de seguridad de modo que todos los usuarios, ningún usuario o determinados usuarios puedan usar las configuraciones de sesión en el equipo. Configuraciones de sesión predeterminadas. Windows PowerShell incluye una configuración de sesión integrada, denominada Microsoft.PowerShell. En los equipos en los que se ejecutan versiones de 64 bits de Windows, Windows PowerShell también proporciona Microsoft.PowerShell32, una configuración de sesión de 32 bits. Estas configuraciones de sesión se utilizan de forma predeterminada para las sesiones, 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 a los miembros del grupo Administradores en el equipo local utilizar dichas configuraciones. Como tal, solo los miembros del grupo Administradores pueden conectarse de forma remota al equipo, a menos que se modifique la configuración predeterminada. Las configuraciones de sesión predeterminadas se pueden modificar mediante la variable de preferencia $PSSessionConfigurationName. Para obtener más información, vea about_Preference_Variables. Ver las configuraciones de sesión en el equipo local Para obtener las configuraciones de sesión en el equipo local, utilice el cmdlet Get- PSSessionConfiguration. Por ejemplo, escriba: C:\PS> get-pssessionconfiguration | format-list -property name, permission Name : microsoft.powershell Permission : BUILTIN\Administrators AccessAllowed Name : microsoft.powershell32 Permission : BUILTIN\Administrators AccessAllowed También puede usar el proveedor de WS-Management en Windows PowerShell para ver las configuraciones de sesión. Este proveedor crea una unidad WSMAN: en la sesión. En la unidad WSMAN:, las configuraciones de sesión están en el nodo Plugin. (Todas las configuraciones de sesión están en el nodo Plugin, pero algunos elementos de este nodo no son configuraciones de sesión.) Por ejemplo, para ver las configuraciones de sesión en el equipo local, escriba: C:\PS> dir wsman:\localhost\plugin\microsoft* WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin Name Type Keys ---- ---- ---- microsoft.powershell Container {Name=microsoft.powershell} microsoft.powershell32 Container {Name=microsoft.powershell} Ver las configuraciones de sesión en un equipo remoto Para ver las configuraciones de sesión en un equipo remoto, utilice el cmdlet Connect-WSMan a fin de agregar un nodo para el equipo remoto a la unidad WSMAN: en el 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 Servidor01 a la unidad WSMAN: en el equipo local. C:\PS> connect-wsman servidor01.corp.fabrikam.com Cuando se completa el comando, se puede navegar hasta el nodo del equipo Servidor01 para ver las configuraciones de sesión. Por ejemplo: C:\PS> cd wsman: PS WSMan:\> dir ComputerName Type ------------ ---- localhost Container servidor01.corp.fabrikam.com Container PS WSMan:\> dir servidor01*\plugin\* WSManConfig: Microsoft.WSMan.Management\WSMan::servidor01.corp.fabrikam.com\Plugin Name Type Keys ---- ---- ---- microsoft.powershell Container {Name=microsoft.powershell} microsoft.powershell32 Container {Name=microsoft.powershell32} Cambiar el descriptor de seguridad de una configuración de sesión De forma predeterminada, los miembros del grupo Administradores en el equipo disponen de permisos de ejecución para las configuraciones de sesión predeterminadas. Sin embargo, se pueden modificar los descriptores de seguridad de las configuraciones de sesión predeterminadas y de cualquier configuración de sesión que se cree. Para que otros usuarios tengan permiso para conectarse de forma remota al equipo, use el cmdlet Set-PSSessionConfiguration a fin de agregar para esos usuarios permisos de ejecución a 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 permite cambiar el descriptor de seguridad de la configuración de sesión predeterminada Microsoft.PowerShell. C:\PS> set-pssessionConfiguration -name Microsoft.PowerShell -showSecurityDescriptorUI Si desea denegar a todos los usuarios el permiso para todas las configuraciones de sesión en el equipo, utilice la función Disable-PSRemoting o el cmdlet Disable-PSSessionConfiguration. Por ejemplo, el comando siguiente agrega la entrada "Denegar todo" a todas las configuraciones de sesión en el equipo. C:\PS> disable-psremoting Para agregar la entrada "Denegar todo" a una configuración de sesión concreta, utilice el cmdlet Disable-PSSessionConfiguration. Por ejemplo, los comandos siguientes agregan la entrada "Denegar todo" a la configuración de sesión Microsoft.PowerShell. C:\PS> disable-pssessionConfiguration -name Microsoft.PowerShell Para quitar la entrada "Denegar todo" de todas las configuraciones de sesión, utilice el cmdlet Enable-PSRemoting o Enable-PSSession Configuration. Por ejemplo, el comando siguiente quita la entrada "Denegar todo" de las configuraciones de sesión predeterminadas. C:\PS> enable-pssessionConfiguration -name Microsoft.Power* Para realizar otros cambios en el descriptor de seguridad de una configuración de sesión, utilice el cmdlet Set-PSSessionConfigurat ion. Use el parámetro SecurityDescriptorSDDL para enviar un valor de cadena de SDDL. Utilice el parámetro ShowSecurityDescriptorUI para que se muestre una hoja de propiedades de la interfaz de usuario que le ayuda a crear un nuevo SDDL. Por ejemplo: C:\PS> 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, utilice 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 comando siguiente crea una configuración de sesión que es idéntica a la configuración de sesión Microsoft.PowerShell, salvo en que limita a 20 MB los datos recibidos de un comando remoto. (El valor predeterminado es 50 MB.) c:\PS> register-psSessionConfiguration -name NewConfig --MaximumReceivedDataSizePerCommandMB 20 Cuando se crea una configuración de sesión, se puede administrarla usando los otros cmdlets de configuración de sesión y la configuración de sesión creada aparece en la unidad WSMAN:. Para obtener más información, vea Register-PSSessionConfiguration. Quitar una configuración de sesión Para quitar una configuración de sesión del equipo local, utilice el cmdlet Unregister-PSSessionConfiguration. Por ejemplo, el comando siguiente quita la configuración de sesión NewConfig del equipo. c:\PS> unregister-psSessionConfiguration -name NewConfig Para obtener más información, vea Unregister-PSSessionConfiguration. Seleccionar una configuración de sesión Para seleccionar una configuración de sesión concreta para una sesión, utilice el parámetro ConfigurationName de New-PSSession, Enter-PSSession o Invoke-Command. Por ejemplo, este comando utiliza el cmdlet New-PSSession para iniciar una PSSession en el equipo Servidor01. El comando utiliza el parámetro ConfigurationName para seleccionar la configuración WithProfile en el equipo Servidor01. C:\PS> new-pssession -computername Servidor01 -configurationName WithProfile Este comando solo se ejecutará correctamente si el usuario actual tiene permiso para usar la configuración de sesión WithProfile o puede proporcionar las credenciales de un usuario con los permisos necesarios. Asimismo, puede usar la variable de preferencia $PSSessionConfigur ationName para cambiar la configuración de sesión predeterminada en el equipo. Para obtener más información sobre la variable de preferencia $PSSessionConfigurationName, vea about_Preference_Variables. VEA TAMBIÉN about_Preference_Variables about_PSSession about_Remote New-PSSession Disable-PSSessionConfiguration Enable-PSSessionConfiguration Get-PSSessionConfiguration Register-PSSessionConfiguration Set-PSSessionConfiguration Unregister-PSSessionConfiguration