Delen via


Stop-Job

Hiermee stopt u een PowerShell-achtergrondtaak.

Syntax

SessionIdParameterSet (Standaard)

Stop-Job
    [-Id] <Int32[]>
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

JobParameterSet

Stop-Job
    [-Job] <Job[]>
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

NameParameterSet

Stop-Job
    [-Name] <String[]>
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

InstanceIdParameterSet

Stop-Job
    [-InstanceId] <Guid[]>
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

StateParameterSet

Stop-Job
    [-State] <JobState>
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

FilterParameterSet

Stop-Job
    [-Filter] <Hashtable>
    [-PassThru]
    [-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 Stop-Job- gebruiken om achtergrondtaken te stoppen, zoals taken die zijn gestart met behulp van de Start-Job-cmdlet of de parameter AsJob van een cmdlet. Wanneer u een achtergrondtaak stopt, worden in PowerShell alle taken voltooid die in die taakwachtrij in behandeling zijn en wordt de taak vervolgens beëindigd. Er worden geen nieuwe taken aan de wachtrij toegevoegd nadat deze opdracht is verzonden.

Met deze cmdlet worden geen achtergrondtaken verwijderd. Als u een taak wilt verwijderen, gebruikt u de cmdlet Remove-Job.

Vanaf Windows PowerShell 3.0 stopt Stop-Job- ook aangepaste taaktypen, zoals werkstroomtaken en exemplaren van geplande taken. Als u Stop-Job- wilt inschakelen om een taak met een aangepast taaktype te stoppen, importeert u de module die het aangepaste taaktype ondersteunt in de sessie voordat u een opdracht stop-job uitvoert, hetzij met behulp van de Import-Module-cmdlet of door een cmdlet in de module te gebruiken of op te halen. Raadpleeg de documentatie van de functie voor aangepaste taaktypen voor informatie over een specifiek type aangepaste taak.

Voorbeelden

Voorbeeld 1: Een taak op een externe computer stoppen met behulp van Invoke-Command

$s = New-PSSession -ComputerName Server01 -Credential Domain01\Admin02
$j = Invoke-Command -Session $s -ScriptBlock {Start-Job -ScriptBlock {Get-EventLog System}}
Invoke-Command -Session $s -ScriptBlock { Stop-job -Job $Using:j }

In dit voorbeeld ziet u hoe u de cmdlet Stop-Job gebruikt om een taak te stoppen die wordt uitgevoerd op een externe computer.

Omdat de taak is gestart met behulp van de cmdlet Invoke-Command om een opdracht Start-Job op afstand uit te voeren, wordt het taakobject op de externe computer opgeslagen. U moet een andere opdracht Invoke-Command 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 gebruikt de referenties van een domeinbeheerder.

De tweede opdracht maakt gebruik van de cmdlet Invoke-Command om een opdracht in de sessie uit te voeren. Met de opdracht in de taak worden alle gebeurtenissen in het gebeurtenislogboek van het systeem opgeslagen. Het resulterende taakobject wordt opgeslagen in de variabele $j.

Met de derde opdracht wordt de taak gestopt. Deze maakt gebruik van de cmdlet Invoke-Command om een stoptaak- 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 $j te identificeren als een lokale variabele. Zie about_Remote_Variablesvoor meer informatie over het gebruik van bereikaanpassing.

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 achtergrondtaak Job1 gestopt.

Voorbeeld 3: Verschillende achtergrondtaken stoppen

Stop-Job -Id 1, 3, 4

Met deze opdracht worden drie taken gestopt. Het identificeert ze door 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 worden geblokkeerd.

Voorbeeld 6: Een taak stoppen met behulp van een 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 exemplaar-id.

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 te verzenden naar een Format-Table-opdracht, waarin een tabel met de opgegeven eigenschappen van elke taak wordt weergegeven. De tabel bevat de exemplaar-id van elke taak. Er wordt een berekende eigenschap gebruikt om de taakstatus weer te geven.

De tweede opdracht maakt gebruik van een stoptaak 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 System} -AsJob
$j | Stop-Job -PassThru
Id    Name    State      HasMoreData     Location         Command
--    ----    ----       -----------     --------         -------
5     Job5    Stopped    True            user01-tablet    get-eventlog system

In dit voorbeeld ziet u hoe u de cmdlet Stop-Job gebruikt om een taak te stoppen die wordt uitgevoerd op een externe computer.

Omdat de taak is gestart met behulp van de parameter AsJob van de cmdlet Invoke-Command, bevindt het taakobject zich op de lokale computer, ook al wordt de taak uitgevoerd op de externe computer. Daarom kunt u een lokale stoptaak opdracht gebruiken om de taak te stoppen.

