Remove-Job

Delete a PowerShell background job.

Syntax
      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]

Key
   -Command string[]
       Remove jobs that include the specified words in the command.

   -Force
       Delete the job even if the status is "Running".
       Without -Force, Remove-Job will not delete a running job.

   -Id Int32[]
       Delete background jobs with the specified IDs. 

       The ID is an integer that uniquely identifies the job within the current session.
       It is easier to remember and to type than the instance ID, but it is unique only
       within the current session. You can type one or more IDs (separated by commas).
       To find the ID of a job, type "Get-Job" without parameters.

   -InstanceId Guid[]
       Delete jobs with the specified instance IDs.

       An instance ID is a GUID that uniquely identifies the job on the computer.
       To find the instance ID of a job, use Get-Job.

   -Job Job[]
       The the jobs to be deleted.
       Enter a variable that contains the job or a command that gets the job.
       You can also pipe a job object to Receive-Job.

   -Name string[]
       Delete only the jobs with the specified friendly names.
       Wildcards are permitted.
       Because the friendly name is not guaranteed to be unique, even within
       the session, use -WhatIf and -Confirm parameters when deleting jobs by name.
       
   -State JobState
       Delete only jobs with the specified status.
       Valid values are NotStarted, Running, Completed, Stopped, Failed, and Blocked.
       To delete jobs with a status of Running, use -Force.

   -Confirm
       Prompt for confirmation before executing the command.

   -WhatIf
        Describe what would happen if the command was executed without actually executing the command.

   CommonParameters:
       -Verbose, -Debug,r -ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable,
       -OutBuffer -OutVariable.

Standard Aliases for Remove-Job: rjb

Remove-Job deletes PowerShell background jobs that were started by using Start-Job or the -AsJob parameter of any cmdlet.

When a PowerShell background job is started, the results do not appear immediately. Instead, the command returns an object representing the background job. The job object contains useful information about the job, but it does not contain the results.

To get the results of the command, use Receive-Job. Receive-Job gets the results that have been generated by the time that the Receive-Job command is submitted. If the results are not yet complete, you can run additional Receive-Job commands to get the remaining results.

By default, job results are deleted from the system when you receive them, the -Keep parameter can use used to save the results. To delete the job results, receive them again (without -Keep), close the session, or use Remove-Job to delete the job from the session.

Examples

Delete a background job named BatchJob from the current session:

PS C:\> $batch = get-job -name BatchJob
PS C:\> $batch | remove-job

Delete all jobs in the current session:

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

Delete all jobs from the current session that have not yet been started:

PS C:\> remove-job -state NotStarted

Remove a job that was started on a remote computer with Invoke-Command -AsJob:

PS C:\> $j = invoke-command -computername Server64 -scriptblock {get-process} -asJob
PS C:\> $j | remove-job

Remove a job that was started by using Invoke-Command to run a Start-Job command:

PS C:\> $sess = new-pssession -computername Server64
PS C:\> invoke-command -session $sess -scriptblock {start-job -scriptblock {get-process} -name MyJob}
PS C:\> invoke-command -session $sess -scriptblock {remove-job -name MyJob}

Find the instance ID of a job :

PS C:\> $myjob = start-job -script {get-process powershell}
PS C:\> $myjob | format-list -property *

“The beautiful thing about learning is nobody can take it away from you” ~ B. B. King

Related:

Get-Job - Get PowerShell background jobs that are running
Invoke-Command - Run command


© Copyright SS64.com 1999-2013
Some rights reserved