Remove-Job
Löscht einen PowerShell-Hintergrundauftrag.
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>]
Beschreibung
Das Remove-Job Cmdlet löscht PowerShell-Hintergrundaufträge, die Start-Job vom Cmdlet oder von Cmdlets gestartet wurden, z Invoke-Command . B. die den AsJob-Parameter unterstützen.
Sie können verwenden Remove-Job , um alle Aufträge zu löschen oder ausgewählte Aufträge zu löschen. Die Aufträge werden anhand des Namens, der ID, der Instanzid, des Befehls oder des Zustands identifiziert. Oder ein Auftragsobjekt kann an die Pipeline gesendet werden.Remove-Job Ohne Parameter oder Parameterwerte Remove-Job hat keine Auswirkung.
Seit PowerShell 3.0 Remove-Job können benutzerdefinierte Auftragstypen wie geplante Aufträge und Workflowaufträge gelöscht werden. Löscht z. B 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, Remove-Job schlägt ein Fehler fehl. Verwenden Sie das Stop-Job Cmdlet, um einen ausgeführten Auftrag zu beenden. Oder verwenden Sie Remove-Job den 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 Auftrags mithilfe seines Namens
In diesem Beispiel wird eine Variable und die Pipeline verwendet, um einen Auftrag anhand des Namens zu löschen.
$batch = Get-Job -Name BatchJob
$batch | Remove-Job
Get-Job verwendet den Parameter Name , um den Auftrag " BatchJob" anzugeben. Das Auftragsobjekt wird in der variablen $batch gespeichert. Das Objekt in $batch wird an die Pipeline gesendet an Remove-Job.
Eine Alternative besteht darin, den Job-Parameter zu verwenden, z Remove-Job -Job $batch. B. .
Beispiel 2: Löschen aller Aufträge in einer Sitzung
In diesem Beispiel werden alle Aufträge in der aktuellen PowerShell-Sitzung gelöscht.
Get-Job | Remove-Job
Get-Job ruft alle Aufträge in der aktuellen PowerShell-Sitzung ab. Die Auftragsobjekte werden an die Pipeline gesendet.Remove-Job
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 Aufträgen mithilfe eines Anzeigenamens
In diesem Beispiel werden alle Aufträge aus der aktuellen Sitzung mit Anzeigenamen gelöscht, die mit batch* enden, einschließlich aufträgen, die ausgeführt werden.
Remove-Job -Name *batch -Force
Remove-Job verwendet den Parameter Name , um ein Auftragsnamenmuster anzugeben. Das Muster enthält das Sternchen (*) zum Auffinden aller Auftragsnamen, die mit dem Batch enden. Der Parameter Force löscht Aufträge, die ausgeführt werden.
Beispiel 5: Löschen eines Auftrags, der von Invoke-Command erstellt wurde
In diesem Beispiel wird ein Auftrag entfernt, der mit dem AsJob-Parameter auf einem Remotecomputer Invoke-Command 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 Auftrag auf dem Server01-Computer aus. Der Parameter "AsJob" führt den ScriptBlock als Hintergrundauftrag aus. Das Auftragsobjekt wird in der variablen $job gespeichert. Das $job Variable-Objekt wird an die Pipeline gesendet.Remove-Job
Beispiel 6: Löschen eines Auftrags, der von Invoke-Command und Start-Job erstellt wurde
In diesem Beispiel wird gezeigt, wie Sie einen Auftrag auf einem Remotecomputer entfernen, der mit Invoke-Command der Ausführung Start-Jobgestartet wurde. Das Auftragsobjekt wird auf dem Remotecomputer erstellt, und Remotebefehle werden zum Verwalten des Auftrags verwendet. Beim Ausführen eines Remotebefehls Start-Job 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, mit dem Server01-Computer . Die Verbindung wird in der $S Variablen gespeichert.
Invoke-Command stellt eine Verbindung mit der in der Sitzung gespeicherten Sitzung bereit $S.
Der ScriptBlock verwendetStart-Job, um einen Remoteauftrag zu starten. Der Auftrag führt einen Get-Process Befehl aus und verwendet den Parameter Name , um einen Anzeigeauftragsnamen , MyJob, anzugeben.
Invoke-Command verwendet die $S Sitzung und wird ausgeführt Remove-Job. Der Parameter Name gibt an, dass der Auftrag mit dem Namen "MyJob" gelöscht wird.
Beispiel 7: Löschen eines Auftrags mithilfe seiner InstanceId
In diesem Beispiel wird ein Auftrag basierend auf 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 $job Variablen gespeichert.
Das Objekt in $job wird an die Pipeline gesendet an Format-List. 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 sie ausgeführt wird.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Cf |
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 Bedingungen erfüllen, die in der zugehörigen Hashtabelle erstellt wurden. Geben Sie eine Hashtabelle ein, in der die Schlüssel Auftragseigenschaften und die Werte Auftragseigenschaftswerte 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, z. B. für solche, die mithilfe der Start-Job
Dieser Parameter wird in Windows 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 Auftrag, auch wenn der Status des Auftrags ausgeführt wird. Wenn der Parameter Force nicht angegeben ist, Remove-Job werden ausgeführte Aufträge nicht gelöscht.
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 Trennzeichen getrenntes Array eingeben. Die ID des Auftrags ist eine eindeutige ganze Zahl, die einen Auftrag innerhalb der aktuellen Sitzung identifiziert.
Um die ID eines 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 InstanceId. Sie können ein durch Trennzeichen getrenntes Array eingeben. Eine InstanceId ist eine eindeutige GUID, die einen Auftrag identifiziert.
Um die InstanceId eines Auftrags 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 die Aufträge enthält, oder einen Befehl, der die Aufträge abruft. Sie können ein durch Trennzeichen getrenntes Array eingeben.
Sie können Auftragsobjekte an die Pipeline senden.Remove-Job
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 Aufträge mit dem angegebenen Anzeigenamen. Wildcards sind zulässig. Sie können ein durch Trennzeichen getrenntes Array eingeben.
Anzeigenamen für Aufträge sind nicht garantiert eindeutig, auch innerhalb einer PowerShell-Sitzung. Verwenden Sie die Parameter WhatIf und Confirm , wenn Sie Dateien anhand des Namens 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 Zustand. Verwenden Sie den Parameter Force, um Aufträge mit dem Status "Ausführen" zu löschen.
Zulässige Werte:
- AtBreakpoint
- Blocked
- Abgeschlossen
- Verbindung unterbrochen
- 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 ein Job-Objekt an dieses Cmdlet weiterleiten.
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. Nach Abschluss des Auftrags wird der Prozess beendet. Wenn Remove-Job der Auftrag ausgeführt wird, wird der Status des Auftrags entfernt.
Wenn ein Auftrag vor abschluss beendet wird und sein Prozess nicht beendet wurde, wird der Prozess forcibly beendet.