Remove-Job (Microsoft.PowerShell.Core)
Remove-Job
- Módulo:
- Microsoft.PowerShell.Core
Elimina un trabajo en segundo plano de PowerShell.
Sintaxis
Remove-Job
[-Force]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]Remove-Job
[-Job] <Job[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]Remove-Job
[-Force]
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]Remove-Job
[-Force]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]Remove-Job
[-Force]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]Remove-Job
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]Remove-Job
[-Command <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]Descripción
El cmdlet Remove-Job elimina los trabajos en segundo plano de PowerShell que fueron iniciados por el cmdlet Start-Job o por cmdlets como Invoke-Command que admiten el Parámetro ComoTrabajo.
Puede utilizar Remove-Job para eliminar todos los trabajos o eliminar los trabajos seleccionados. Los trabajos se identifican por su Nombre, ID, ID de instancia, Comando o Estado. fuerte>. O bien, se puede enviar un objeto de trabajo a Remove-Job. Sin parámetros o valores de parámetros, Remove-Job no tiene ningún efecto.
Desde PowerShell 3.0, Remove-Job puede eliminar tipos de trabajos personalizados, como trabajos programados y trabajos de flujo de trabajo. Por ejemplo, Remove-Job elimina el trabajo programado, todas las instancias del trabajo programado en el disco y los resultados de todas las instancias del trabajo activado.
Si intenta eliminar un trabajo en ejecución, Remove-Job falla. Utilice el cmdlet Stop-Job para detener un trabajo en ejecución. O utilice Remove-Job con el parámetro Force para eliminar un trabajo en ejecución.
Los trabajos permanecen en la caché de trabajos global hasta que elimine el trabajo en segundo plano o cierre la sesión de PowerShell.
Ejemplos
Ejemplo 1: Eliminar un trabajo usando su nombre
Este ejemplo utiliza una variable y la canalización para eliminar un trabajo por nombre.
$batch = Get-Job -Name BatchJob
$batch | Remove-JobGet-Job utiliza el parámetro Name para especificar el trabajo, BatchJob. El objeto de trabajo se almacena en la variable $batch. El objeto en $batch se envía por el proceso a Remove-Job.
Una alternativa es utilizar el parámetro Trabajo, como Remove-Job -Job $batch.
Ejemplo 2: eliminar todos los trabajos en una sesión
En este ejemplo, se eliminan todos los trabajos de la sesión actual de PowerShell.
Get-job | Remove-JobGet-Job obtiene todos los trabajos en la sesión actual de PowerShell. Los objetos de trabajo se envían por el canal a Remove-Job.
Ejemplo 3: eliminar trabajos no iniciados
Este ejemplo elimina todos los trabajos de la sesión actual de PowerShell que no se han iniciado.
Remove-Job -State NotStartedRemove-Job utiliza el parámetro State para especificar el estado del trabajo.
Ejemplo 4: Eliminar trabajos usando un nombre descriptivo
Este ejemplo elimina todos los trabajos de la sesión actual con nombres descriptivos que terminan en batch*, incluidos los trabajos que se están ejecutando.
Remove-Job -Name *batch -ForceRemove-Job utiliza el parámetro Name para especificar un patrón de nombre de trabajo. El patrón incluye el comodín asterisco (*) para buscar todos los nombres de trabajos que terminan en batch. El parámetro Force elimina los trabajos que se están ejecutando.
Ejemplo 5: eliminar un trabajo creado por Invoke-Command
Este ejemplo elimina un trabajo que se inició en una computadora remota usando Invoke-Command con el parámetro AsJob.
Debido a que el ejemplo utiliza el parámetro AsJob, el objeto de trabajo se crea en la computadora local. Pero el trabajo se ejecuta en una computadora remota. Como resultado, utiliza comandos locales para administrar el trabajo.
$job = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Process} -AsJob
$job | Remove-JobInvoke-Command ejecuta un trabajo en la computadora Server01. El parámetro AsJob ejecuta ScriptBlock como trabajo en segundo plano. El objeto de trabajo se almacena en la variable $job. El objeto variable $job se envía por el canal a Remove-Job.
Ejemplo 6: Eliminar un trabajo creado por Invoke-Command e Start-Job
Este ejemplo muestra cómo eliminar un trabajo en una computadora remota que se inició usando Invoke-Command para ejecutar Start-Job. El objeto de trabajo se crea en la computadora remota y se utilizan comandos remotos para administrar el trabajo. Se requiere una conexión persistente cuando se ejecuta un comando Start-Job remoto.
$S = New-PSSession -ComputerName Server01
Invoke-Command -Session $S -ScriptBlock {Start-Job -ScriptBlock {Get-Process} -Name MyJob}
Invoke-Command -Session $S -ScriptBlock {Remove-Job -Name MyJob}New-PSSession crea una PSSession, una conexión persistente, al ordenador Server01. La conexión se guarda en la variable $S.
Invoke-Command se conecta a la sesión guardada en $S. El ScriptBlock usa Start-Job para iniciar un trabajo remoto. El trabajo ejecuta un comando Get-Process y utiliza el parámetro Name para especificar un nombre descriptivo del trabajo, MyJob.
Invoke-Command usa la sesión $S y ejecuta Remove-Job. El parámetro Name especifica que se elimina el trabajo denominado MyJob.
Ejemplo 7: eliminar un trabajo utilizando su InstanceId
Este ejemplo elimina un trabajo según su InstanceId.
$job = Start-Job -ScriptBlock {Get-Process PowerShell}
$job | Format-List -Property *
Remove-Job -InstanceId ad02b942-8007-4407-87f3-d23e71955872
State : Completed
HasMoreData : True
StatusMessage :
Location : localhost
Command : Get-Process PowerShell
JobStateInfo : Completed
Finished : System.Threading.ManualResetEvent
InstanceId : ad02b942-8007-4407-87f3-d23e71955872
Id : 3
Name : Job3
ChildJobs : {Job4}
PSBeginTime : 7/26/2019 11:36:56
PSEndTime : 7/26/2019 11:36:57
PSJobTypeName : BackgroundJob
Output : {}
Error : {}
Progress : {}
Verbose : {}
Debug : {}
Warning : {}
Information : {}Start-Job inicia un trabajo en segundo plano y el objeto del trabajo se guarda en la variable $job.
El objeto en $job se envía por el proceso a Format-List. El parámetro Property utiliza un asterisco (*) para especificar que todas las propiedades del objeto se muestran en una lista.
Remove-Job utiliza el parámetro InstanceId para especificar el trabajo que se eliminará.
Parámetros
-Command
Elimina trabajos que incluyen las palabras especificadas en el comando. Puede ingresar una matriz separada por comas.
- Tipo :
String[]
- Posición:
Nombrado
- Valor predeterminado:
None
- Requerido:
False
- Aceptar entrada de canalización:
True
- Aceptar caracteres comodín:
False
-Confirm
Le solicita confirmación antes de ejecutar Remove-Job.
- Tipo :
SwitchParameter
- Alias:
cf
- Posición:
Nombrado
- Valor predeterminado:
False
- Requerido:
False
- Aceptar entrada de canalización:
False
- Aceptar caracteres comodín:
False
-Filter
Elimina trabajos que cumplen todas las condiciones establecidas en la tabla hash asociada. Ingrese una tabla hash donde las claves son propiedades del trabajo y los valores son valores de propiedades del trabajo.
Este parámetro solo funciona en tipos de trabajos personalizados, como trabajos de flujo de trabajo y trabajos programados. No funciona en trabajos en segundo plano estándar, como los creados mediante Start-Job.
Este parámetro se introduce en PowerShell 3.0.
- Tipo :
tabla hash
- Posición:
0
- Valor predeterminado:
None
- Requerido:
True
- Aceptar entrada de canalización:
True
- Aceptar caracteres comodín:
False
-Force
Elimina un trabajo incluso si el estado del trabajo es En ejecución. Si no se especifica el parámetro Force, Remove-Job no elimina los trabajos en ejecución.
- Tipo :
SwitchParameter
- Alias:
F
- Posición:
Nombrado
- Valor predeterminado:
False
- Requerido:
False
- Aceptar entrada de canalización:
False
- Aceptar caracteres comodín:
False
-Id
Elimina trabajos en segundo plano con el Id especificado. Puede ingresar una matriz separada por comas. El Id del trabajo es un número entero único que identifica un trabajo dentro de la sesión actual.
Para encontrar el Id de un trabajo, utilice Get-Job sin parámetros.
- Tipo :
Int32[]
- Posición:
0
- Valor predeterminado:
None
- Requerido:
True
- Aceptar entrada de canalización:
True
- Aceptar caracteres comodín:
False
-InstanceId
Elimina trabajos con el InstanceId especificado. Puede ingresar una matriz separada por comas. Un InstanceId es un GUID único que identifica un trabajo.
Para encontrar el InstanceId de un trabajo, utilice Get-Job.
- Tipo :
Guía[]
- Posición:
0
- Valor predeterminado:
None
- Requerido:
True
- Aceptar entrada de canalización:
True
- Aceptar caracteres comodín:
False
-Job
Especifica los trabajos que se eliminarán. Introduzca una variable que contenga los trabajos o un comando que obtenga los trabajos. Puede ingresar una matriz separada por comas.
Puede enviar objetos de trabajo a Remove-Job.
- Tipo :
Trabajo[]
- Posición:
0
- Valor predeterminado:
None
- Requerido:
True
- Aceptar entrada de canalización:
True
- Aceptar caracteres comodín:
False
-Name
Solo elimina trabajos con el nombre descriptivo especificado. Se permiten comodines. Puede ingresar una matriz separada por comas.
No se garantiza que los nombres descriptivos de los trabajos sean únicos, incluso dentro de una sesión de PowerShell. Utilice los parámetros WhatIf y Confirmar cuando elimine archivos por nombre.
- Tipo :
String[]
- Posición:
0
- Valor predeterminado:
None
- Requerido:
True
- Aceptar entrada de canalización:
True
- Aceptar caracteres comodín:
True
-State
Solo elimina trabajos con el estado especificado. Para eliminar trabajos con un estado de En ejecución, utilice el parámetro Force.
Valores aceptados:
- AtBreakpoint
- Obstruido
- Terminado
- Desconectado
- Fallido
- NotStarted
- Correr
- Interrumpido
- Parada
- Suspendido
- Suspendiendo
- Tipo :
JobState
- Valores aceptados:
En punto de interrupción, bloqueado, completado, desconectado, fallido, no iniciado, en ejecución, detenido, deteniéndose, suspendido, suspendiendo
- Posición:
0
- Valor predeterminado:
None
- Requerido:
True
- Aceptar entrada de canalización:
True
- Aceptar caracteres comodín:
False
-WhatIf
Muestra lo que sucedería si se ejecuta Remove-Job. El cmdlet no se ejecuta.
- Tipo :
SwitchParameter
- Alias:
wi
- Posición:
Nombrado
- Valor predeterminado:
False
- Requerido:
False
- Aceptar entrada de canalización:
False
- Aceptar caracteres comodín:
False
Entradas
Trabajo
Puede canalizar un objeto Job a este cmdlet.
Salidas
Ninguno
Este cmdlet no devuelve ningún resultado.
Notas
PowerShell incluye los siguientes alias para Remove-Job:
Todas las plataformas:
rjb
Un trabajo de PowerShell crea un nuevo proceso. Cuando se completa el trabajo, el proceso sale. Cuando se ejecuta Remove-Job, se elimina el estado del trabajo.
Si un trabajo se detiene antes de completarse y su proceso no ha finalizado, el proceso finaliza a la fuerza.