Compartir a través de


Receive-PSSession

Obtiene los resultados de los comandos en sesiones desconectadas.

Sintaxis

Session (valor predeterminado)

Receive-PSSession
    [-Session] <PSSession>
    [-OutTarget <OutTarget>]
    [-JobName <String>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Id

Receive-PSSession
    [-Id] <Int32>
    [-OutTarget <OutTarget>]
    [-JobName <String>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ComputerSessionName

Receive-PSSession
    [-ComputerName] <String>
    -Name <String>
    [-ApplicationName <String>]
    [-ConfigurationName <String>]
    [-OutTarget <OutTarget>]
    [-JobName <String>]
    [-Credential <PSCredential>]
    [-Authentication <AuthenticationMechanism>]
    [-CertificateThumbprint <String>]
    [-Port <Int32>]
    [-UseSSL]
    [-SessionOption <PSSessionOption>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ComputerInstanceId

Receive-PSSession
    [-ComputerName] <String>
    -InstanceId <Guid>
    [-ApplicationName <String>]
    [-ConfigurationName <String>]
    [-OutTarget <OutTarget>]
    [-JobName <String>]
    [-Credential <PSCredential>]
    [-Authentication <AuthenticationMechanism>]
    [-CertificateThumbprint <String>]
    [-Port <Int32>]
    [-UseSSL]
    [-SessionOption <PSSessionOption>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ConnectionUriInstanceId

Receive-PSSession
    [-ConnectionUri] <Uri>
    -InstanceId <Guid>
    [-ConfigurationName <String>]
    [-AllowRedirection]
    [-OutTarget <OutTarget>]
    [-JobName <String>]
    [-Credential <PSCredential>]
    [-Authentication <AuthenticationMechanism>]
    [-CertificateThumbprint <String>]
    [-SessionOption <PSSessionOption>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ConnectionUriSessionName

Receive-PSSession
    [-ConnectionUri] <Uri>
    -Name <String>
    [-ConfigurationName <String>]
    [-AllowRedirection]
    [-OutTarget <OutTarget>]
    [-JobName <String>]
    [-Credential <PSCredential>]
    [-Authentication <AuthenticationMechanism>]
    [-CertificateThumbprint <String>]
    [-SessionOption <PSSessionOption>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

InstanceId

Receive-PSSession
    -InstanceId <Guid>
    [-OutTarget <OutTarget>]
    [-JobName <String>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

SessionName

Receive-PSSession
    -Name <String>
    [-OutTarget <OutTarget>]
    [-JobName <String>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

El cmdlet receive-PSSession de obtiene los resultados de los comandos que se ejecutan en sesiones de Windows PowerShell (PSSession) que se desconectaron. Si la sesión está conectada actualmente, Receive-PSSession obtiene los resultados de los comandos que se estaban ejecutando cuando se desconectaba la sesión. Si la sesión sigue desconectada, receive-PSSession se conecta a la sesión, reanuda los comandos suspendidos y obtiene los resultados de los comandos que se ejecutan en la sesión.

Puede usar un receive-PSSession de además de o en lugar de un comando Connect-PSSession. receive-PSSession puede conectarse a cualquier sesión desconectada o reconectada. Estos incluyen aquellos que se iniciaron en otras sesiones o en otros equipos.

receive-PSSession funciona en PSSessions que se desconectaron intencionadamente, como mediante el cmdlet Disconnect-PSSession o el inDisconnectedSession parámetro del cmdlet de Invoke-Command, o involuntariamente, como por una interrupción de la red.

Si usa el cmdlet Receive-PSSession para conectarse a una sesión en la que no se ejecutan ni suspenden comandos, Receive-PSSession se conecta a la sesión, pero no devuelve ningún resultado o error.

Para obtener más información sobre la característica Sesiones desconectadas, consulte about_Remote_Disconnected_Sessions.

Este cmdlet se introdujo en Windows PowerShell 3.0.

Ejemplos

Ejemplo 1: Conectarse a una PSSession

PS C:\> Receive-PSSession -ComputerName Server01 -Name ITTask

Este comando usa el cmdlet Receive-PSSession para conectarse a la sesión de ITTask en el equipo Server01 y obtener los resultados de los comandos que se estaban ejecutando en la sesión.

Dado que el comando no usa el parámetro OutTarget, los resultados aparecen en la línea de comandos.

Ejemplo 2: Obtención de resultados de todos los comandos en sesiones desconectadas

PS C:\> Get-PSSession -ComputerName Server01, Server02 | Receive-PSSession

Este comando obtiene los resultados de todos los comandos que se ejecutan en todas las sesiones desconectadas en los equipos Server01 y Server02.

Si alguna sesión no estaba desconectada o no ejecuta comandos, receive-PSSession no se conecta a la sesión y no devuelve ningún resultado o error.

Ejemplo 3: Obtener los resultados de un script que se ejecuta en una sesión

PS C:\> Receive-PSSession -ComputerName Server01 -Name ITTask -OutTarget Job -JobName ITTaskJob01 -Credential Domain01\Admin01
Id     Name            State         HasMoreData     Location
--     ----            -----         -----------     --------
16     ITTaskJob01     Running       True            Server01

Este comando usa el cmdlet Receive-PSSession para obtener los resultados de un script que se estaba ejecutando en la sesión de ITTask en el equipo Server01.

El comando usa los parámetros computerName y Name para identificar la sesión desconectada. Usa el parámetro OutTarget con un valor de Job para dirigir receive-PSSession para devolver los resultados como un trabajo y el parámetro JobName para especificar un nombre para el trabajo en la sesión reconectada.

El comando usa el parámetro Credential para ejecutar el comando Receive-PSSession mediante los permisos de un administrador de dominio.

La salida muestra que receive-PSSession devolvió los resultados como un trabajo en la sesión actual. Para obtener los resultados del trabajo, use un comando Receive-Job

Ejemplo 4: Obtención de resultados después de una interrupción de la red

The first command uses the New-PSSession cmdlet to create a session on the Server01 computer. The command saves the session in the $s variable.The second command gets the session in the $s variable. Notice that the **State** is Opened and the **Availability** is Available. These values indicate that you are connected to the session and can run commands in the session.
PS C:\> $s = New-PSSession -ComputerName Server01 -Name AD -ConfigurationName ADEndpoint
PS C:\> $s

Id Name    ComputerName    State         ConfigurationName     Availability
 -- ----    ------------    -----         -----------------     ------------
  8 AD      Server01        Opened        ADEndpoint            Available

The third command uses the Invoke-Command cmdlet to run a script in the session in the $s variable.The script begins to run and return data, but a network outage occurs that interrupts the session. The user has to exit the session and restart the local computer.
PS> Invoke-Command -Session $s -FilePath \\Server12\Scripts\SharedScripts\New-ADResolve.ps1
 Running "New-ADResolve.ps1"

# Network outage
# Restart local computer
# Network access is not re-established within 4 minutes

When the computer restarts, the user starts Windows PowerShell and runs a Get-PSSession command to get sessions on the Server01 computer. The output shows that the AD session still exists on the Server01 computer. The **State** indicates that it is disconnected and the **Availability** value, None, indicates that it is not connected to any client sessions.
PS C:\> Get-PSSession -ComputerName Server01

 Id Name    ComputerName    State         ConfigurationName     Availability
 -- ----    ------------    -----         -----------------     ------------
  1 Backup  Server01        Disconnected  Microsoft.PowerShell          None
  8 AD      Server01        Disconnected  ADEndpoint                   None


The fifth command uses the **Receive-PSSession** cmdlet to reconnect to the AD session and get the results of the script that ran in the session. The command uses the *OutTarget* parameter to request the results in a job named ADJob.The command returns a job object. The output indicates that the script is still running.
PS C:\> Receive-PSSession -ComputerName Server01 -Name AD -OutTarget Job -JobName AD
Job Id     Name      State         HasMoreData     Location
--     ----      -----         -----------     --------
16     ADJob     Running       True            Server01

The sixth command uses the Get-PSSession cmdlet to check the job state. The output confirms that, in addition to resuming script execution and getting the script results, the **Receive-PSSession** cmdlet reconnected to the AD session, which is now open and available for commands.
PS C:\> Get-PSSession -ComputerName Server01
Id Name    ComputerName    State         ConfigurationName     Availability
-- ----    ------------    -----         -----------------     ------------
 1 Backup  Server01        Disconnected  Microsoft.PowerShell          Busy
 8 AD      Server01        Opened        ADEndpoint                Available

En este ejemplo se usa el cmdlet Receive-PSSession para obtener los resultados de un trabajo después de que una interrupción de la red interrumpa una conexión de sesión. Windows PowerShell intenta volver a conectar automáticamente la sesión una vez cada segundo durante los próximos cuatro minutos y abandona el esfuerzo solo si se produce un error en todos los intentos del intervalo de cuatro minutos.

Ejemplo 5: Volver a conectarse a sesiones desconectadas

The first command uses the Invoke-Command cmdlet to run a script on the three remote computers. Because the scripts gathers and summarize data from multiple databases, it often takes the script an extended time to finish. The command uses the *InDisconnectedSession* parameter, which starts the scripts and then immediately disconnects the sessions.The command uses the *SessionOption* parameter to extend the **IdleTimeout** value of the disconnected session. Disconnected sessions are considered to be idle from the moment they are disconnected, so it is important to set the idle time-out for long enough that the commands can complete and you can reconnect to the session, if necessary. You can set the **IdleTimeout** only when you create the **PSSession** and change it only when you disconnect from it. You cannot change the **IdleTimeout** value when you connect to a **PSSession** or receiving its results.After running the command, the user exits Windows PowerShell and closes the computer .
PS C:\> Invoke-Command -InDisconnectedSession -ComputerName Server01, Server02, Server30 -FilePath \\Server12\Scripts\SharedScripts\Get-BugStatus.ps1 -Name BugStatus -SessionOption @{IdleTimeout = 86400000} -ConfigurationName ITTasks# Exit

# Start Windows PowerShell on a different computer.

On the next day, the user resumes Windows and starts Windows PowerShell. The second command uses the Get-PSSession cmdlet to get the sessions in which the scripts were running. The command identifies the sessions by the computer name, session name, and the name of the session configuration and saves the sessions in the $s variable.The third command displays the value of the $s variable. The output shows that the sessions are disconnected, but not busy, as expected.
PS C:\> $s = Get-PSSession -ComputerName Server01, Server02, Server30 -Name BugStatus
 PS C:\> $s
Id Name    ComputerName    State         ConfigurationName     Availability
 -- ----    ------------    -----         -----------------     ------------
  1 ITTask  Server01        Disconnected  ITTasks                       None
  8 ITTask  Server02        Disconnected  ITTasks                       None
  2 ITTask  Server30        Disconnected  ITTasks                       None


The fourth command uses the **Receive-PSSession** cmdlet to connect to the sessions in the $s variable and get their results. The command saves the results in the $Results variable.Another display of the $s variable shows that the sessions are connected and available for commands.
PS C:\> $Results = Receive-PSSession -Session $s
PS C:\> $s
 Id Name    ComputerName    State         ConfigurationName     Availability
-- ----    ------------    -----         -----------------     ------------
 1 ITTask  Server01        Opened        ITTasks                  Available
 8 ITTask  Server02        Opened        ITTasks                  Available
 2 ITTask  Server30        Opened        ITTasks                  Available


The fifth command displays the script results in the $Results variable. If any of the results are unexpected, the user can run commands in the sessions to investigate.
PS C:\> $Results
Bug Report - Domain 01
----------------------
ComputerName          BugCount          LastUpdated
--------------        ---------         ------------
Server01              121               Friday, December 30, 2011 5:03:34 PM

En este ejemplo se usa el cmdlet Receive-PSSession para volver a conectarse a las sesiones que se desconectaron intencionadamente y obtener los resultados de los trabajos que se estaban ejecutando en las sesiones.

Ejemplo 6: Ejecución de un trabajo en una sesión desconectada

The first command uses the New-PSSession cmdlet to create the Test session on the Server01 computer. The command saves the session in the $s variable.
PS C:\> $s = New-PSSession -ComputerName Server01 -Name Test

The second command uses the Invoke-Command cmdlet to run a command in the session in the $s variable. The command uses the *AsJob* parameter to run the command as a job and to create the job object in the current session. The command returns a job object, which is saved in the $j variable.The third command displays the job object in the $j variable.
PS C:\> $j = Invoke-Command -Session $s { 1..1500 | Foreach-Object {"Return $_"; sleep 30}} -AsJob

PS C:\> $j
Id     Name           State         HasMoreData     Location
--     ----           -----         -----------     --------
16     Job1           Running       True            Server01

The fourth command disconnects the session in the $s variable.
PS C:\> $s | Disconnect-PSSession
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
1  Test   Server01        Disconnected  Microsoft.PowerShell  None

The fifth command shows the effect of disconnecting on the job object in the $j variable. The job state is now Disconnected.
PS C:\> $j
Id     Name           State         HasMoreData     Location
--     ----           -----         -----------     --------
16     Job1           Disconnected  True            Server01

The sixth command runs a Receive-Job command on the job in the $j variable. The output shows that the job began to return output before the session and the job were disconnected.
PS C:\> Receive-Job $j -Keep
Return 1
Return 2

The seventh command is run in the same client session. The command uses the Connect-PSSession cmdlet to reconnect to the Test session on the Server01 computer and saves the session in the $s2 variable.
PS C:\> $s2 = Connect-PSSession -ComputerName Server01 -Name Test

The eighth command uses the **Receive-PSSession** cmdlet to get the results of the job that was running in the session. Because the command is run in the same session, **Receive-PSSession** returns the results as a job by default and reuses the same job object. The command saves the job in the $j2 variable.The ninth command uses the **Receive-Job** cmdlet to get the results of the job in the $j variable.
PS C:\> $j2 = Receive-PSSession -ComputerName Server01 -Name Test

PS C:\> Receive-Job $j
Return 3
Return 4

En este ejemplo se muestra lo que sucede con un trabajo que se ejecuta en una sesión desconectada.

Parámetros

-AllowRedirection

Indica que este cmdlet permite el redireccionamiento de esta conexión a un identificador uniforme de recursos (URI) alternativo.

Cuando utilizas el parámetro ConnectionURI, el destino remoto puede devolver una instrucción para redirigirse a un URI diferente. De forma predeterminada, Windows PowerShell no redirige las conexiones, pero puede usar este parámetro para permitir que redirija la conexión.

También puede limitar el número de veces que se redirige la conexión cambiando el valor de la opción de sesión MaximumConnectionRedirectionCount. Use el parámetro MaximumRedirection del cmdlet New-PSSessionOption o establezca la propiedad MaximumConnectionRedirectionCount de la variable de preferencia $PSSessionOption. El valor predeterminado es 5.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ConnectionUriInstanceId
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
ConnectionUriSessionName
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-ApplicationName

Especifica una aplicación. Este cmdlet solo se conecta a sesiones que usan la aplicación especificada.

Escriba el segmento de nombre de la aplicación del URI de conexión. Por ejemplo, en el siguiente URI de conexión, el nombre de la aplicación es WSMan: https://localhost:5985/WSMAN. El nombre de aplicación de una sesión se almacena en la propiedad Runspace.ConnectionInfo.AppName de la sesión.

El valor de este parámetro se usa para seleccionar y filtrar sesiones. No cambia la aplicación que usa la sesión.

Propiedades de parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ComputerSessionName
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False
ComputerInstanceId
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False

-Authentication

Especifica el mecanismo que se usa para autenticar las credenciales del usuario en el comando para volver a conectarse a la sesión desconectada. Los valores aceptables para este parámetro son:

  • Predeterminado
  • Básico
  • Credssp
  • Resumen
  • Kerberos
  • Negociar
  • NegotiateWithImplicitCredential

El valor predeterminado es Default.

Para obtener más información sobre los valores de este parámetro, consulte Enumeración de Mecanismo de Autenticación.

Precaución

La autenticación del proveedor de soporte técnico de seguridad de credenciales (CredSSP), en la que las credenciales de usuario se pasan a un equipo remoto para autenticarse, está diseñada para comandos que requieren autenticación en más de un recurso, como el acceso a un recurso compartido de red remoto. Este mecanismo aumenta el riesgo de seguridad de la operación remota. Si el equipo remoto está en peligro, se pueden usar las credenciales que se pasan a ella para controlar la sesión de red.

Propiedades de parámetro

Tipo:AuthenticationMechanism
Valor predeterminado:None
Valores aceptados:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ComputerSessionName
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
ComputerInstanceId
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
ConnectionUriInstanceId
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
ConnectionUriSessionName
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-CertificateThumbprint

Especifica el certificado de clave pública digital (X509) de una cuenta de usuario que tiene permiso para conectarse a la sesión desconectada. Ingrese la huella digital del certificado.

Los certificados se usan en la autenticación basada en certificados de cliente. Solo se pueden asignar a cuentas de usuario locales. No funcionan con cuentas de dominio.

Para obtener una huella digital de certificado, use un comando Get-Item o Get-ChildItem en la unidad Certificado de Windows PowerShell: .

Propiedades de parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ComputerSessionName
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
ComputerInstanceId
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
ConnectionUriInstanceId
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
ConnectionUriSessionName
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-ComputerName

Especifica el equipo en el que se almacena la sesión desconectada. Las sesiones se almacenan en el equipo que se encuentra en el lado servidor o reciben el final de una conexión. El valor predeterminado es el equipo local.

Escriba el nombre netBIOS, una dirección IP o un nombre de dominio completo de un equipo. No se admite el uso de caracteres comodín. Para especificar el equipo local, escriba el nombre del equipo, localhost o un punto (.)

Propiedades de parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False
Alias:CN

Conjuntos de parámetros

ComputerSessionName
Posición:0
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False
ComputerInstanceId
Posición:0
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False

-ConfigurationName

Solo se conecta a las sesiones que usan la configuración de sesión especificada.

Escriba un nombre de configuración o el URI de un recurso completo para configurar una sesión. Si especifica solo el nombre de configuración, se antepone el siguiente URI de esquema: https://schemas.microsoft.com/powershell. El nombre de configuración de una sesión se almacena en la propiedad ConfigurationName de la sesión.

El valor de este parámetro se usa para seleccionar y filtrar sesiones. No cambia la configuración de sesión que usa la sesión.

Para obtener más información sobre las configuraciones de sesión, consulte about_Session_Configurations.

Propiedades de parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ComputerSessionName
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False
ComputerInstanceId
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False
ConnectionUriInstanceId
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False
ConnectionUriSessionName
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False

-Confirm

Le pide confirmación antes de ejecutar el cmdlet.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False
Alias:cf

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-ConnectionUri

Especifica un URI que define el punto de conexión que se usa para volver a conectarse a la sesión desconectada.

El identificador URI debe ser completo. El formato de esta cadena es el siguiente:

<Transport>://<ComputerName>:<Port>/<ApplicationName>

El valor predeterminado es el siguiente:

https://localhost:5985/WSMAN

Si no especifica un URI de conexión, puede usar los parámetros UseSSL, ComputerName, Porty ApplicationName para especificar los valores de URI de conexión.

Los valores válidos para el segmento de transporte de del URI son HTTP y HTTPS. Si especifica un URI de conexión con un segmento de transporte, pero no especifica un puerto, la sesión se crea con puertos estándar: 80 para HTTP y 443 para HTTPS. Para usar los puertos predeterminados para la comunicación remota de Windows PowerShell, especifique el puerto 5985 para HTTP o 5986 para HTTPS.

Si el equipo de destino redirige la conexión a un URI diferente, Windows PowerShell impide el redireccionamiento a menos que use el parámetro AllowRedirection en el comando.

Propiedades de parámetro

Tipo:Uri
Valor predeterminado:https://localhost:5985/WSMAN
Admite caracteres comodín:False
DontShow:False
Alias:URI, CU

Conjuntos de parámetros

ConnectionUriInstanceId
Posición:0
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False
ConnectionUriSessionName
Posición:0
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False

-Credential

Especifica una cuenta de usuario que tiene permiso para conectarse a la sesión desconectada. El valor predeterminado es el usuario actual.

Escriba un nombre de usuario, como User01 o Domain01\User01. O bien, escriba un objeto de PSCredential, como uno generado por el cmdlet Get-Credential. Si escribe un nombre de usuario, este cmdlet le pedirá una contraseña.

Propiedades de parámetro

Tipo:PSCredential
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ComputerSessionName
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
ComputerInstanceId
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
ConnectionUriInstanceId
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
ConnectionUriSessionName
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Id

Especifica el identificador de la sesión desconectada. El parámetro Id solo funciona cuando la sesión desconectada se conectó anteriormente a la sesión actual.

Este parámetro es válido, pero no efectivo, cuando la sesión se almacena en el equipo local, pero no se conectó a la sesión actual.

Propiedades de parámetro

Tipo:Int32
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

Id
Posición:0
Obligatorio:True
Valor de la canalización:True
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False

-InstanceId

Especifica el identificador de instancia de la sesión desconectada.

El identificador de instancia es un GUID que identifica de forma única una PSSession en un equipo local o remoto.

El identificador de instancia se almacena en la propiedad InstanceID de la PSSession.

Propiedades de parámetro

Tipo:Guid
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ComputerInstanceId
Posición:Named
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
ConnectionUriInstanceId
Posición:Named
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
InstanceId
Posición:Named
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-JobName

Especifica un nombre descriptivo para el trabajo que receive-PSSession.

receive-PSSession devuelve un trabajo cuando el valor de parámetro OutTarget es Job o el trabajo que se ejecuta en la sesión desconectada se inició en la sesión actual.

Si el trabajo que se ejecuta en la sesión desconectada se inició en la sesión actual, Windows PowerShell reutiliza el objeto de trabajo original en la sesión y omite el valor del parámetro JobName.

Si el trabajo que se ejecuta en la sesión desconectada se inició en una sesión diferente, Windows PowerShell crea un nuevo objeto de trabajo. Usa un nombre predeterminado, pero puede usar este parámetro para cambiar el nombre.

Si el valor predeterminado o el valor explícito del parámetro OutTarget no es Job, el comando se ejecuta correctamente, pero el parámetro JobName no tiene ningún efecto.

Propiedades de parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Name

Especifica el nombre amigable de la sesión desconectada.

Propiedades de parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ComputerSessionName
Posición:Named
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
ConnectionUriSessionName
Posición:Named
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
SessionName
Posición:Named
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-OutTarget

Determina cómo se devuelven los resultados de la sesión. Los valores aceptables para este parámetro son:

  • Trabajo. Devuelve los resultados de forma asincrónica en un objeto de trabajo. Puede usar el parámetro JobName para especificar un nombre o un nombre nuevo para el trabajo.
  • Anfitrión. Devuelve los resultados a la línea de comandos (sincrónicamente). Si el comando se reanuda o los resultados constan de un gran número de objetos, es posible que la respuesta se retrase.

El valor predeterminado del parámetro OutTarget es Host. Sin embargo, si el comando que se recibe en la sesión desconectada se inició en la sesión actual, el valor predeterminado de la parámetro OutTarget es el formato en el que se inició el comando. Si el comando se inició como un trabajo, se devuelve como un trabajo de forma predeterminada. De lo contrario, se devuelve al programa host de forma predeterminada.

Normalmente, el programa host muestra los objetos devueltos en la línea de comandos sin demora, pero este comportamiento puede variar.

Propiedades de parámetro

Tipo:OutTarget
Valor predeterminado:None
Valores aceptados:Default, Host, Job
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Port

Especifica el puerto de red en el equipo remoto que se usa para volver a conectarse a la sesión. Para conectarse a un equipo remoto, este debe estar escuchando en el puerto que usa la conexión. Los puertos predeterminados son 5985, que es el puerto WinRM para HTTP y 5986, que es el puerto winRM para HTTPS.

Antes de usar un puerto alternativo, debe configurar el agente de escucha winRM en el equipo remoto para que escuche en ese puerto. Para configurar el agente de escucha, escriba los dos comandos siguientes en el símbolo del sistema de Windows PowerShell:

Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse

New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>

No use el parámetro Port a menos que sea necesario. El puerto que se establece en el comando se aplica a todos los equipos o sesiones en los que se ejecuta el comando. Una configuración de puerto alternativa podría impedir que el comando se ejecute en todos los equipos.

Propiedades de parámetro

Tipo:Int32
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ComputerSessionName
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
ComputerInstanceId
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Session

Especifica la sesión desconectada. Escriba una variable que contenga el psSession de o un comando que crea o obtiene el psSession, como un comando de Get-PSSession.

Propiedades de parámetro

Tipo:PSSession
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

Session
Posición:0
Obligatorio:True
Valor de la canalización:True
Valor de la canalización por nombre de propiedad:True
Valor de los argumentos restantes:False

-SessionOption

Especifica opciones avanzadas para la sesión. Escriba un objeto SessionOption, como uno que cree mediante el cmdlet New-PSSessionOption o una tabla hash en la que las claves son nombres de opción de sesión y los valores son valores de opción de sesión.

Los valores predeterminados de las opciones se determinan mediante el valor de la variable de preferencia $PSSessionOption, si se establece. De lo contrario, las opciones establecidas en la configuración de sesión establecen los valores predeterminados.

Los valores de opción de sesión tienen prioridad sobre los valores predeterminados de las sesiones establecidas en la variable de preferencia $PSSessionOption y en la configuración de la sesión. Sin embargo, no tienen prioridad sobre los valores máximos, cuotas o límites establecidos en la configuración de sesión.

Para obtener una descripción de las opciones de sesión que incluye los valores predeterminados, consulte New-PSSessionOption. Para obtener información sobre la variable de preferencia de $PSSessionOption, vea about_Preference_Variables. Para obtener más información sobre las configuraciones de sesión, consulte about_Session_Configurations.

Propiedades de parámetro

Tipo:PSSessionOption
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ComputerSessionName
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
ComputerInstanceId
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
ConnectionUriInstanceId
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
ConnectionUriSessionName
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-UseSSL

Indica que este cmdlet utiliza el protocolo Secure Sockets Layer (SSL) para conectarse a la sesión desconectada. De forma predeterminada, no se usa SSL.

WS-Management cifra todo el contenido de Windows PowerShell transmitido a través de la red. useSSL es una protección adicional que envía los datos a través de una conexión HTTPS en lugar de una conexión HTTP.

Si usa este parámetro, pero SSL no está disponible en el puerto que se usa para el comando, se produce un error en el comando.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ComputerSessionName
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False
ComputerInstanceId
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-WhatIf

Muestra lo que sucedería si el cmdlet se ejecuta. El cmdlet no se ejecuta.

Propiedades de parámetro

Tipo:SwitchParameter
Valor predeterminado:False
Admite caracteres comodín:False
DontShow:False
Alias:Wi

Conjuntos de parámetros

(All)
Posición:Named
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

CommonParameters

Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.

Entradas

PSSession

Puede canalizar objetos de sesión, como los devueltos por el cmdlet Get-PSSession, a este cmdlet.

Int32

Puede canalizar identificadores de sesión a este cmdlet.

Guid

Puede canalizar los identificadores de instancia de las sesiones de este cmdlet.

String

Puede canalizar los nombres de sesión a este cmdlet.

Salidas

System.Management.Automation.Job or PSObject

Este cmdlet devuelve los resultados de los comandos que se ejecutaron en la sesión desconectada, si existe. Si el valor o el valor predeterminado del parámetro OutTarget es Job, Receive-PSSession devuelve un objeto de trabajo. De lo contrario, devuelve objetos que representan los resultados de ese comando.

Notas

  • receive-PSSession obtiene resultados solo de las sesiones que se desconectaron. Solo las sesiones conectadas a equipos que ejecutan Windows PowerShell 3.0 o versiones posteriores solo se pueden desconectar y volver a conectar.

  • Si los comandos que se estaban ejecutando en la sesión desconectada no generaron resultados o si los resultados ya se devolvieron a otra sesión, receive-PSSession no genera ninguna salida.

  • El modo de almacenamiento en búfer de salida de una sesión determina cómo los comandos de la sesión administran la salida cuando se desconecta la sesión. Cuando el valor de la opción OutputBufferingMode de la sesión es Drop y el búfer de salida está lleno, el comando procede a eliminar la salida. receive-PSSession no puede recuperar esta salida. Para obtener más información sobre la opción de modo de almacenamiento en búfer de salida, consulte los temas de ayuda de los cmdlets New-PSSessionOption y New-PSTransportOption.

  • No se puede cambiar el valor de tiempo de espera de inactividad de un PSSession de cuando se conecta al psSession de o recibe resultados. El parámetro SessionOption de receive-PSSession toma un objeto SessionOption que tiene un valor IdleTimeout. Sin embargo, el IdleTimeout valor del objeto sessionOption de y el IdleTimeout valor de la variable $PSSessionOption se omiten cuando se conecta a un PSSession o recibe resultados.

    Puede establecer y cambiar el tiempo de espera de inactividad de un psSession de al crear el PSSession, mediante el New-PSSession o cmdlets invoke-Command y cuando se desconecta del PSSession.

    La propiedad IdleTimeout de un PSSession es fundamental para las sesiones desconectadas, ya que determina cuánto tiempo se mantiene una sesión desconectada en el equipo remoto. Las sesiones desconectadas se consideran inactivas desde el momento en que se desconectan, incluso si los comandos se ejecutan en la sesión desconectada.

  • Si inicia un trabajo de inicio en una sesión remota mediante el parámetro AsJob del cmdlet Invoke-Command, el objeto de trabajo se crea en la sesión actual, aunque el trabajo se ejecute en la sesión remota. Si desconecta la sesión remota, el objeto de trabajo de la sesión actual ahora está desconectado del trabajo. El objeto de trabajo todavía contiene los resultados devueltos a él, pero no recibe nuevos resultados del trabajo en la sesión desconectada.

    Si un cliente diferente se conecta a la sesión que contiene el trabajo en ejecución, los resultados que se entregaron al objeto de trabajo original en la sesión original no están disponibles en la sesión recién conectada. Solo los resultados que no se entregaron al objeto de trabajo original están disponibles en la sesión reconectada.

    Del mismo modo, si inicia un script en una sesión y, a continuación, se desconecta de la sesión, los resultados que el script entrega a la sesión antes de desconectar no están disponibles para otro cliente que se conecta a la sesión.

    Para evitar la pérdida de datos en sesiones que se van a desconectar, use el parámetro InDisconnectedSession del cmdlet Invoke-Command. Dado que este parámetro impide que los resultados se devuelvan a la sesión actual, todos los resultados están disponibles cuando se vuelve a conectar la sesión.

    También puede evitar la pérdida de datos mediante el cmdlet invoke-Command de para ejecutar un comando Start-Job en la sesión remota. En este caso, el objeto de trabajo se crea en la sesión remota. No puede usar el cmdlet Receive-PSSession para obtener los resultados del trabajo. En su lugar, use el cmdlet Connect-PSSession para conectarse a la sesión y, a continuación, use el cmdlet Invoke-Command para ejecutar un comando Receive-Job en la sesión.

  • Cuando se desconecta una sesión que contiene un trabajo en ejecución y, a continuación, se vuelve a conectar, el objeto de trabajo original solo se reutiliza si el trabajo está desconectado y se vuelve a conectar a la misma sesión, y el comando para volver a conectarse no especifica un nuevo nombre de trabajo. Si se vuelve a conectar la sesión a otra sesión de cliente o se especifica un nuevo nombre de trabajo, Windows PowerShell crea un nuevo objeto de trabajo para la nueva sesión.

  • Cuando se desconecta un PSSession, el estado de sesión es Desconectado y la disponibilidad es None.

    El valor de la propiedad Estado es relativo a la sesión actual. Por lo tanto, un valor de Disconnected significa que el psSession no está conectado a la sesión actual. Sin embargo, no significa que el psSession se desconecta de todas las sesiones. Puede estar conectado a otra sesión. Para determinar si puede conectarse o reconectarse a la sesión, utilice la propiedad Disponibilidad.

    Un valor de Disponibilidad de Ninguno indica que puede conectarse a la sesión. Un valor de Busy indica que no se puede conectar al de PSSession de porque está conectado a otra sesión.

    Para obtener más información sobre los valores de la propiedad state de de sesiones, vea RunspaceState Enumeration en MSDN Library.

    Para obtener más información sobre los valores de la propiedad availability de sesiones, vea RunspaceAvailability Enumeration.