Remove-Job
Tar bort ett PowerShell-bakgrundsjobb.
Syntax
SessionIdParameterSet (Standard)
Remove-Job
[-Id] <Int32[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
JobParameterSet
Remove-Job
[-Job] <Job[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
NameParameterSet
Remove-Job
[-Name] <String[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
InstanceIdParameterSet
Remove-Job
[-InstanceId] <Guid[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
FilterParameterSet
Remove-Job
[-Filter] <Hashtable>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
StateParameterSet
Remove-Job
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
CommandParameterSet
Remove-Job
[-Command <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Cmdleten Remove-Job tar bort PowerShell-bakgrundsjobb som startades av cmdleten Start-Job eller cmdletar som Invoke-Command som stöder parametern AsJob.
Du kan använda Remove-Job för att ta bort alla jobb eller ta bort markerade jobb. Jobben identifieras med deras Name, ID, InstanceId, Commandeller State. Eller så kan ett jobbobjekt skickas ned i pipelinen till Remove-Job. Utan parametrar eller parametervärden har Remove-Job ingen effekt.
Eftersom PowerShell 3.0 kan Remove-Job ta bort anpassade jobbtyper, till exempel schemalagda jobb och arbetsflödesjobb. Till exempel tar Remove-Job bort det schemalagda jobbet, alla instanser av det schemalagda jobbet på disken och resultatet av alla utlösta jobbinstanser.
Om du försöker ta bort ett jobb som körs misslyckas Remove-Job. Använd cmdleten Stop-Job för att stoppa ett jobb som körs. Du kan också använda Remove-Job med parametern Force för att ta bort ett jobb som körs.
Jobben finns kvar i det globala jobbcachen tills du tar bort bakgrundsjobbet eller stänger PowerShell-sessionen.
Exempel
Exempel 1: Ta bort ett jobb med dess namn
I det här exemplet används en variabel och pipelinen för att ta bort ett jobb med namn.
$batch = Get-Job -Name BatchJob
$batch | Remove-Job
Get-Job använder parametern Name för att ange jobbet BatchJob. Jobbobjektet lagras i variabeln $batch. Objektet i $batch skickas ned i pipelinen till Remove-Job.
Ett alternativ är att använda parametern Job, till exempel Remove-Job -Job $batch.
Exempel 2: Ta bort alla jobb i en session
I det här exemplet tas alla jobb i den aktuella PowerShell-sessionen bort.
Get-Job | Remove-Job
Get-Job får alla jobb i den aktuella PowerShell-sessionen. Jobbobjekten skickas ned i pipeline till Remove-Job.
Exempel 3: Ta bort jobb som inte startats
I det här exemplet tas alla jobb bort från den aktuella PowerShell-sessionen som inte har startats.
Remove-Job -State NotStarted
Remove-Job använder parametern State för att ange jobbstatus.
Exempel 4: Ta bort jobb med hjälp av ett vänligt namn
Det här exemplet tar bort alla jobb från den aktuella sessionen med vänliga namn som slutar med batch, inklusive jobb som körs.
Remove-Job -Name *batch -Force
Remove-Job använder parametern Name för att ange ett jobbnamnsmönster. Mönstret innehåller jokertecknet asterisk (*) för att hitta alla jobbnamn som slutar med batch. Parametern Force tar bort jobb som för närvarande körs.
Exempel 5: Ta bort ett jobb som skapades av Invoke-Command
Det här exemplet tar bort ett jobb som startades på en fjärrdator med hjälp av Invoke-Command med parametern AsJob.
Eftersom exemplet använder parametern AsJob skapas jobbobjektet på den lokala datorn. Men jobbet körs på en fjärrdator. Därför använder du lokala kommandon för att hantera jobbet.
$job = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Process} -AsJob
$job | Remove-Job
Invoke-Command kör ett jobb på datorn Server01. Parametern AsJob kör ScriptBlock- som ett bakgrundsjobb. Jobbobjektet lagras i variabeln $job. Variabelobjektet $job skickas genom pipelinen till Remove-Job.
Exempel 6: Ta bort ett jobb som skapades av Invoke-Command och Start-Job
Det här exemplet visar hur du tar bort ett jobb på en fjärrdator som startades med hjälp av Invoke-Command för att köra Start-Job. Jobbobjektet skapas på fjärrdatorn och fjärrkommandon används för att hantera jobbet. En beständig anslutning krävs när du kör ett fjärrkommando för Start-Job.
$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 skapar en PSSession, en beständig anslutning, till datorn Server01. Anslutningen sparas i variabeln $S.
Invoke-Command ansluter till sessionen som sparats i $S.
ScriptBlock använder Start-Job för att starta ett fjärrjobb. Jobbet kör ett Get-Process-kommando och använder parametern Name för att ange ett jobbnamn, MyJob.
Invoke-Command använder $S-sessionen och kör Remove-Job. Parametern Name anger att jobbet med namnet MyJob tas bort.
Exempel 7: Ta bort ett jobb med dess InstanceId
Det här exemplet tar bort ett jobb baserat på dess 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 startar ett bakgrundsjobb och jobbobjektet sparas i variabeln $job.
Objektet i $job skickas ned i pipelinen till Format-List. Parametern Property använder en asterisk (*) för att ange att alla objektets egenskaper visas i en lista.
Remove-Job använder parametern InstanceId för att ange jobbet som ska tas bort.
Parametrar
-Command
Tar bort jobb som innehåller de angivna orden i kommandot . Du kan ange en kommaavgränsad matris.
Parameteregenskaper
| Typ: | String[] |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
CommandParameterSet
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | True |
| Värde från återstående argument: | False |
-Confirm
Uppmanar dig att bekräfta innan Remove-Job körs.
Parameteregenskaper
| Typ: | SwitchParameter |
| Standardvärde: | False |
| Stöder jokertecken: | False |
| DontShow: | False |
| Alias: | jfr |
Parameteruppsättningar
(All)
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
-Filter
Tar bort jobb som uppfyller alla villkor som har upprättats i den associerade hashtabellen. Ange en hash-tabell där nycklarna är jobbegenskaper och värdena är jobbegenskapsvärden.
Den här parametern fungerar bara på anpassade jobbtyper, till exempel arbetsflödesjobb och schemalagda jobb. Det fungerar inte på standardbakgrundsjobb, till exempel de som skapas med hjälp av Start-Job.
Den här parametern introduceras i PowerShell 3.0.
Parameteregenskaper
| Typ: | Hashtable |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
FilterParameterSet
| Position: | 0 |
| Obligatorisk: | True |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | True |
| Värde från återstående argument: | False |
-Force
Tar bort ett jobb även när jobbet är i tillståndet Körs. Om parametern Force inte anges tar Remove-Job inte bort jobb som körs.
Parameteregenskaper
| Typ: | SwitchParameter |
| Standardvärde: | False |
| Stöder jokertecken: | False |
| DontShow: | False |
| Alias: | F |
Parameteruppsättningar
SessionIdParameterSet
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
JobParameterSet
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
InstanceIdParameterSet
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
NameParameterSet
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
FilterParameterSet
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
-Id
Tar bort bakgrundsjobb med angivet -ID. Du kan ange en kommaavgränsad matris. Jobbets -ID är ett unikt heltal som identifierar ett jobb i den aktuella sessionen.
Om du vill hitta ett jobbs -IDanvänder du Get-Job utan parametrar.
Parameteregenskaper
| Typ: | Int32[] |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
SessionIdParameterSet
| Position: | 0 |
| Obligatorisk: | True |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | True |
| Värde från återstående argument: | False |
-InstanceId
Tar bort jobb med angiven InstanceId. Du kan ange en kommaavgränsad matris. Ett InstanceId är ett unikt GUID som identifierar ett jobb.
Om du vill hitta ett jobbs InstanceIdanvänder du Get-Job.
Parameteregenskaper
| Typ: | Guid[] |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
InstanceIdParameterSet
| Position: | 0 |
| Obligatorisk: | True |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | True |
| Värde från återstående argument: | False |
-Job
Anger vilka jobb som ska tas bort. Ange en variabel som innehåller jobben eller ett kommando som hämtar jobben. Du kan ange en kommaavgränsad matris.
Du kan skicka jobbobjekt genom pipelinen till Remove-Job.
Parameteregenskaper
| Typ: | Job[] |
| Standardvärde: | None |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
JobParameterSet
| Position: | 0 |
| Obligatorisk: | True |
| Värde från pipeline: | True |
| Värde från pipeline efter egenskapsnamn: | True |
| Värde från återstående argument: | False |
-Name
Tar bort endast jobb med det angivna beskrivande namnet. Jokertecken tillåts. Du kan ange en kommaavgränsad matris.
Vänliga namn för jobb är inte garanterade att vara unika, inte ens i en PowerShell-session. Använd parametrarna WhatIf och Confirm när du tar bort filer med namn.
Parameteregenskaper
| Typ: | String[] |
| Standardvärde: | None |
| Stöder jokertecken: | True |
| DontShow: | False |
Parameteruppsättningar
NameParameterSet
| Position: | 0 |
| Obligatorisk: | True |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | True |
| Värde från återstående argument: | False |
-State
Tar endast bort jobb med det angivna statuset. Om du vill ta bort jobb med tillståndet Körsanvänder du parametern Force.
Godkända värden:
- AtBreakpoint
- Blockerad
- Slutfört
- Bortkopplad
- Misslyckades
- Ej påbörjad
- Springa
- Stoppade
- Stoppa
- Avstängd
- Avstängning
Parameteregenskaper
| Typ: | JobState |
| Standardvärde: | None |
| Godkända värden: | AtBreakpoint, Blocked, Completed, Disconnected, Failed, NotStarted, Running, Stopped, Stopping, Suspended, Suspending |
| Stöder jokertecken: | False |
| DontShow: | False |
Parameteruppsättningar
StateParameterSet
| Position: | 0 |
| Obligatorisk: | True |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | True |
| Värde från återstående argument: | False |
-WhatIf
Visar vad som skulle hända om Remove-Job kördes. Cmdleten körs inte.
Parameteregenskaper
| Typ: | SwitchParameter |
| Standardvärde: | False |
| Stöder jokertecken: | False |
| DontShow: | False |
| Alias: | Wi |
Parameteruppsättningar
(All)
| Position: | Named |
| Obligatorisk: | False |
| Värde från pipeline: | False |
| Värde från pipeline efter egenskapsnamn: | False |
| Värde från återstående argument: | False |
CommonParameters
Den här cmdleten stöder vanliga parametrar: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction och -WarningVariable. Mer information finns i about_CommonParameters.
Indata
Job
Du kan skicka ett Job-objekt till den här cmdleten.
Utdata
None
Den här cmdleten returnerar inga utdata.
Kommentarer
PowerShell innehåller följande alias för Remove-Job:
- Alla plattformar:
rjb
Ett PowerShell-jobb skapar en ny process. När jobbet är klart avslutas processen. När Remove-Job körs, tas jobbtillståndet bort.
Om ett jobb stoppas före slutförandet och dess process inte har avslutats, tvingas processen avslutas.