Remove-Job
Löscht einen Windows PowerShell-Hintergrundauftrag.
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>]
Beschreibung
Mit dem Cmdlet "Remove-Job" werden Windows PowerShell-Hintergrundaufträge gelöscht, die mit Start-Job oder mit dem AsJob-Parameter eines Cmdlets gestartet wurden.
Sie können dieses Cmdlet verwenden, um alle Aufträge oder ausgewählte Aufträge anhand von Name, ID, Instanz-ID, Befehl oder Status oder durch das Übergeben eines Auftragsobjekts an Remove-Job zu löschen. Wenn kein Parameter oder keine Parameterwerte angegeben werden, hat "Remove-Job" keine Auswirkungen.
Beenden Sie Aufträge, die gerade ausgeführt werden, vor dem Löschen mit dem Cmdlet "Stop-Job". Wenn Sie versuchen, einen Auftrag zu löschen, der gerade ausgeführt wird, schlägt der Befehl fehl. Aufträge, die gerade ausgeführt werden, können mit dem Force-Parameter von Remove-Job gelöscht werden.
Hintergrundaufträge, die nicht gelöscht werden, verbleiben im globalen Auftragscache, bis Sie die Sitzung schließen, in der der Auftrag erstellt wurde.
Parameter
-Command <string[]>
Entfernt Aufträge, die die angegebenen Wörter im Befehl enthalten.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByPropertyName) |
Platzhalterzeichen akzeptieren? |
false |
-Force
Löscht den Auftrag, auch wenn der Status "Running" lautet. Ohne den Force-Parameter löscht Remove-Job keinen Auftrag, der gerade ausgeführt wird.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Id <Int32[]>
Löscht Hintergrundaufträge mit den angegebenen IDs.
Die ID ist eine ganze Zahl, die den Auftrag in der aktuellen Sitzung eindeutig identifiziert. Sie lässt sich leichter merken und eingeben als die Instanz-ID, ist jedoch nur in der aktuellen Sitzung eindeutig. Sie können eine oder mehrere IDs eingeben (durch Trennzeichen getrennt). Um die ID eines Auftrags zu suchen, geben Sie "Get-Job" ohne Parameter ein.
Erforderlich? |
true |
Position? |
1 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByPropertyName) |
Platzhalterzeichen akzeptieren? |
false |
-InstanceId <Guid[]>
Löscht Aufträge mit den angegebenen Instanz-IDs.
Eine Instanz-ID ist ein GUID, der den Auftrag auf dem Computer eindeutig identifiziert. Sie können die Instanz-ID eines Auftrags suchen, indem Sie Get-Job verwenden oder das Auftragsobjekt anzeigen.
Erforderlich? |
false |
Position? |
1 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByPropertyName) |
Platzhalterzeichen akzeptieren? |
false |
-Job <Job[]>
Gibt die zu löschenden Aufträge an. Geben Sie eine Variable mit den Aufträgen oder einen Befehl zum Abrufen der Aufträge ein. Sie können Aufträge auch mit einem Pipelineoperator an das Cmdlet "Remove-Job" senden.
Erforderlich? |
true |
Position? |
1 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByValue, ByPropertyName) |
Platzhalterzeichen akzeptieren? |
false |
-Name <string[]>
Löscht nur die Aufträge mit den angegebenen Anzeigenamen. Platzhalter sind zulässig.
Verwenden Sie den WhatIf-Parameter und den Confirm-Parameter, wenn Sie Aufträge anhand des Namens löschen, da die Eindeutigkeit des Anzeigenamens auch in der Sitzung nicht garantiert ist.
Erforderlich? |
false |
Position? |
1 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByPropertyName) |
Platzhalterzeichen akzeptieren? |
true |
-State <JobState>
Löscht nur Aufträge mit dem angegebenen Status. Gültige Werte sind "NotStarted", "Running", "Completed", "Stopped", "Failed" und "Blocked". Verwenden Sie den Force-Parameter, um Aufträge mit dem Status "Running" zu löschen.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
true (ByPropertyName) |
Platzhalterzeichen akzeptieren? |
false |
-Confirm
Fordert Sie vor der Ausführung des Befehls zur Bestätigung auf.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-WhatIf
Beschreibt die Auswirkungen einer Ausführung des Befehls, ohne den Befehl tatsächlich auszuführen.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
<CommonParameters>
Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.
Eingaben und Ausgaben
Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.
Eingaben |
System.Management.Automation.Job Sie können ein Auftragsobjekt über die Pipeline an Remove-Job übergeben. |
Ausgaben |
Keiner Dieses Cmdlet generiert keine Ausgabe. |
Beispiel 1
C:\PS>$batch = get-job -name BatchJob
C:\PS> $batch | remove-job
Beschreibung
-----------
Mit diesen Befehlen wird der Hintergrundauftrag BatchJob aus der aktuellen Sitzung entfernt. Im ersten Befehl wird mit dem Cmdlet "Get-Job" ein Objekt abgerufen, das den Auftrag darstellt, und anschließend in der Variablen "$batch" gespeichert. Im zweiten Befehl wird der Auftrag mit dem Pipelineoperator (|) an das Cmdlet "Remove-Job" gesendet.
Dieser Befehl entspricht der Verwendung des Job-Parameters von Remove-Job, beispielsweise "remove-job -job $batch".
Beispiel 2
C:\PS>get-job | remove-job
Beschreibung
-----------
Mit diesem Befehl werden alle Aufträge aus der aktuellen Sitzung entfernt.
Beispiel 3
C:\PS>remove-job -state NotStarted
Beschreibung
-----------
Mit diesem Befehl werden alle Aufträge aus der aktuellen Sitzung entfernt, die noch nicht gestartet wurden.
Beispiel 4
C:\PS>remove-job -name *batch -force
Beschreibung
-----------
Mit diesem Befehl werden alle Aufträge einschließlich Aufträgen, die gerade ausgeführt werden, aus der aktuellen Sitzung entfernt, deren Anzeigename mit "batch" endet.
Dabei wird mit dem Name-Parameter von Remove-Job ein Muster für den Auftragsnamen angegeben, und mit dem Force-Parameter wird sichergestellt, dass alle Aufträge entfernt werden, auch wenn diese gerade ausgeführt werden.
Beispiel 5
C:\PS>$j = invoke-command -computername Server01 -scriptblock {get-process} -asJob
C:\PS> $j | remove-job
Beschreibung
-----------
In diesem Beispiel wird gezeigt, wie mit dem Cmdlet "Remove-Job" ein Auftrag entfernt wird, der mit dem AsJob-Parameter des Cmdlet "Invoke-Command" auf einem Remotecomputer gestartet wurde.
Im ersten Befehl wird mit dem Cmdlet "Invoke-Command" auf dem Computer "Server01" ein Auftrag ausgeführt. Der Befehl wird mit dem AsJob-Parameter als Hintergrundauftrag ausgeführt, und das resultierende Auftragsobjekt wird in der Variablen "$j" gespeichert.
Da der AsJob-Parameter vom Befehl verwendet wurde, wird das Auftragsobjekt auf dem lokalen Computer erstellt, obwohl der Auftrag auf einem Remotecomputer ausgeführt wird. Der Auftrag wird daher mit lokalen Befehlen verwaltet.
Im zweiten Befehl wird der Auftrag mit dem Cmdlet "Remove-Job" entfernt. Der Auftrag in $j wird mit einem Pipelineoperator (|) an Remove-Job gesendet. Beachten Sie, dass dies ein lokaler Befehl ist. Aufträge, die mit dem AsJob-Parameter gestartet wurden, können ohne Remotebefehl entfernt werden.
Beispiel 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}
Beschreibung
-----------
In diesem Beispiel wird gezeigt, wie ein Auftrag entfernt wird, der mit Invoke-Command gestartet wurde, um einen Start-Job-Befehl auszuführen. In diesem Fall wird das Auftragsobjekt auf dem Remotecomputer erstellt, und der Auftrag wird daher mit Remotebefehlen verwaltet.
Im ersten Befehl wird mit dem Cmdlet "New-PSSession" eine PSSession (eine dauerhafte Verbindung) mit dem Computer "Server01" erstellt. Eine dauerhafte Verbindung ist erforderlich, um den Befehl "Start-Job" remote auszuführen. Der Befehl speichert die PSSession in der Variablen "$s".
Im zweiten Befehl wird der Befehl "Start-Job" in der PSSession in $s mit dem Cmdlet "Invoke-Command" ausgeführt. Der Auftrag führt einen Get-Process-Befehl aus. Ein Anzeigename für den Auftrag wird mit dem Name-Parameter von Start-Job angegeben.
Im dritten Befehl wird der Befehl "Remove-Job" in der PSSession in $s mit dem Cmdlet "Invoke-Command" ausgeführt. Im Befehl wird der Auftrag, der gelöscht werden soll, mit dem Name-Parameter von Remove-Job identifiziert.
Beispiel 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
Beschreibung
-----------
In diesem Beispiel wird gezeigt, wie ein Auftrag auf Grundlage der Instanz-ID entfernt wird.
Im ersten Befehl wird mit dem Cmdlet "Start-Job" ein Hintergrundauftrag gestartet. Mit dem Befehl wird das resultierende Auftragsobjekt in der Variablen "$j" gespeichert.
Mit dem zweiten Befehl wird das Auftragsobjekt in $j mit einem Pipelineoperator (|) an einen Format-List-Befehl gesendet. Im Befehl "Format-List" werden mit dem Property-Parameter mit dem Wert * (alle) alle Eigenschaften des Auftragsobjekts in einer Liste angezeigt.
In der Anzeige des Auftragsobjekts werden die Werte der ID-Eigenschaft und der InstanceID-Eigenschaft zusammen mit den anderen Eigenschaften des Objekts angezeigt.
Im dritten Befehl wird der Auftrag mit einem Remove-Job-Befehl aus der aktuellen Sitzung entfernt. Um den Befehl zu generieren, können Sie den InstanceID-Wert aus der Objektanzeige kopieren und einfügen.
Um einen Wert in der Windows PowerShell-Konsole zu kopieren, wählen Sie den Wert mit der Maus aus, und drücken Sie die EINGABETASTE, um den Wert zu kopieren. Klicken Sie mit der rechten Maustaste, um den Wert einzufügen.
Siehe auch
Konzepte
about_Jobs
about_Job_Details
about_Remote_Jobs
Start-Job
Get-Job
Receive-Job
Wait-Job
Stop-Job
Invoke-Command