Stop-Job
Stoppar ett PowerShell-bakgrundsjobb.
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
Cmdleten Stop-Job
stoppar Pågående PowerShell-bakgrundsjobb. Du kan använda den här cmdleten för att stoppa alla jobb eller stoppa valda jobb baserat på deras namn, ID, instans-ID eller tillstånd, eller genom att skicka ett jobbobjekt till Stop-Job
.
Du kan använda Stop-Job
för att stoppa bakgrundsjobb, till exempel de som startades med hjälp av cmdleten Start-Job
eller asjob-parametern för valfri cmdlet. När du stoppar ett bakgrundsjobb slutför PowerShell alla aktiviteter som väntar i jobbkön och avslutar sedan jobbet. Inga nya aktiviteter läggs till i kön när det här kommandot har skickats.
Den här cmdleten tar inte bort bakgrundsjobb. Om du vill ta bort ett jobb använder du cmdleten Remove-Job
.
Från och med Windows PowerShell 3.0 Stop-Job
stoppas även anpassade jobbtyper, till exempel WorkflowJobs och instanser av ScheduledJobs. Om du vill aktivera Stop-Job
för att stoppa ett jobb med anpassad jobbtyp importerar du modulen som stöder den anpassade jobbtypen till sessionen innan du kör ett Stop-Job
kommando, antingen med hjälp av cmdleten Import-Module
eller genom att använda eller hämta en cmdlet i modulen. Information om en viss typ av anpassat jobb finns i dokumentationen för funktionen för anpassad jobbtyp.
Exempel
Exempel 1: Stoppa ett jobb på en fjärrdator med 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 }
Det här exemplet visar hur du använder cmdleten Stop-Job
för att stoppa ett jobb som körs på en fjärrdator.
Eftersom jobbet startades med cmdleten Invoke-Command
för att köra ett Start-Job
kommando via fjärranslutning lagras jobbobjektet på fjärrdatorn. Du måste använda ett annat Invoke-Command
kommando för att fjärrköra ett Stop-Job
kommando. Mer information om fjärrbakgrundsjobb finns i about_Remote_Jobs.
Det första kommandot skapar en PowerShell-session (PSSession) på Server01-datorn och lagrar sedan sessionsobjektet i variabeln $s
. Kommandot använder autentiseringsuppgifterna för en domänadministratör.
Det andra kommandot använder cmdleten Invoke-Command
för att köra ett Start-Job
kommando i sessionen. Kommandot i jobbet hämtar alla händelser i systemhändelseloggen. Det resulterande jobbobjektet lagras i variabeln $j
.
Det tredje kommandot stoppar jobbet. Den använder cmdleten Invoke-Command
för att köra ett Stop-Job
kommando i PSSession på Server01. Eftersom jobbobjekten lagras i $j
, vilket är en variabel på den lokala datorn, använder kommandot modifieraren Using scope ( Använda omfång) för att identifiera $j
som en lokal variabel. Mer information om hur du använder omfångsmodifierare finns i about_Remote_Variables.
När kommandot har slutförts stoppas jobbet och PSSession i $s
är tillgängligt för användning.
Exempel 2: Stoppa ett bakgrundsjobb
Stop-Job -Name "Job1"
Det här kommandot stoppar bakgrundsjobbet Job1
.
Exempel 3: Stoppa flera bakgrundsjobb
Stop-Job -Id 1, 3, 4
Det här kommandot stoppar tre jobb. Den identifierar dem med deras ID:t.
Exempel 4: Stoppa alla bakgrundsjobb
Get-Job | Stop-Job
Det här kommandot stoppar alla bakgrundsjobb i den aktuella sessionen.
Exempel 5: Stoppa alla blockerade bakgrundsjobb
Stop-Job -State Blocked
Det här kommandot stoppar alla jobb som blockeras.
Exempel 6: Stoppa ett jobb efter instans-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
Dessa kommandon visar hur du stoppar ett jobb baserat på dess InstanceID.
Det första kommandot använder cmdleten Get-Job
för att hämta jobben i den aktuella sessionen. Kommandot använder en pipelineoperator (|
) för att skicka jobben till ett Format-Table
kommando, som visar en tabell med de angivna egenskaperna för varje jobb. Tabellen innehåller InstanceID för varje jobb. Den använder en beräknad egenskap för att visa jobbtillståndet.
Det andra kommandot använder ett Stop-Job
kommando som har parametern InstanceID för att stoppa ett valt jobb.
Exempel 7: Stoppa ett jobb på en fjärrdator
$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...
Det här exemplet visar hur du använder cmdleten Stop-Job
för att stoppa ett jobb som körs på en fjärrdator.
Eftersom jobbet startades med asjob-parametern för cmdleten Invoke-Command
finns jobbobjektet på den lokala datorn, även om jobbet körs på fjärrdatorn. Därför kan du använda ett lokalt Stop-Job
kommando för att stoppa jobbet.
Det första kommandot använder cmdleten Invoke-Command
för att starta ett bakgrundsjobb på Server01-datorn. Kommandot använder asjob-parametern för att köra fjärrkommandot som ett bakgrundsjobb.
Det här kommandot returnerar ett jobbobjekt som är samma jobbobjekt som cmdleten Start-Job
returnerar.
Kommandot sparar jobbobjektet i variabeln $j
.
Det andra kommandot använder en pipelineoperator för att skicka jobbet i variabeln $j
till Stop-Job
. Kommandot använder parametern PassThru för att dirigera Stop-Job
för att returnera ett jobbobjekt. Jobbobjektets visning bekräftar att jobbets status är Stoppad.
Mer information om fjärrbakgrundsjobb finns i about_Remote_Jobs.
Parametrar
-Confirm
Uppmanar dig att bekräfta innan du kör cmdleten.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Filter
Anger en hash-tabell med villkor. Den här cmdleten stoppar jobb som uppfyller alla villkor. Ange en hash-tabell där nycklarna är jobbegenskaper och värdena är jobbegenskapsvärden.
Den här parametern fungerar bara på anpassade jobbtyper, till exempel WorkflowJobs och ScheduledJobs. Det fungerar inte på standardbakgrundsjobb, till exempel de som skapas med hjälp av cmdleten Start-Job
.
Information om stöd för den här parametern finns i hjälpavsnittet för jobbtypen.
Den här parametern introducerades i Windows PowerShell 3.0.
Type: | Hashtable |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Id
Anger ID:n för jobb som den här cmdleten stoppar. Standardvärdet är alla jobb i den aktuella sessionen.
ID:t är ett heltal som unikt identifierar jobbet i den aktuella sessionen. Det är lättare att komma ihåg och skriva än instans-ID, men det är bara unikt i den aktuella sessionen. Du kan skriva ett eller flera ID:er avgränsade med kommatecken. Om du vill hitta ID:t för ett jobb skriver du Get-Job
.
Type: | Int32[] |
Position: | 0 |
Default value: | All jobs |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InstanceId
Anger instans-ID:n för jobb som den här cmdleten stoppar. Standardvärdet är alla jobb.
Ett instans-ID är ett GUID som unikt identifierar jobbet på datorn. Om du vill hitta instans-ID:t för ett jobb använder du Get-Job
.
Type: | Guid[] |
Position: | 0 |
Default value: | All jobs |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Job
Anger de jobb som denna cmdlet stoppar. Ange en variabel som innehåller jobben eller ett kommando som hämtar jobben. Du kan också använda en pipelineoperator för att skicka jobb till cmdleten Stop-Job
. Som standard Stop-Job
tar bort alla jobb som startades i den aktuella sessionen.
Type: | Job[] |
Position: | 0 |
Default value: | All jobs |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Anger egna namn på jobb som denna cmdlet stoppar. Ange jobbnamnen i en kommaavgränsad lista eller använd jokertecken (*
) för att ange ett jobbnamnsmönster. Som standard Stop-Job
stoppar alla jobb som skapats i den aktuella sessionen.
Eftersom det egna namnet inte garanterat är unikt använder du parametrarna WhatIf och Confirm när du stoppar jobb efter namn.
Type: | String[] |
Position: | 0 |
Default value: | All jobs |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-PassThru
Returnerar ett objekt som representerar det objekt som du arbetar med. Som standard genererar denna cmdlet inga utdata.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-State
Anger ett jobbtillstånd. Den här cmdleten stoppar endast jobb i det angivna tillståndet. De acceptabla värdena för den här parametern är:
NotStarted
Running
Completed
Failed
Stopped
Blocked
Suspended
Disconnected
Suspending
Stopping
Mer information om jobbtillstånd finns i JobState-uppräkning.
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
Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
System.Management.Automation.RemotingJob
Du kan skicka ett jobbobjekt till den här cmdleten.
Utdata
None
Som standard returnerar denna cmdlet inga utdata.
System.Management.Automation.PSRemotingJob
När du använder parametern PassThru returnerar den här cmdleten ett jobbobjekt.
Kommentarer
PowerShell innehåller följande alias för Stop-Job
:
- Alla plattformar:
spjb