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