De eerste opdracht maakt gebruik van de cmdlet Invoke-Command om een achtergrondtaak op de Server01-computer te starten. De opdracht gebruikt de parameter AsJob om de externe opdracht uit te voeren als achtergrondtaak.

Met deze opdracht wordt een taakobject geretourneerd. Dit is hetzelfde taakobject 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 Stop-Job- om een taakobject te retourneren. De weergave van het taakobject bevestigt dat de status van de taak is gestopt.

Zie about_Remote_Jobs voor meer informatie over externe achtergrondtaken.

Parameters

-Confirm

Voordat u de cmdlet uitvoert, vraagt het systeem om bevestiging.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Cf

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Filter

Hiermee geeft u een hash-tabel met voorwaarden. Met deze cmdlet worden taken gestopt die voldoen aan alle voorwaarden. 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 voor standaardachtergrondtaken, zoals taken die zijn gemaakt met behulp van de cmdlet Start-Job. Zie het Help-onderwerp voor het taaktype voor informatie over ondersteuning voor deze parameter.

Deze parameter is geïntroduceerd in Windows PowerShell 3.0.

Parametereigenschappen

Type:Hashtable
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

FilterParameterSet
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-Id

Hiermee geeft u de id's van taken op die door deze cmdlet worden gestopt. 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 het 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 zoeken, typt u Get-Job.

Parametereigenschappen

Type:

Int32[]

Default value:All jobs
Ondersteunt jokertekens:False
DontShow:False

Parametersets

SessionIdParameterSet
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-InstanceId

Hiermee geeft u de exemplaar-id's van taken op die door deze cmdlet worden gestopt. De standaardwaarde is alle taken.

Een exemplaar-id is een GUID waarmee de taak op de computer uniek wordt geïdentificeerd. Gebruik Get-Job om de exemplaar-id van een taak te vinden.

Parametereigenschappen

Type:

Guid[]

Default value:All jobs
Ondersteunt jokertekens:False
DontShow:False

Parametersets

InstanceIdParameterSet
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-Job

Hiermee geeft u de taken op die door deze cmdlet worden gestopt. Voer een variabele in die de taken bevat of een opdracht opgeeft waarmee de taken worden opgehaald. U kunt ook een pijplijnoperator gebruiken om taken te verzenden naar de cmdlet Stop-Job. Standaard verwijdert Stop-Job- alle taken die zijn gestart in de huidige sessie.

Parametereigenschappen

Type:

Job[]

Default value:All jobs
Ondersteunt jokertekens:False
DontShow:False

Parametersets

JobParameterSet
Position:0
Verplicht:True
Waarde uit pijplijn:True
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-Name

Hiermee geeft u beschrijvende namen op van taken die door deze cmdlet worden gestopt. Voer de taaknamen in een door komma's gescheiden lijst in of gebruik jokertekens (*) om een taaknaampatroon in te voeren. Standaard stopt stoptaak alle taken die in de huidige sessie zijn gemaakt, gestopt.

Omdat de beschrijvende naam niet gegarandeerd uniek is, gebruikt u de WhatIf- en bevestigt u parameters bij het stoppen van taken op naam.

Parametereigenschappen

Type:

String[]

Default value:All jobs
Ondersteunt jokertekens:True
DontShow:False

Parametersets

NameParameterSet
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-PassThru

Retourneert een object dat het item aangeeft waarmee u werkt. Deze cmdlet genereert standaard geen uitvoer.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-State

Bepaalt een taakstatus. Met deze cmdlet worden alleen taken met de opgegeven status gestopt. De acceptabele waarden voor deze parameter zijn:

  • Niet gestart
  • Hardlopen
  • Volbracht
  • Mislukt
  • Gestopt
  • Geblokkeerd
  • Opgeschort
  • Niet verbonden
  • Onderbreken
  • Het stoppen

Zie JobState-opsomming in de MSDN-bibliotheek voor meer informatie over taakstatussen.

Parametereigenschappen

Type:JobState
Default value:All jobs
Geaccepteerde waarden:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Ondersteunt jokertekens:False
DontShow:False

Parametersets

StateParameterSet
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-WhatIf

Toont wat er zou gebeuren wanneer de cmdlet wordt uitgevoerd. De cmdlet wordt niet uitgevoerd.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Wi

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

CommonParameters

Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.

Invoerwaarden

System.Management.Automation.RemotingJob

U kunt een taakobject doorsluisen naar deze cmdlet.

Uitvoerwaarden

None, System.Management.Automation.PSRemotingJob

Met deze cmdlet wordt een taakobject geretourneerd als u de parameter PassThru opgeeft. Anders genereert deze cmdlet geen uitvoer.