TEMA
    about_PSSession_details

DESCRIPCIÓN BREVE
    Proporciona información detallada sobre las sesiones de Windows 
    PowerShell y el papel que desempeñan en los comandos remotos.

DESCRIPCIÓN DETALLADA
    Una sesión es un entorno en el que se ejecuta Windows PowerShell. 
    Se crea automáticamente una sesión cada vez que inicia Windows 
    PowerShell. Puede crear sesiones adicionales, denominadas 
    "sesiones de Windows PowerShell" o "PSSessions", en su equipo o 
    en otro equipo.

    A diferencia de las sesiones creadas por Windows PowerShell, 
    usted controla y administra las PSSessions que crea.

    Las PSSessions desempeñan un papel importante en la comunicación 
    remota. Cuando crea una PSSession que está conectada a un equipo 
    remoto, Windows PowerShell establece una conexión persistente al 
    equipo remoto para admitir la PSSession. Puede utilizar la 
    PSSession para ejecutar una serie de comandos, funciones y scripts que 
    comparten datos. 

    En este tema se proporciona información detallada sobre las sesiones y 
    PSSessions de Windows PowerShell. Para obtener información básica 
    sobre las tareas que puede realizar con las sesiones, vea about_PSSessions.  

 ACERCA DE LAS SESIONES
    Desde el punto de vista técnico, una sesión es un entorno de 
    ejecución en el que se ejecuta Windows PowerShell. Cada sesión 
    incluye una instancia del motor de System.Management.Automation y un 
    programa host en el que se ejecuta Windows PowerShell. El host puede 
    ser la consola de Windows PowerShell u otro programa que ejecute 
    comandos, como Cmd.exe, o bien, un programa generado para hospedar 
    Windows PowerShell, como Entorno de scripting integrado (ISE) de Windows 
    PowerShell. Desde el punto de vista de Windows, una sesión es un proceso de 
    Windows en el equipo de destino. 

    Cada sesión se configura de manera independiente. Incluye sus propias 
    propiedades, su propia directiva de ejecución y sus propios perfiles. 
    El entorno que existe cuando se crea la sesión persiste durante toda 
    la sesión, incluso si se modifica el entorno en el equipo. Todas las 
    sesiones se crean en un ámbito global, incluso las sesiones que se 
    crean en un script. 

    Puede ejecutar solo un comando (o una canalización de comandos) a 
    la vez en una sesión. Un segundo comando ejecutado sincrónicamente
    (de uno en uno) espera durante un máximo de cuatro minutos hasta 
    que se complete el primer comando. Un segundo comando ejecutado 
    asincrónicamente (simultáneamente) genera un error.

 ACERCA DE LAS PSSESSIONS
    Se crea una sesión cada vez que inicia Windows PowerShell. Windows 
    PowerShell crea sesiones temporales para ejecutar los comandos 
    individuales. Sin embargo, también puede crear sesiones (denominadas 
    "sesiones de Windows PowerShell" o "PSSessions")que usted controla y 
    administra.
 
    Las PSSessions son muy importantes para los comandos remotos. Si 
    utiliza el parámetro ComputerName del cmdlet Invoke-Command o Enter-
    PSSession, Windows PowerShell establece una sesión temporal para 
    ejecutar el comando y, a continuación, cierra la sesión cuando se 
    completa el comando o la sesión interactiva. 

    Sin embargo, si utiliza el cmdlet New-PSSession para crear una 
    PSSession, Windows PowerShell establece una sesión persistente en 
    el equipo remoto donde puede ejecutar varios comandos o varias 
    sesiones interactivas. Las PSSessions que crea permanecen abiertas y 
    disponibles hasta que las elimine o cierre la sesión en la que se crearon.

    Cuando crea una PSSession en un equipo remoto, el sistema crea un 
    proceso de PowerShell en el equipo remoto y establece una 
    conexión entre el equipo local y el proceso en el equipo remoto. 
    Cuando crea una PSSession en el equipo local, el nuevo proceso y las 
    conexiones se crean en el equipo local.


 ¿CUÁNDO SE NECESITA UNA PSSESSION?
    Los cmdlets Invoke-Command y Enter-PSSession tienen parámetros ComputerName 
    y Session. Puede utilizar cualquiera de ellos para ejecutar un 
    comando remoto. 

    Use el parámetro ComputerName para ejecutar un solo comando o una 
    serie de comandos no relacionados en uno o varios equipos. 

    Para ejecutar comandos que comparten datos, necesita una conexión 
    persistente con el equipo remoto. En ese caso, cree una PSSession y, a 
    continuación, utilice el parámetro Session para ejecutar los comandos 
    en la PSSession.

    Muchos otros cmdlets que obtienen datos de equipos remotos, como 
    Get-Process, Get-Service, Get-EventLog y Get-WmiObject, tienen solo un 
    parámetro ComputerName. Utilizan tecnologías distintas de la 
    comunicación remota de Windows PowerShell para recopilar datos de 
    manera remota. Estos cmdlets no tienen un parámetro Session, pero 
    puede usar el cmdlet Invoke-Command para ejecutar estos comandos 
    en una PSSession.
 

 ¿CÓMO SE CREA UNA PSSESSION?
    Para crear una PSSession, utilice el cmdlet New-PSSession. Puede 
    utilizar New-PSSession para crear una PSSession en un equipo 
    local o remoto.


 ¿SE PUEDE CREAR UNA PSSESSION EN CUALQUIER EQUIPO? 
    Para crear una PSSession conectada a un equipo remoto, el equipo 
    debe estar configurado para la comunicación remota en Windows 
    PowerShell. El usuario actual debe ser miembro del grupo 
    Administradores en el equipo remoto o debe poder proporcionar las 
    credenciales de un miembro del grupo Administradores. Para obtener más 
    información, vea about_Remote_Requirements.


 ¿PUEDO VER LAS PSSESSIONS QUE OTROS USUARIOS HAN CREADO EN MI EQUIPO?
    No. Puede obtener y administrar únicamente las PSSessions que ha 
    creado en la sesión actual. No puede ver las PSSessions que otros 
    usuarios han creado, incluso si ejecutan comandos en el equipo local.


 ¿SE PUEDE EJECUTAR UN TRABAJO EN SEGUNDO PLANO EN UNA PSSESSION?
    Sí. Un trabajo en segundo plano es un comando que se ejecuta 
    asincrónicamente en segundo plano sin interactuar con la sesión 
    actual. Cuando se envía un comando para iniciar un trabajo, el 
    comando devuelve un objeto de trabajo, pero el trabajo continúa 
    ejecutándose en segundo plano hasta que se complete.

    Para iniciar un trabajo en segundo plano en un equipo local, use 
    el comando Start-Job. Puede ejecutar el trabajo en segundo plano 
    en una conexión temporal (mediante el parámetro ComputerName) o en una 
    PSSession (mediante el parámetro Session). 

    Para iniciar un trabajo en segundo plano en un equipo remoto, 
    utilice el cmdlet Invoke-Command con el parámetro AsJob o use el 
    cmdlet Invoke-Command para ejecutar un comando Start-Job en un 
    equipo remoto. Si utiliza el parámetro AsJob, puede utilizar los 
    parámetros ComputerName o Session.

    Si utiliza Invoke-Command para ejecutar un comando Start-Job, 
    debe ejecutar el comando en una PSSession. Si utiliza el parámetro 
    ComputerName, Windows PowerShell finaliza la conexión cuando se 
    devuelve el objeto de trabajo y se interrumpe el trabajo.

    Para obtener más información, vea about_Jobs.


 ¿SE PUEDE EJECUTAR UNA SESIÓN INTERACTIVA?
    Sí. Para iniciar una sesión interactiva con un equipo remoto, use 
    el cmdlet Enter-PSSession. En una sesión interactiva, los 
    comandos que se escriben se ejecutan en el equipo remoto como si 
    se hubieran escrito directamente en el equipo remoto. 

    Puede ejecutar una sesión interactiva en una sesión temporal 
    (mediante el parámetro ComputerName) o en una PSSession (mediante el 
    parámetro Session). Si utiliza una PSSession, la PSSession conserva 
    los datos de los comandos anteriores así como todos los datos 
    generados durante la sesión interactiva para que se puedan usar en 
    comandos posteriores.

    Cuando finaliza la sesión interactiva, la PSSession permanece 
    abierta y disponible.

    Para obtener más información, vea Enter-PSSession and Exit-PSSession.
 

 ¿SE DEBEN ELIMINAR LAS PSSESSIONS?
    Sí. Una PSSession es un proceso que se encuentra en un entorno autónomo 
    que utiliza memoria y otros recursos, incluso si no se está usándola. 
    Cuando termine de usar una PSSession, elimínela. Si crea varias 
    PSSessions, cierre las que no utilice y mantenga abiertas solo 
    las que esté usando. 

    Para eliminar PSSessions, utilice el cmdlet Remove-PSSession. 
    Este cmdlet elimina las PSSessions y libera todos los recursos 
    usados por las mismas. 

    También puede utilizar el parámetro TimeOut de New-PSSession para 
    cerrar una PSSession inactiva después de un intervalo especificado. 
    Para obtener más información, vea New-PSSession.

    Si no elimina la PSSession o no establece un tiempo de espera, la 
    PSSession permanece abierta y disponible hasta que la cierre, 
    cierre la sesión en la que se creó o cierre Windows PowerShell. 
    Sin embargo, una PSSession en un equipo remoto se desconectará si 
    el equipo remoto no responde durante cuatro minutos. (El equipo 
    remoto está configurado de modo que envíe una señal de actividad 
    cada tres minutos.)

    Si guarda un objeto de PSSession en una variable y, a continuación, 
    elimina la PSSession o deja que se agote el tiempo de espera, 
    la variable conservará el objeto PSSession pero la PSSession 
    no estará activa y no se puede utilizar ni reparar.
    

 ¿TODAS LAS SESIONES Y PSSESSIONS SON IGUALES?
    No. Los programadores pueden crear sesiones personalizadas que 
    incluyen únicamente proveedores y cmdlets seleccionados. Si un comando 
    funciona en una sesión pero no en otra, puede ser debido a que la 
    sesión está restringida.


VEA TAMBIÉN
    about_Jobs
    about_PSSessions
    about_Remote 
    about_Remote_Requirements
    Invoke-Command
    New-PSSession 
    Get-PSSession 
    Remove-PSSession 
    Enter-PSSession 
    Exit-PSSession 




Tabla de contenido