Remove-Job
Hiermee verwijdert u een PowerShell-achtergrondtaak.
Syntax
Remove-Job
[-Id] <Int32[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Job] <Job[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Name] <String[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Filter] <Hashtable>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-InstanceId] <Guid[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Command <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
De Remove-Job
cmdlet verwijdert PowerShell-achtergrondtaken die zijn gestart door de Start-Job
cmdlet of door cmdlets zoals Invoke-Command
die ondersteuning bieden voor de parameter AsJob .
U kunt gebruiken Remove-Job
om alle taken of geselecteerde taken te verwijderen. De taken worden geïdentificeerd met hun naam, id, exemplaar-id, opdracht of status. Of een taakobject kan door de pijplijn worden verzonden naar Remove-Job
. Zonder parameters of parameterwaarden, Remove-Job
heeft geen effect.
Aangezien PowerShell 3.0 aangepaste Remove-Job
taaktypen kan verwijderen, zoals geplande taken en werkstroomtaken. Hiermee verwijdert u bijvoorbeeld Remove-Job
de geplande taak, alle exemplaren van de geplande taak op schijf en de resultaten van alle geactiveerde taakexemplaren.
Als u een actieve taak probeert te verwijderen, Remove-Job
mislukt. Gebruik de Stop-Job
cmdlet om een actieve taak te stoppen. Of gebruik Remove-Job
met de parameter Force om een actieve taak te verwijderen.
Taken blijven in de globale taakcache totdat u de achtergrondtaak verwijdert of de PowerShell-sessie sluit.
Voorbeelden
Voorbeeld 1: Een taak verwijderen met behulp van de naam
In dit voorbeeld wordt een variabele en de pijplijn gebruikt om een taak op naam te verwijderen.
$batch = Get-Job -Name BatchJob
$batch | Remove-Job
Get-Job
gebruikt de parameter Name om de taak BatchJob op te geven. Het taakobject wordt opgeslagen in de $batch
variabele. Het object in $batch
wordt in de pijplijn naar beneden verzonden naar Remove-Job
.
Een alternatief is om de parameter Job te gebruiken, zoals Remove-Job -Job $batch
.
Voorbeeld 2: Alle taken in een sessie verwijderen
In dit voorbeeld worden alle taken in de huidige PowerShell-sessie verwijderd.
Get-job | Remove-Job
Get-Job
haalt alle taken in de huidige PowerShell-sessie op. De taakobjecten worden door de pijplijn verzonden naar Remove-Job
.
Voorbeeld 3: NotStarted-taken verwijderen
In dit voorbeeld worden alle taken uit de huidige PowerShell-sessie verwijderd die nog niet zijn gestart.
Remove-Job -State NotStarted
Remove-Job
gebruikt de parameter State om de taakstatus op te geven.
Voorbeeld 4: taken verwijderen met behulp van een beschrijvende naam
In dit voorbeeld worden alle taken uit de huidige sessie verwijderd met beschrijvende namen die eindigen op batch*, inclusief taken die worden uitgevoerd.
Remove-Job -Name *batch -Force
Remove-Job
gebruikt de parameter Name om een patroon voor de taaknaam op te geven. Het patroon bevat het jokerteken sterretje (*
) om alle taaknamen te vinden die eindigen op batch. Met de parameter Force verwijdert u taken die worden uitgevoerd.
Voorbeeld 5: Een taak verwijderen die is gemaakt door Invoke-Command
In dit voorbeeld wordt een taak verwijderd die is gestart op een externe computer met behulp van Invoke-Command
de parameter AsJob .
Omdat in het voorbeeld de parameter AsJob wordt gebruikt, wordt het taakobject gemaakt op de lokale computer. De taak wordt echter uitgevoerd op een externe computer. Als gevolg hiervan gebruikt u lokale opdrachten om de taak te beheren.
$job = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Process} -AsJob
$job | Remove-Job
Invoke-Command
voert een taak uit op de Server01-computer . Met de parameter AsJob wordt scriptBlock uitgevoerd als een achtergrondtaak. Het taakobject wordt opgeslagen in de $job
variabele. Het $job
variabele-object wordt door de pijplijn verzonden naar Remove-Job
.
Voorbeeld 6: Een taak verwijderen die is gemaakt door Invoke-Command en Start-Job
In dit voorbeeld ziet u hoe u een taak verwijdert op een externe computer die is gestart met om Invoke-Command
uit te voeren Start-Job
. Het taakobject wordt gemaakt op de externe computer en externe opdrachten worden gebruikt om de taak te beheren. Een permanente verbinding is vereist bij het uitvoeren van een externe Start-Job
opdracht.
$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
maakt een PSSession, een permanente verbinding, met de Server01-computer . De verbinding wordt opgeslagen in de $S
variabele.
Invoke-Command
maakt verbinding met de sessie die is opgeslagen in $S
. Het ScriptBlock gebruikt Start-Job
om een externe taak te starten. De taak voert een Get-Process
opdracht uit en gebruikt de parameter Name om een beschrijvende taaknaam op te geven, MyJob.
Invoke-Command
gebruikt de $S
sessie en voert uit Remove-Job
. De naam parameter geeft aan dat de taak met de naam MyJob wordt verwijderd.
Voorbeeld 7: Een taak verwijderen met behulp van de InstanceId
In dit voorbeeld wordt een taak verwijderd op basis van de 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
start een achtergrondtaak en het taakobject wordt opgeslagen in de $job
variabele.
Het object in $job
wordt in de pijplijn naar beneden verzonden naar Format-List
. De parameter Eigenschap gebruikt een sterretje (*
) om aan te geven dat alle eigenschappen van het object worden weergegeven in een lijst.
Remove-Job
gebruikt de parameter InstanceId om de taak op te geven die moet worden verwijderd.
Parameters
-Command
Hiermee verwijdert u taken die de opgegeven woorden in de opdracht bevatten. U kunt een door komma's gescheiden matrix invoeren.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
U wordt om bevestiging gevraagd voordat Remove-Job
wordt uitgevoerd.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Filter
Hiermee verwijdert u taken die voldoen aan alle voorwaarden die zijn vastgelegd in de bijbehorende hashtabel. Voer een hash-tabel in waarin de sleutels taakeigenschappen zijn en de waarden waarden voor taakeigenschap zijn.
Deze parameter werkt alleen voor aangepaste taaktypen, zoals werkstroomtaken en geplande taken. Het werkt niet voor standaard achtergrondtaken, zoals taken die zijn gemaakt met behulp van de Start-Job
.
Deze parameter is geïntroduceerd in PowerShell 3.0.
Type: | Hashtable |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Force
Hiermee verwijdert u een taak, zelfs als de status van de taak Wordt uitgevoerd is. Als de parameter Force niet is opgegeven, Remove-Job
worden actieve taken niet verwijderd.
Type: | SwitchParameter |
Aliases: | F |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
Hiermee verwijdert u achtergrondtaken met de opgegeven id. U kunt een door komma's gescheiden matrix invoeren. De taak-id is een uniek geheel getal dat een taak binnen de huidige sessie identificeert.
Als u de id van een taak wilt vinden, gebruikt u Get-Job
zonder parameters.
Type: | Int32[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InstanceId
Hiermee verwijdert u taken met de opgegeven InstanceId. U kunt een door komma's gescheiden matrix invoeren. Een InstanceId is een unieke GUID die een taak identificeert.
Gebruik Get-Job
om de InstanceId van een taak te vinden.
Type: | Guid[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Job
Hiermee geeft u de taken die moeten worden verwijderd. Voer een variabele in die de taken bevat of een opdracht waarmee de taken worden ophaalt. U kunt een door komma's gescheiden matrix invoeren.
U kunt taakobjecten in de pijplijn verzenden naar Remove-Job
.
Type: | Job[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Verwijdert alleen taken met de opgegeven beschrijvende naam. Jokertekens zijn toegestaan. U kunt een door komma's gescheiden matrix invoeren.
Beschrijvende namen voor taken zijn niet gegarandeerd uniek, zelfs niet binnen een PowerShell-sessie. Gebruik de parameters WhatIf en Confirm wanneer u bestanden op naam verwijdert.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-State
Verwijdert alleen taken met de opgegeven status. Als u taken met de status Wordt uitgevoerd wilt verwijderen, gebruikt u de parameter Force .
Geaccepteerde waarden:
- AtBreakpoint
- Geblokkeerd
- Voltooid
- Ontkoppeld
- Mislukt
- NotStarted
- Wordt uitgevoerd
- Gestopt
- Stoppen
- Onderbroken
- Onderbreken
Type: | JobState |
Accepted values: | AtBreakpoint, Blocked, Completed, Disconnected, Failed, NotStarted, Running, Stopped, Stopping, Suspended, Suspending |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Laat zien wat er zou gebeuren als Remove-Job
wordt uitgevoerd. De cmdlet wordt niet uitgevoerd.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Invoerwaarden
U kunt een taakobject in de pijplijn verzenden naar Remove-Job
.
Uitvoerwaarden
None
Remove-Job
genereert geen uitvoer.
Notities
Een PowerShell-taak maakt een nieuw proces. Wanneer de taak is voltooid, wordt het proces afgesloten. Wanneer Remove-Job
wordt uitgevoerd, wordt de status van de taak verwijderd.
Als een taak stopt voordat het proces is voltooid, wordt het proces geforceerd beëindigd.