Elimina un trabajo en segundo plano de Windows PowerShell.
Sintaxis
Remove-Job [-Id] <Int32[]> [-Force] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-Job [-Command <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-Job [[-InstanceId] <Guid[]>] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-Job [-Job] <Job[]> [-Force] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-Job [[-Name] <string[]>] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-Job [-State {<NotStarted> | <Running> | <Completed> | <Failed> | <Stopped> | <Blocked>}] [-Confirm] [-WhatIf] [<CommonParameters>]
Descripción
El cmdlet Remove-Job elimina los trabajos en segundo plano de Windows PowerShell que se iniciaron utilizando Start-Job o el parámetro AsJob de cualquier cmdlet.
Este cmdlet se puede utilizar para eliminar todos los trabajos, o para eliminar trabajos seleccionándolos por su nombre, identificador, identificador de instancia, comando o estado, o bien pasando un objeto de trabajo a Remove-Job. Sin parámetros ni valores de parámetro, Remove-Job no surte ningún efecto.
Antes de eliminar un trabajo en ejecución, debe utilizarse el cmdlet Stop-Job para detenerlo. Si intenta eliminar un trabajo en ejecución, se produce un error en el comando. Puede utilizar el parámetro Force de Remove-Job para eliminar un trabajo en ejecución.
Si no elimina un trabajo en segundo plano, el trabajo permanece en la memoria caché global de trabajos hasta cerrar la sesión en la que se creó el trabajo.
Parámetros
-Command <string[]>
Quita trabajos que incluyen las palabras especificadas en el comando.
¿Requerido? |
false |
¿Posición? |
named |
Valor predeterminado |
|
¿Aceptar canalización? |
true (ByPropertyName) |
¿Aceptar caracteres comodín? |
false |
-Force
Elimina el trabajo aunque el estado sea "Running". Sin el parámetro Force, Remove-Job no eliminará un trabajo en ejecución.
¿Requerido? |
false |
¿Posición? |
named |
Valor predeterminado |
|
¿Aceptar canalización? |
false |
¿Aceptar caracteres comodín? |
false |
-Id <Int32[]>
Elimina los trabajos en segundo plano con los identificadores especificados.
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 el identificador de instancia, 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[]>
Elimina trabajos con los identificadores de instancia especificados.
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 o se muestra el objeto de trabajo.
¿Requerido? |
false |
¿Posición? |
1 |
Valor predeterminado |
|
¿Aceptar canalización? |
true (ByPropertyName) |
¿Aceptar caracteres comodín? |
false |
-Job <Job[]>
Especifica los trabajos que se van a eliminar. Escriba una variable que contenga los trabajos o un comando que los obtenga. También se puede utilizar un operador de canalización para enviar trabajos al cmdlet Remove-Job.
¿Requerido? |
true |
¿Posición? |
1 |
Valor predeterminado |
|
¿Aceptar canalización? |
true (ByValue, ByPropertyName) |
¿Aceptar caracteres comodín? |
false |
-Name <string[]>
Elimina solamente los trabajos con los nombres simples especificados. Se permite el uso de caracteres comodín.
Dado que no se garantiza que el nombre simple sea único, incluso dentro de la sesión, utilice los parámetros WhatIf y Confirm al eliminar trabajos por nombre.
¿Requerido? |
false |
¿Posición? |
1 |
Valor predeterminado |
|
¿Aceptar canalización? |
true (ByPropertyName) |
¿Aceptar caracteres comodín? |
true |
-State <JobState>
Elimina solamente trabajos con el estado especificado. Los valores válidos son NotStarted, Running, Completed, Stopped, Failed y Blocked. Para eliminar trabajos con el estado Running, utilice el parámetro Force.
¿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.Job Puede canalizar un objeto de trabajo a Remove-Job. |
Salidas |
Ninguno Este cmdlet no genera resultados. |
Ejemplo 1
C:\PS>$batch = get-job -name BatchJob C:\PS> $batch | remove-job Descripción ----------- Estos comandos eliminan un trabajo en segundo plano denominado BatchJob de la sesión actual. El primer comando utiliza el cmdlet Get-Job para obtener un objeto que representa el trabajo y, a continuación, lo guarda en la variable $batch. El segundo comando usa un operador de canalización (|) para enviar el trabajo al cmdlet Remove-Job. Este comando es equivalente a utilizar el parámetro Job de Remove-Job, por ejemplo, "remove-job -job $batch".
Ejemplo 2
C:\PS>get-job | remove-job Descripción ----------- Este comando elimina todos los trabajos de la sesión actual.
Ejemplo 3
C:\PS>remove-job -state NotStarted Descripción ----------- Este comando elimina todos los trabajos de la sesión actual que no se han iniciado todavía.
Ejemplo 4
C:\PS>remove-job -name *batch -force Descripción ----------- Este comando elimina todos los trabajos con nombres simples que terminan en "batch" de la sesión actual, incluidos los trabajos que se están ejecutando. Utiliza el parámetro Name de Remove-Job para especificar un patrón de nombre de trabajo y utiliza el parámetro Force para asegurarse de que se quitan todos los trabajos, incluidos los que puedan estar en curso.
Ejemplo 5
C:\PS>$j = invoke-command -computername Server01 -scriptblock {get-process} -asJob C:\PS> $j | remove-job Descripción ----------- En este ejemplo se muestra la forma de utilizar el cmdlet Remove-Job para quitar un trabajo que se inició en un equipo remoto utilizando el parámetro AsJob del cmdlet Invoke-Command. El primer comando utiliza el cmdlet Invoke-Command para ejecutar un trabajo en el equipo Server01. Utiliza el parámetro AsJob para ejecutar el comando como trabajo en segundo plano y guarda el objeto de trabajo resultante en la variable $j. Dado que el comando utilizó el parámetro AsJob, el objeto de trabajo se crea en el equipo local, aunque el trabajo se ejecute en un equipo remoto. Como consecuencia, se utilizan comandos locales para administrar el trabajo. El segundo comando usa el cmdlet Remove-Job para quitar el trabajo. Utiliza un operador de canalización (|) para enviar el trabajo en $j a Remove-Job. Observe que se trata de un comando local. No se requiere un comando remoto para quitar un trabajo que se inició utilizando el parámetro AsJob.
Ejemplo 6
C:\PS>$s = new-pssession -computername Server01 C:\PS> invoke-command -session $s -scriptblock {start-job -scriptblock {get-process} -name MyJob} C:\PS> invoke-command -session $s -scriptblock {remove-job -name MyJob} Descripción ----------- En este ejemplo se muestra la forma de quitar un trabajo que se inició utilizando Invoke-Command para ejecutar un comando Start-Job. En este caso, el objeto de trabajo se crea en el equipo remoto y se utilizan comandos remotos para administrar el trabajo. El primer comando utiliza el cmdlet New-PSSession para crear una PSSession (una conexión persistente) en el equipo Server01. Se requiere una conexión persistente al ejecutar un comando Start-Job de forma remota. El comando guarda la PSSession en la variable $s. El segundo comando usa el cmdlet Invoke-Command para ejecutar un comando Start-Job en la PSSession en $s. El trabajo ejecuta un comando Get-Process. Utiliza el parámetro Name de Start-Job para especificar un nombre simple para el nuevo trabajo. El tercer comando usa el cmdlet Invoke-Command para ejecutar un comando Remove-Job en la PSSession contenida en $s. El comando utiliza el parámetro Name de Remove-Job para identificar el trabajo que se ha de eliminar.
Ejemplo 7
C:\PS>$j = start-job -script {get-process powershell} C:\PS> $j | format-list -property * C:\PS> remove-job -instanceID dce2ee73-f8c9-483e-bdd7-a549d8687eed C:\PS> $j = start-job -script {get-process powershell} C:\PS> $j | format-list -property * HasMoreData : False StatusMessage : Location : localhost Command : get-process powershell JobStateInfo : Failed Finished : System.Threading.ManualResetEvent InstanceId : dce2ee73-f8c9-483e-bdd7-a549d8687eed Id : 1 Name : Job1 ChildJobs : {Job2} Output : {} Error : {} Progress : {} Verbose : {} Debug : {} Warning : {} StateChanged : C:\PS> remove-job -instanceID dce2ee73-f8c9-483e-bdd7-a549d8687eed Descripción ----------- En este ejemplo se muestra la forma de quitar un trabajo según su identificador de instancia. El primer comando utiliza el cmdlet Start-Job para iniciar un trabajo en segundo plano. El comando guarda el objeto de trabajo resultante en la variable $j. El segundo comando usa un operador de canalización (|) para enviar el objeto de trabajo en $j a un comando Format-List. El comando Format-List usa el parámetro Property con el valor * (todo) para mostrar todas las propiedades del objeto de trabajo en una lista. La presentación del objeto de trabajo muestra los valores de las propiedades ID e InstanceID, junto con las demás propiedades del objeto. El tercer comando usa un comando Remove-Job para quitar el trabajo de la sesión actual. Para generar el comando, se puede copiar y pegar el valor de InstanceID de la presentación del objeto. Para copiar un valor en la consola de Windows PowerShell, utilice el mouse para seleccionar el valor y, a continuación, presione Entrar para copiarlo. Para pegar un valor, haga clic con el botón secundario.
Vea también