Remove-Job
Hiermee verwijdert u een PowerShell-achtergrondtaak.
Syntax
Remove-Job
[-Force]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Job] <Job[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Force]
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Force]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Force]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Command <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Met Remove-Job de cmdlet worden PowerShell-achtergrondtaken verwijderd die zijn gestart door de Start-Job cmdlet of door cmdlets, zoals Invoke-Command die ondersteuning bieden voor de AsJob-parameter .
U kunt Remove-Job alle taken verwijderen of geselecteerde taken verwijderen. De taken worden geïdentificeerd door hun naam, id, exemplaar-id, opdracht of status. Of een taakobject kan naar de pijplijn worden verzonden Remove-Job. Zonder parameters of parameterwaarden heeft Remove-Job dit geen effect.
Aangezien PowerShell 3.0 Remove-Job aangepaste 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 dit. Gebruik de Stop-Job cmdlet om een actieve taak te stoppen. U kunt ook de parameter Force gebruiken Remove-Job om een actieve taak te verwijderen.
Taken blijven in de globale taakcache staan 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 wordt $batch naar de pijplijn verzonden Remove-Job.
Een alternatief is het gebruik van de taakparameter , 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 op in de huidige PowerShell-sessie. De taakobjecten worden naar de pijplijn verzonden.Remove-Job
Voorbeeld 3: Niet-gestarte taken verwijderen
In dit voorbeeld worden alle taken verwijderd uit de huidige PowerShell-sessie 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 taaknaampatroon op te geven. Het patroon bevat het jokerteken sterretje (*) om alle taaknamen te vinden die eindigen op batch. Met de parameter Force worden taken verwijderd 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 astaakparameter .
Omdat in het voorbeeld de parameter AsJob wordt gebruikt, wordt het taakobject gemaakt op de lokale computer. Maar de taak wordt 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 . De AsJob-parameter voert scriptblock uit als achtergrondtaak. Het taakobject wordt opgeslagen in de $job variabele. Het $job variabeleobject wordt naar de pijplijn verzonden 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 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. 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 wordt uitgevoerd Remove-Job. De parameter Name 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 wordt $job naar de pijplijn verzonden Format-List. De parameter Eigenschap gebruikt een sterretje (*) om op 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
Hiermee verwijdert u taken met de opgegeven woorden in de opdracht. U kunt een door komma's gescheiden matrix invoeren.
| Type: | String[] |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Vraagt u om bevestiging voordat Remove-Job deze wordt uitgevoerd.
| Type: | SwitchParameter |
| Aliases: | cf |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Hiermee verwijdert u taken die voldoen aan alle voorwaarden die zijn vastgesteld in de bijbehorende hashtabel. Voer een hashtabel in waarin de sleutels taakeigenschappen zijn en de waarden taakeigenschapswaarden zijn.
Deze parameter werkt alleen voor aangepaste taaktypen, zoals werkstroomtaken en geplande taken. Het werkt niet aan standaardachtergrondtaken, zoals taken die zijn gemaakt met behulp van de Start-Job.
Deze parameter wordt geïntroduceerd in PowerShell 3.0.
| Type: | Hashtable |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Hiermee verwijdert u een taak, zelfs als de status van de taak actief is. Als de parameter Force niet is opgegeven, Remove-Job worden actieve taken niet verwijderd.
| Type: | SwitchParameter |
| Aliases: | F |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Hiermee verwijdert u achtergrondtaken met de opgegeven id. U kunt een door komma's gescheiden matrix invoeren. De id van de taak is een uniek geheel getal dat een taak in de huidige sessie identificeert.
Als u de id van een taak wilt vinden, gebruikt u Get-Job deze zonder parameters.
| Type: | Int32[] |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
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.
Als u de InstanceId van een taak wilt vinden, gebruikt u Get-Job.
| Type: | Guid[] |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Hiermee geeft u de taken die moeten worden verwijderd. Voer een variabele in die de taken bevat of een opdracht die de taken ophaalt. U kunt een door komma's gescheiden matrix invoeren.
U kunt taakobjecten naar de pijplijn verzenden.Remove-Job
| Type: | Job[] |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
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 |
| Accept pipeline input: | True |
| Accept wildcard characters: | True |
Verwijdert alleen taken met de opgegeven status. Als u taken wilt verwijderen met de status Actief, gebruikt u de parameter Force .
Geaccepteerde waarden:
- AtBreakpoint
- Geblokkeerd
- Voltooid
- Ontkoppeld
- Mislukt
- Niet gestart
- 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 |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
Laat zien wat er zou gebeuren als Remove-Job deze wordt uitgevoerd. De cmdlet wordt niet uitgevoerd.
| Type: | SwitchParameter |
| Aliases: | wi |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Invoerwaarden
U kunt een taakobject naar de pijplijn verzenden.Remove-Job
Uitvoerwaarden
None
Remove-Job genereert geen uitvoer.
Notities
Met een PowerShell-taak wordt een nieuw proces gemaakt. Wanneer de taak is voltooid, wordt het proces afgesloten. Wanneer Remove-Job de taak wordt uitgevoerd, wordt de status van de taak verwijderd.
Als een taak stopt voordat het proces is voltooid en het proces niet is afgesloten, wordt het proces geforceerd beëindigd.
Verwante koppelingen
Feedback
Feedback verzenden en weergeven voor