Professional Documents
Culture Documents
about_Remote_Jobs
DESCRIPCIN BREVE
Describe cmo se ejecutan los trabajos en segundo plano en equipos remotos.
DESCRIPCIN DETALLADA
Un trabajo en segundo plano es un comando que se ejecuta
asincrnicamente sin interactuar con la sesin actual. El smbolo
del sistema vuelve inmediatamente y se puede continuar usando la
sesin mientras se ejecuta el trabajo.
De forma predeterminada, los trabajos en segundo plano se
ejecutan en el equipo local. No obstante, se pueden usar varios
procedimientos para ejecutar trabajos en segundo plano en equipos
remotos.
En este tema se explica cmo se ejecuta un trabajo en segundo
plano en un equipo remoto. Para obtener informacin sobre cmo se
ejecutan los trabajos en segundo plano en un equipo local, vea
about_Jobs. Para obtener ms informacin sobre los trabajos en
segundo plano, vea about_Job_Details.
TRABAJOS EN SEGUNDO PLANO REMOTOS
Existen tres mtodos para ejecutar trabajos en segundo plano en
equipos remotos.
-- Puede iniciar una sesin interactiva con un equipo remoto e
iniciar un trabajo en la sesin interactiva. Los procedimientos
son los mismos que para la ejecucin de un trabajo local, si bien
todas las acciones se realizan en el equipo remoto.
-- Puede ejecutar un trabajo en segundo plano en un equipo remoto
que devuelve los resultados al equipo local. Utilice este
mtodo si desea recopilar los resultados de los trabajos en
segundo plano y mantenerlos en una ubicacin central en el
equipo local.
-- Puede ejecutar un trabajo en segundo plano en un equipo remoto
que mantiene los resultados en el equipo remoto. Utilice este
mtodo cuando los datos de los trabajos se mantienen con mayor
seguridad en el equipo que los origin.
INICIAR UN TRABAJO EN SEGUNDO PLANO EN UNA SESIN INTERACTIVA
Puede iniciar una sesin interactiva con un equipo remoto y, a
continuacin, iniciar un trabajo en segundo plano durante la
sesin interactiva. Para obtener ms informacin sobre las
sesiones interactivas, vea about_Remote y Enter-PSSession.
El procedimiento para iniciar un trabajo en segundo plano durante
una sesin interactiva es casi idntico al procedimiento para
iniciar un trabajo en segundo plano en un equipo local. Sin
embargo, todas las operaciones se llevan a cabo en el equipo
remoto y no en el equipo local.
PASO 1: ENTER-PSSESSION
PASO 3: GET-JOB
Para comprobar si se ha completado el trabajo, debe mostrar el
valor de la variable $job o utilizar el cmdlet Get-Job para
obtener el trabajo. El comando siguiente usa el cmdlet Get-Job
para mostrar el trabajo.
Servidor01\C:> get-job $job
SessionId Name State
--------- ---- ----1
Job1 Complete
ws PowerShell"
HasMoreData Location
Command
----------- -------- ------True
localhost get-eventlog "Windo
PASO 4: RECEIVE-JOB
Para obtener los resultados del trabajo, use el cmdlet
Receive-Job. Puede mostrar los resultados en la sesin
interactiva o guardarlos en un archivo ubicado en el equipo
remoto. El comando siguiente obtiene los resultados del trabajo
en la variable $job. El comando utiliza el operador de
redireccin (>) para guardar los resultados del trabajo en el
archivo PsLog.txt ubicado en el equipo Servidor01.
Servidor01\C:> receive-job $job > c:\logs\PsLog.txt
PASO 5: EXIT-PSSESSION
Para finalizar la sesin interactiva, utilice el cmdlet
Exit-PSSession. El smbolo del sistema cambia para indicar que
est de nuevo en la sesin original en el equipo local.
Servidor01\C:> Exit-PSSession
C:\PS>
INICIAR UN TRABAJO REMOTO QUE DEVUELVE LOS RESULTADOS AL EQUIPO LOCAL (ASJOB)
Para iniciar un trabajo en segundo plano en un equipo remoto que
devuelve los resultados de los comandos al equipo local, utilice
el parmetro AsJob de un cmdlet, como el cmdlet Invoke-Command.
Cuando se utiliza el parmetro AsJob, el objeto de trabajo se
crea en el equipo local, aunque el trabajo se ejecute en el
equipo remoto. Cuando se completa el trabajo, se devuelven los
resultados al equipo local.
Name
---Job1
State
----Running
HasMoreData
----------True
Location
Command
-------------Servidor01 get-eventlog s
ystem
Cuando se utiliza el parmetro AsJob, Invoke-Command devuelve el
mismo tipo de objeto que Start-Job. Puede guardar el objeto de
trabajo en una variable o utilizar un comando Get-Job para
obtener el trabajo.
Observe que el valor de la propiedad Location indica que el
trabajo se ejecut en el equipo Servidor01.
PASO 2: GET-JOB
Para administrar un trabajo que se inici mediante el parmetro
AsJob del cmdlet Invoke-Command, utilice los cmdlet Job. Dado que
el objeto de trabajo que representa el trabajo remoto est en el
equipo local, no es necesario ejecutar comandos remotos para
administrar el trabajo.
Para determinar si el trabajo se ha completado, utilice un
comando Get-Job. El comando siguiente obtiene todos los trabajos
que se iniciaron en la sesin actual.
get-job
Dado que el trabajo remoto se inici en la sesin actual, un
comando Get-Job local obtiene el trabajo. La propiedad State del
objeto de trabajo indica que el comando se ejecut correctamente.
SessionId
--------1
tem
Name
---Job1
State
HasMoreData
--------------Completed True
Location Command
-------- ------Servidor01 get-eventlog sys
PASO 3: RECEIVE-JOB
Para obtener los resultados del trabajo, use el cmdlet
Receive-Job. Dado que los resultados del trabajo se devuelven
automticamente al equipo donde reside el objeto de trabajo,
puede obtener los resultados mediante un comando Receive-Job local.
El comando siguiente utiliza el cmdlet Receive-Job para obtener
los resultados del trabajo. Utiliza el identificador de sesin
para identificar el trabajo. Este comando guarda los resultados
del trabajo en la variable $results. Asimismo, puede redirigir
los resultados a un archivo.
$results = receive-job -id 1
Name
---Job2
State
----Running
HasMoreData
----------True
Location Command
-------- ------Localhost get-eventlog syste
m
Cuando se ejecuta de forma remota un comando Start-Job,
Invoke-Command devuelve el mismo tipo de objeto de trabajo que
Start-Job. Puede guardar el objeto de trabajo en una variable o
utilizar un comando Get-Job para obtener el trabajo.
Observe que el valor de la propiedad Location indica que el
trabajo se ejecut en el equipo local, denominado "LocalHost",
aunque el trabajo se ejecut en el equipo Servidor01. Dado que el
objeto de trabajo se crea en el equipo Servidor01 y el trabajo se
ejecuta en el mismo equipo, se considera que se trata de un
trabajo en segundo plano local.
PASO 2: INVOKE-COMMAND GET-JOB
Para administrar un trabajo en segundo plano remoto, utilice los
cmdlets Job. Dado que el objeto de trabajo est en el equipo
remoto, deber ejecutar comandos remotos para obtener, detener,
aguardar o recuperar los resultados del trabajo.
Para comprobar si se ha completado el trabajo, utilice un comando
Invoke-Command para ejecutar un comando Get-Job en la PSSession
conectada al equipo Servidor01.
invoke-command -session $s -scriptblock {get-job}
El comando devuelve un objeto de trabajo. La propiedad State del
objeto de trabajo indica que el comando se ejecut correctamente.
SessionId
--------2
g system
Name
---Job2
State
HasMoreData
--------------Completed True
Location Command
-------- ------LocalHost get-eventlo