Remove-Job
Löscht einen PowerShell-Hintergrundauftrag.
Syntax
SessionIdParameterSet (Standardwert)
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>]
Beschreibung
Das cmdlet Remove-Job löscht PowerShell-Hintergrundaufträge, die vom Cmdlet Start-Job oder von Cmdlets wie Invoke-Command gestartet wurden, die den parameter AsJob unterstützen.
Sie können Remove-Job verwenden, um alle Aufträge zu löschen oder ausgewählte Aufträge zu löschen. Die Aufträge werden durch ihre Name, ID, InstanceId, Commandoder Stateidentifiziert. Oder ein Job-Objekt kann in der Pipeline an Remove-Job gesendet werden. Ohne Parameter oder Parameterwerte hat Remove-Job keine Auswirkung.
Seit PowerShell 3.0 können Remove-Job benutzerdefinierte Auftragstypen löschen, z. B. geplante Aufträge und Workflowaufträge. Beispielsweise löscht Remove-Job den geplanten Auftrag, alle Instanzen des geplanten Auftrags auf dem Datenträger und die Ergebnisse aller ausgelösten Auftragsinstanzen.
Wenn Sie versuchen, einen ausgeführten Auftrag zu löschen, schlägt Remove-Job fehl. Verwenden Sie das Cmdlet Stop-Job, um einen ausgeführten Auftrag zu beenden. Oder verwenden Sie Remove-Job mit dem Parameter Force, um einen ausgeführten Auftrag zu löschen.
Aufträge verbleiben im globalen Auftragscache, bis Sie den Hintergrundauftrag löschen oder die PowerShell-Sitzung schließen.
Beispiele
Beispiel 1: Löschen eines Jobs mit Hilfe seines Namens
In diesem Beispiel werden eine Variable und die Pipeline verwendet, um einen Job anhand des Namens zu löschen.
$batch = Get-Job -Name BatchJob
$batch | Remove-Job
Get-Job verwendet den Parameter Name, um den Auftrag anzugeben, BatchJob. Das Auftragsobjekt wird in der variablen $batch gespeichert. Das Objekt in $batch wird durch die Pipeline zu Remove-Jobweitergeleitet.
Eine Alternative besteht darin, den Parameter Job zu verwenden, z. B. Remove-Job -Job $batch.
Beispiel 2: Alle Aufträge in einer Sitzung löschen
In diesem Beispiel werden alle Aufträge in der aktuellen PowerShell-Sitzung gelöscht.
Get-Job | Remove-Job
Get-Job ruft alle Jobs in der aktuellen PowerShell Sitzung ab. Die Job-Objekte werden in der Pipeline an Remove-Job gesendet.
Beispiel 3: Löschen von NotStarted-Aufträgen
In diesem Beispiel werden alle Aufträge aus der aktuellen PowerShell-Sitzung gelöscht, die noch nicht gestartet wurden.
Remove-Job -State NotStarted
Remove-Job verwendet den Parameter State, um den Auftragsstatus anzugeben.
Beispiel 4: Löschen von Jobs mithilfe eines freundlichen Namens
In diesem Beispiel werden alle Jobs der aktuellen Sitzung mit Anzeigenamen, die auf batch enden, gelöscht, einschließlich der Jobs, die gerade ausgeführt werden.
Remove-Job -Name *batch -Force
Remove-Job verwendet den Parameter Name, um ein Auftragsnamenmuster anzugeben. Das Muster enthält den Platzhalter Stern (*), um alle Job-Namen zu finden, die mit Batch enden. Der Parameter Force löscht Jobs, die ausgeführt werden.
Beispiel 5: Löschen eines Auftrags, der von Invoke-Command erstellt wurde
In diesem Beispiel wird ein Job entfernt, der auf einem Remotecomputer mit Invoke-Command und dem Parameter AsJob gestartet wurde.
Da im Beispiel der parameter AsJob verwendet wird, wird das Auftragsobjekt auf dem lokalen Computer erstellt. Der Auftrag wird jedoch auf einem Remotecomputer ausgeführt. Daher verwenden Sie lokale Befehle, um den Auftrag zu verwalten.
$job = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Process} -AsJob
$job | Remove-Job
Invoke-Command führt einen Job auf dem Computer Server01 aus. Der parameter AsJob führt den ScriptBlock als Hintergrundauftrag aus. Das Auftragsobjekt wird in der variablen $job gespeichert. Das Variablenobjekt $job wird an Remove-Jobweitergeleitet.
Beispiel 6: Löschen eines Auftrags, der von Invoke-Command und Start-Job erstellt wurde
Dieses Beispiel zeigt, wie Sie einen Job auf einem Remote-Computer entfernen, der mit Invoke-Command gestartet wurde, um Start-Job auszuführen. Das Auftragsobjekt wird auf dem Remotecomputer erstellt, und Remotebefehle werden zum Verwalten des Auftrags verwendet. Beim Ausführen eines Remote-Start-Job-Befehls ist eine dauerhafte Verbindung erforderlich.
$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 erstellt eine PSSession, eine dauerhafte Verbindung, zum Computer Server01. Die Verbindung wird in der variablen $S gespeichert.
Invoke-Command stellt eine Verbindung zu der in $Sgespeicherten Sitzung her. Der ScriptBlock verwendet Start-Job, um einen remoten Job zu starten. Der Auftrag führt einen Get-Process Befehl aus und verwendet den Parameter Name, um einen freundlichen Auftragsnamen anzugeben: MyJob.
Invoke-Command verwendet die Sitzung $S und führt Remove-Job aus. Der Parameter Name gibt an, dass der Job mit dem Namen MeinJob gelöscht wird.
Beispiel 7: Löschen eines Jobs anhand seiner InstanceId
In diesem Beispiel wird ein Job auf der Grundlage seiner InstanceId entfernt.
$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 startet einen Hintergrundauftrag, und das Auftragsobjekt wird in der variablen $job gespeichert.
Das Objekt in $job wird durch die Pipeline zu Format-Listweitergeleitet. Der parameter Property verwendet ein Sternchen (*), um anzugeben, dass alle Eigenschaften des Objekts in einer Liste angezeigt werden.
Remove-Job verwendet den parameter InstanceId, um den zu löschenden Auftrag anzugeben.
Parameter
-Command
Löscht Aufträge, die die angegebenen Wörter im Befehl enthalten. Sie können ein durch Trennzeichen getrenntes Array eingeben.
Parametereigenschaften
| Typ: | String[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
CommandParameterSet
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-Confirm
Fordert Sie zur Bestätigung auf, bevor Remove-Job ausgeführt wird.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | vgl |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Filter
Löscht Aufträge, die alle in der zugehörigen Hashtabelle festgelegten Bedingungen erfüllen. Geben Sie eine Hashtabelle ein, in der die Schlüssel Auftragseigenschaften und die Werte Werte der Auftragseigenschaften sind.
Dieser Parameter funktioniert nur für benutzerdefinierte Auftragstypen, z. B. Workflowaufträge und geplante Aufträge. Es funktioniert nicht für Standard-Hintergrundaufträge, wie die, die mit dem Start-Joberstellt wurden.
Dieser Parameter wird in PowerShell 3.0 eingeführt.
Parametereigenschaften
| Typ: | Hashtable |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
FilterParameterSet
| Position: | 0 |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-Force
Löscht einen Job, auch wenn der Status des Jobs Ausgeführt ist. Wenn der Parameter Force nicht angegeben ist, löscht Remove-Job keine ausgeführten Aufträge.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | F |
Parametersätze
SessionIdParameterSet
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
JobParameterSet
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
InstanceIdParameterSet
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
NameParameterSet
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
FilterParameterSet
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Id
Löscht Hintergrundaufträge mit der angegebenen ID. Sie können ein durch Kommas getrenntes Array eingeben. Die -Id des Jobs ist eine eindeutige ganze Zahl, die einen Job innerhalb der aktuellen Sitzung identifiziert.
Um die -IDeines Auftrags zu finden, verwenden Sie Get-Job ohne Parameter.
Parametereigenschaften
| Typ: | Int32[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
SessionIdParameterSet
| Position: | 0 |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-InstanceId
Löscht Aufträge mit der angegebenen Instanz-ID . Sie können ein durch Trennzeichen getrenntes Array eingeben. Eine InstanceId ist eine eindeutige GUID, die einen Job identifiziert.
Um die InstanceId eines Jobs zu finden, verwenden Sie Get-Job.
Parametereigenschaften
| Typ: | Guid[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
InstanceIdParameterSet
| Position: | 0 |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-Job
Gibt die zu löschenden Aufträge an. Geben Sie eine Variable ein, die entweder die Aufträge oder einen Befehl enthält, durch den die Aufträge abgerufen werden. Sie können ein durch Trennzeichen getrenntes Array eingeben.
Sie können Auftragsobjekte durch die Pipeline an Remove-Jobsenden.
Parametereigenschaften
| Typ: | Job[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
JobParameterSet
| Position: | 0 |
| Obligatorisch.: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-Name
Löscht nur Jobs mit dem angegebenen Anzeigenamen. Wildcards sind zulässig. Sie können ein durch Trennzeichen getrenntes Array eingeben.
Benutzerfreundliche Namen für Aufträge sind nicht garantiert eindeutig, auch innerhalb einer PowerShell-Sitzung. Verwenden Sie die Parameter WhatIf und Confirm, wenn Sie Dateien nach Namen löschen.
Parametereigenschaften
| Typ: | String[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | True |
| Nicht anzeigen: | False |
Parametersätze
NameParameterSet
| Position: | 0 |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-State
Löscht nur Aufträge mit dem angegebenen Status. Um Aufträge mit dem Status Runningzu löschen, verwenden Sie den Parameter Force.
Akzeptierte Werte:
- AtBreakpoint
- Gesperrt
- Abgeschlossen
- Getrennt
- gescheitert
- Nicht gestartet
- Laufen
- Angehalten
- Anhalten
- Suspendiert
- Anhalten
Parametereigenschaften
| Typ: | JobState |
| Standardwert: | None |
| Zulässige Werte: | AtBreakpoint, Blocked, Completed, Disconnected, Failed, NotStarted, Running, Stopped, Stopping, Suspended, Suspending |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
StateParameterSet
| Position: | 0 |
| Obligatorisch.: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-WhatIf
Zeigt, was passiert, wenn Remove-Job ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Wi |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch.: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
Job
Sie können diesem Cmdlet ein -Objekt über die Pipeline übergeben.
Ausgaben
None
Dieses Cmdlet gibt keine Ausgabe zurück.
Hinweise
PowerShell enthält die folgenden Aliase für Remove-Job:
- Alle Plattformen:
rjb
Ein PowerShell-Auftrag erstellt einen neuen Prozess. Wenn der Job abgeschlossen ist, wird der Prozess beendet. Wenn Remove-Job ausgeführt wird, wird der Status des Jobs entfernt.
Wenn ein Job vor der Vervollständigung anhält und sein Prozess noch nicht beendet wurde, wird der Prozess zwangsweise beendet.