Stop-Job
Stopt een PowerShell-achtergrondtaak.
Syntax
Stop-Job
[-PassThru]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-Job] <Job[]>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
De Stop-Job
cmdlet stopt PowerShell-achtergrondtaken die worden uitgevoerd. U kunt deze cmdlet gebruiken om alle taken te stoppen of geselecteerde taken te stoppen op basis van hun naam, id, exemplaar-id of status, of door een taakobject door te geven aan Stop-Job
.
U kunt gebruiken Stop-Job
om achtergrondtaken te stoppen, zoals taken die zijn gestart met behulp van de Start-Job
cmdlet of de AsJob-parameter van een cmdlet. Wanneer u een achtergrondtaak stopt, voltooit PowerShell alle taken die in behandeling zijn in die taakwachtrij en wordt de taak vervolgens beëindigd. Er worden geen nieuwe taken toegevoegd aan de wachtrij nadat deze opdracht is verzonden.
Deze cmdlet verwijdert geen achtergrondtaken. Gebruik de Remove-Job
cmdlet om een taak te verwijderen.
Vanaf Windows PowerShell 3.0 worden Stop-Job
ook aangepaste taaktypen gestopt, zoals WorkflowJobs en exemplaren van ScheduledJobs. Stop-Job
Als u een taak met een aangepast taaktype wilt stoppen, importeert u de module die ondersteuning biedt voor het aangepaste taaktype in de sessie voordat u een Stop-Job
opdracht uitvoert, met behulp van de Import-Module
cmdlet of door een cmdlet in de module te gebruiken of op te halen. Zie de documentatie van de functie aangepast taaktype voor informatie over een bepaald aangepast taaktype.
Voorbeelden
Voorbeeld 1: een taak op een externe computer stoppen met Invoke-Command
$s = New-PSSession -ComputerName Server01 -Credential Domain01\Admin02
$j = Invoke-Command -Session $s -ScriptBlock {Start-Job -ScriptBlock {Get-EventLog -LogName System}}
Invoke-Command -Session $s -ScriptBlock { Stop-job -Job $Using:j }
In dit voorbeeld ziet u hoe u de Stop-Job
cmdlet gebruikt om een taak te stoppen die wordt uitgevoerd op een externe computer.
Omdat de taak is gestart met de Invoke-Command
cmdlet om een Start-Job
opdracht op afstand uit te voeren, wordt het taakobject opgeslagen op de externe computer. U moet een andere Invoke-Command
opdracht gebruiken om een Stop-Job
opdracht op afstand uit te voeren. Zie about_Remote_Jobs voor meer informatie over externe achtergrondtaken.
Met de eerste opdracht maakt u een PowerShell-sessie (PSSession) op de Server01-computer en slaat u vervolgens het sessieobject op in de $s
variabele. De opdracht maakt gebruik van de referenties van een domeinbeheerder.
De tweede opdracht gebruikt de Invoke-Command
cmdlet om een Start-Job
opdracht uit te voeren in de sessie. Met de opdracht in de taak worden alle gebeurtenissen in het gebeurtenislogboek van het systeem opgeslagen. Het resulterende taakobject wordt opgeslagen in de $j
variabele.
Met de derde opdracht wordt de taak gestopt. De cmdlet wordt gebruikt Invoke-Command
om een Stop-Job
opdracht uit te voeren in de PSSession op Server01. Omdat de taakobjecten worden opgeslagen in $j
, een variabele op de lokale computer, gebruikt de opdracht de bereikaanpassing gebruiken om te identificeren $j
als een lokale variabele. Zie about_Remote_Variables voor meer informatie over het gebruik vanbereikaanpassing.
Wanneer de opdracht is voltooid, wordt de taak gestopt en is de PSSession in $s
beschikbaar voor gebruik.
Voorbeeld 2: Een achtergrondtaak stoppen
Stop-Job -Name "Job1"
Met deze opdracht wordt de Job1
achtergrondtaak gestopt.
Voorbeeld 3: Verschillende achtergrondtaken stoppen
Stop-Job -Id 1, 3, 4
Met deze opdracht worden drie taken gestopt. Het identificeert ze aan hun id's.
Voorbeeld 4: alle achtergrondtaken stoppen
Get-Job | Stop-Job
Met deze opdracht worden alle achtergrondtaken in de huidige sessie gestopt.
Voorbeeld 5: alle geblokkeerde achtergrondtaken stoppen
Stop-Job -State Blocked
Met deze opdracht worden alle taken gestopt die zijn geblokkeerd.
Voorbeeld 6: Een taak stoppen op exemplaar-id
Get-Job | Format-Table ID, Name, Command, @{Label="State";Expression={$_.JobStateInfo.State}},
InstanceID -Auto
Id Name Command State InstanceId
-- ---- ------- ----- ----------
1 Job1 start-service schedule Running 05abb67a-2932-4bd5-b331-c0254b8d9146
3 Job3 start-service schedule Running c03cbd45-19f3-4558-ba94-ebe41b68ad03
5 Job5 get-service s* Blocked e3bbfed1-9c53-401a-a2c3-a8db34336adf
Stop-Job -InstanceId e3bbfed1-9c53-401a-a2c3-a8db34336adf
Deze opdrachten laten zien hoe u een taak stopt op basis van de InstanceID.
De eerste opdracht maakt gebruik van de Get-Job
cmdlet om de taken in de huidige sessie op te halen. De opdracht maakt gebruik van een pijplijnoperator (|
) om de taken naar een Format-Table
opdracht te verzenden, waarin een tabel met de opgegeven eigenschappen van elke taak wordt weergegeven. De tabel bevat de InstanceID van elke taak. Er wordt een berekende eigenschap gebruikt om de taakstatus weer te geven.
De tweede opdracht maakt gebruik van een Stop-Job
opdracht met de parameter InstanceID om een geselecteerde taak te stoppen.
Voorbeeld 7: Een taak op een externe computer stoppen
$j = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-EventLog -LogName System} -AsJob
$j | Stop-Job -PassThru
Id Name State HasMoreData Location Command
-- ---- ---- ----------- -------- -------
5 Job5 Stopped True user01-tablet Get-EventLog -LogName Sy...
In dit voorbeeld ziet u hoe u de Stop-Job
cmdlet gebruikt om een taak te stoppen die wordt uitgevoerd op een externe computer.
Omdat de taak is gestart met de parameter AsJob van de Invoke-Command
cmdlet, bevindt het object Job zich op de lokale computer, ook al wordt de taak uitgevoerd op de externe computer. Daarom kunt u een lokale Stop-Job
opdracht gebruiken om de taak te stoppen.
De eerste opdracht gebruikt de Invoke-Command
cmdlet om een achtergrondtaak op de Server01-computer te starten. De opdracht gebruikt de parameter AsJob om de externe opdracht uit te voeren als een achtergrondtaak.
Deze opdracht retourneert een taakobject, dat hetzelfde taakobject is dat de Start-Job
cmdlet retourneert.
Met de opdracht wordt het taakobject opgeslagen in de $j
variabele.
De tweede opdracht maakt gebruik van een pijplijnoperator om de taak in de $j
variabele te verzenden naar Stop-Job
. De opdracht gebruikt de parameter PassThru om een Stop-Job
taakobject te retourneren. De weergave van het taakobject bevestigt dat de status van de taak Gestopt is.
Zie about_Remote_Jobs voor meer informatie over externe achtergrondtaken.
Parameters
-Confirm
Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Filter
Hiermee geeft u een hash-tabel met voorwaarden. Deze cmdlet stopt taken die voldoen aan elke voorwaarde. Voer een hash-tabel in waarin de sleutels taakeigenschappen zijn en de waarden waarden van de taakeigenschap zijn.
Deze parameter werkt alleen op aangepaste taaktypen, zoals WorkflowJobs en ScheduledJobs. Het werkt niet voor standaard achtergrondtaken, zoals taken die zijn gemaakt met behulp van de Start-Job
cmdlet.
Zie het Help-onderwerp voor het taaktype voor meer informatie over ondersteuning voor deze parameter.
Deze parameter is geïntroduceerd in Windows PowerShell 3.0.
Type: | Hashtable |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Id
Hiermee geeft u de id's van taken die deze cmdlet stopt. De standaardwaarde is alle taken in de huidige sessie.
De id is een geheel getal dat de taak in de huidige sessie uniek identificeert. Het is gemakkelijker om te onthouden en te typen dan de exemplaar-id, maar deze is alleen uniek in de huidige sessie. U kunt een of meer id's typen, gescheiden door komma's. Als u de id van een taak wilt vinden, typt u Get-Job
.
Type: | Int32[] |
Position: | 0 |
Default value: | All jobs |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InstanceId
Hiermee geeft u de exemplaar-id's van taken die deze cmdlet stopt. De standaardwaarde is alle taken.
Een exemplaar-id is een GUID die de taak op de computer uniek identificeert. Gebruik om de instantie-id van een taak te vinden Get-Job
.
Type: | Guid[] |
Position: | 0 |
Default value: | All jobs |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Job
Hiermee geeft u de taken op die deze cmdlet stopt. Voer een variabele in die de taken bevat of een opdracht waarmee de taken worden ophaalt. U kunt ook een pijplijnoperator gebruiken om taken naar de Stop-Job
cmdlet te verzenden. Verwijdert standaard Stop-Job
alle taken die zijn gestart in de huidige sessie.
Type: | Job[] |
Position: | 0 |
Default value: | All jobs |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Hiermee geeft u beschrijvende namen van taken die deze cmdlet stopt. Voer de taaknamen in een door komma's gescheiden lijst in of gebruik jokertekens (*
) om een taaknaampatroon in te voeren. Stopt standaard Stop-Job
alle taken die in de huidige sessie zijn gemaakt.
Omdat de beschrijvende naam niet gegarandeerd uniek is, gebruikt u de parameters WhatIf en Confirm bij het stoppen van taken op naam.
Type: | String[] |
Position: | 0 |
Default value: | All jobs |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-PassThru
Retourneert een object dat het item vertegenwoordigt waarmee u werkt. Deze cmdlet genereert standaard geen uitvoer.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-State
Hiermee geeft u een taakstatus. Deze cmdlet stopt alleen taken met de opgegeven status. De aanvaardbare waarden voor deze parameter zijn:
NotStarted
Running
Completed
Failed
Stopped
Blocked
Suspended
Disconnected
Suspending
Stopping
Zie Opsomming JobState voor meer informatie over taakstatussen.
Type: | JobState |
Accepted values: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
Position: | 0 |
Default value: | All jobs |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. 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
System.Management.Automation.RemotingJob
U kunt een taakobject doorsnijden naar deze cmdlet.
Uitvoerwaarden
None
Deze cmdlet retourneert standaard geen uitvoer.
System.Management.Automation.PSRemotingJob
Wanneer u de parameter PassThru gebruikt, retourneert deze cmdlet een taakobject.
Notities
PowerShell bevat de volgende aliassen voor Stop-Job
:
- Alle platformen:
spjb