Detiene un trabajo en segundo plano de Windows PowerShell.

Sintaxis

Stop-Job [[-InstanceId] <Guid[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Job [-Job] <Job[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Job [[-Name] <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Job [-Id] <Int32[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Stop-Job [-State {<NotStarted> | <Running> | <Completed> | <Failed> | <Stopped> | <Blocked>}] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]

Descripción

El cmdlet Stop-Job detiene los trabajos en segundo plano de Windows PowerShell que están en curso. Puede utilizar este cmdlet para detener todos los trabajos o detener trabajos seleccionándolos por su nombre, identificador, identificador de instancia o estado, o pasando un objeto de trabajo a Stop-Job.

Puede utilizar Stop-Job para detener los trabajos que se iniciaron utilizando Start-Job o el parámetro AsJob de Invoke-Command. Cuando se detiene un trabajo en segundo plano, Windows PowerShell completa todas las tareas pendientes en la cola de ese trabajo y, a continuación, lo finaliza. Una vez enviado este comando, no se agregan nuevas tareas a la cola.

Este cmdlet no elimina trabajos en segundo plano. Para eliminar un trabajo, se utiliza Remove-Job.

Parámetros

-Id <Int32[]>

Detiene trabajos con los identificadores especificados. El valor predeterminado son todos los trabajos de la sesión actual.

El identificador es un entero que identifica de forma única el trabajo en la sesión actual. Es más fácil de recordar y escribir que InstanceId, pero es único solamente en la sesión actual. Puede escribir uno o varios identificadores (separados por comas). Para buscar el identificador de un trabajo, se escribe "Get-Job" sin parámetros.

¿Requerido?

true

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-InstanceId <Guid[]>

Detiene solamente trabajos con los identificadores de instancia especificados. El valor predeterminado son todos los trabajos.

Un identificador de instancia es un GUID que identifica de forma única el trabajo en el equipo. Para buscar el identificador de instancia de un trabajo, se utiliza Get-Job.

¿Requerido?

false

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-Job <Job[]>

Especifica los trabajos que se han de detener. Escriba una variable que contenga los trabajos o un comando que los obtenga. También puede utilizar un operador de canalización para enviar trabajos al cmdlet Stop-Job. De forma predeterminada, Stop-Job elimina todos los trabajos que se iniciaron en la sesión actual.

¿Requerido?

true

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

true (ByValue, ByPropertyName)

¿Aceptar caracteres comodín?

false

-Name <string[]>

Detiene solamente los trabajos con los nombres simples especificados. Escriba los nombres de trabajo en una lista separada por comas o use caracteres comodín (*) para escribir un patrón de nombre de trabajo. De forma predeterminada, Stop-Job detiene todos los trabajos creados en la sesión actual.

Como no se garantiza que el nombre simple sea único, utilice los parámetros WhatIf y Confirm al detener trabajos por nombre.

¿Requerido?

false

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

true

-PassThru

Devuelve un objeto que representa el nuevo trabajo en segundo plano. De forma predeterminada, este cmdlet no genera resultados.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-State <JobState>

Detiene solamente trabajos contenidos en el estado especificado. Los valores válidos son NotStarted, Running, Completed, Stopped, Failed y Blocked.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

true (ByPropertyName)

¿Aceptar caracteres comodín?

false

-Confirm

Solicita confirmación antes de ejecutar el comando.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-WhatIf

Describe lo que ocurriría si se ejecutara el comando, sin ejecutarlo realmente.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

<CommonParameters>

Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.

Entradas y salidas

El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.

Entradas

System.Management.Automation.RemotingJob

Se puede canalizar un objeto de trabajo a Stop-Job.

Salidas

Ninguno o System.Management.Automation.RemotingJob

Cuando se usa el parámetro PassThru, Stop-Job devuelve un objeto de trabajo. En caso contrario, este cmdlet no genera resultados.

Ejemplo 1

C:\PS>$s = new-pssession -computername Server01 -credential domain01\admin02

C:\PS> $j = invoke-command -session $s -scriptblock {start-job -scriptblock {get-eventlog system}} 

C:\PS> invoke-command -session $s -scriptblock {param($j) stop-job -job $j} -ArgumentList $j

Descripción
-----------
En este ejemplo se muestra la forma de utilizar el cmdlet Stop-Job para detener un trabajo que se está ejecutando en un equipo remoto. 

Dado que el trabajo se inició utilizando Invoke-Command para ejecutar un comando Start-Job de forma remota, el objeto de trabajo se almacena en el equipo remoto y se debe utilizar otro comando Invoke-Command para ejecutar un comando Stop-Job de forma remota. Para obtener más información sobre trabajos en segundo plano remotos, vea about_Remote_Jobs.

El primer comando crea una sesión de Windows PowerShell (PSSession) en el equipo Server01 y guarda el objeto de sesión en la variable $s. El comando utiliza las credenciales de un administrador de dominio. 

El segundo comando usa el cmdlet Invoke-Command para ejecutar un comando Start-Job en la sesión. El comando del trabajo obtiene todos los eventos del registro de eventos del sistema. El objeto de trabajo resultante se almacena en la variable $j. 

El tercer comando detiene el trabajo. Utiliza el cmdlet Invoke-Command para ejecutar un comando Stop-Job en la PSSession en Server01. Dado que los objetos de trabajo se almacenan en $j, que es una variable en el equipo local, el comando utiliza la palabra clave "param" para declarar las variables locales en el comando y el parámetro ArgumentList para proporcionar valores a las variables. 

Cuando el comando se completa, el trabajo se detiene y la PSSession en $s está disponible para su uso.






Ejemplo 2

C:\PS>stop-job -state failed

Descripción
-----------
Este comando detiene todos los trabajos cuyo valor de State sea "Failed".






Ejemplo 3

C:\PS>stop-job -name job1

Descripción
-----------
Este comando detiene el trabajo en segundo plano Job1.






Ejemplo 4

C:\PS>stop-job -id 1, 3, 4

Descripción
-----------
Este comando detiene tres trabajos. Los identifica por sus identificadores.






Ejemplo 5

C:\PS>get-job | stop-job

Descripción
-----------
Este comando detiene todos los trabajos en segundo plano en la sesión actual.






Ejemplo 6

C:\PS>stop-job -state blocked

Descripción
-----------
Este comando detiene todos los trabajos cuyo estado de trabajo sea "Blocked".






Ejemplo 7

C:\PS>get-job | format-table ID, Name, Command, @{Label="State";Expression={$_.jobstateinfo.state}}, I
nstanceID -auto

Id Name Command                 State  InstanceId
-- ---- -------                 -----  ----------
 1 Job1 start-service schedule Running 05abb67a-2932-4bd5-b331-c0254b8d9146
 3 Job3 start-service schedule Running c03cbd45-19f3-4558-ba94-ebe41b68ad03
 5 Job5 get-service s*         Blocked e3bbfed1-9c53-401a-a2c3-a8db34336adf

C:\PS> stop-job -instanceid e3bbfed1-9c53-401a-a2c3-a8db34336adf

Descripción
-----------
Estos comandos muestran la forma de detener un trabajo según su identificador de instancia. 

El primer comando utiliza un comando Get-Job para obtener los trabajos en la sesión actual. El comando utiliza un operador de canalización (|) para enviar los trabajos a un comando Format-Table, que muestra una tabla de las propiedades especificadas de cada trabajo. La tabla incluye el identificador de instancia de cada trabajo. Utiliza una propiedad calculada para mostrar el estado del trabajo.

El segundo comando usa un comando Stop-Job con el parámetro InstanceID para detener un trabajo seleccionado.






Ejemplo 8

C:\PS>$j = invoke-command -computername Server01 -scriptblock {get-eventlog system} -asjob

C:\PS> $j | stop-job -passthru

Id    Name    State      HasMoreData     Location         Command
--    ----    ----      -----------     --------          -------
5     Job5    Stopped    True            judithh-tablet   get-eventlog system

Descripción
-----------
En este ejemplo se muestra la forma de utilizar el cmdlet Stop-Job para detener un trabajo que se está ejecutando en un equipo remoto. 

Dado que el trabajo se inició utilizando el parámetro AsJob de Invoke-Command, el objeto de trabajo se encuentra en el equipo local, aunque el trabajo se ejecute en el equipo remoto. Por tanto, se puede utilizar un comando Stop-Job local para detener el trabajo.

El primer comando utiliza el cmdlet Invoke-Command para iniciar un trabajo en segundo plano en el equipo Server01. El comando utiliza el parámetro AsJob para ejecutar el comando remoto como un trabajo en segundo plano. 

Este comando devuelve un objeto de trabajo, que es el mismo objeto de trabajo que Start-Job devuelve. El comando guarda el objeto de trabajo en la variable $j.

El segundo comando usa un operador de canalización para enviar el trabajo contenido en la variable $j a Stop-Job. El comando utiliza el parámetro PassThru para indicar a Stop-Job que devuelva un objeto de trabajo. La presentación del objeto de trabajo confirma que el estado del trabajo es "Stopped".

Para obtener más información sobre trabajos en segundo plano remotos, vea about_Remote_Jobs.






Vea también




Tabla de contenido