Suspend-Job
Stoppar tillfälligt arbetsflödesjobb.
Syntax
Suspend-Job
[-Force]
[-Wait]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Job] <Job[]>
[-Force]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Cmdleten Suspend-Job
pausar arbetsflödesjobb. Pausa innebär att tillfälligt avbryta eller pausa ett arbetsflödesjobb. Med den här cmdleten kan användare som kör arbetsflöden pausa arbetsflödet. Den kompletterar aktiviteten Suspend-Workflowhttps://go.microsoft.com/fwlink/?LinkId=267141, som är ett kommando i arbetsflödet som pausar arbetsflödet.
Cmdleten Suspend-Job
fungerar bara på arbetsflödesjobb. Det fungerar inte på standardbakgrundsjobb, till exempel de som startas med hjälp av cmdleten Start-Job
.
Om du vill identifiera ett arbetsflödesjobb letar du efter värdet PSWorkflowJob i PSJobTypeName-egenskapen för jobbet. Information om huruvida en viss anpassad jobbtyp stöder cmdleten Suspend-Job
finns i hjälpavsnitten för den anpassade jobbtypen.
När du inaktiverar ett arbetsflödesjobb körs arbetsflödesjobbet till nästa kontrollpunkt, pausar och returnerar omedelbart ett arbetsflödesjobbobjekt. Om du vill vänta tills avstängningen har slutförts innan jobbet hämtas använder du parametern Wait för Suspend-Job
eller cmdleten Wait-Job
. När arbetsflödesjobbet pausas inaktiveras värdet för State-egenskapen för jobbet.
Att pausa korrekt förlitar sig på kontrollpunkter. Det aktuella jobbtillståndet, metadata och utdata sparas i kontrollpunkten så att arbetsflödesjobbet kan återupptas utan förlust av tillstånd eller data. Om arbetsflödesjobbet inte har kontrollpunkter kan det inte pausas korrekt. Om du vill lägga till kontrollpunkter i ett arbetsflöde som du kör använder du den vanliga parametern PSPersist arbetsflöde. Du kan använda parametern Force för att stänga av alla arbetsflödesjobb omedelbart och inaktivera ett arbetsflödesjobb som inte har kontrollpunkter, men åtgärden kan orsaka förlust av tillstånd och data.
Innan du använder en jobb-cmdlet på en anpassad jobbtyp, till exempel ett arbetsflödesjobb (PSWorkflowJob) importerar du modulen som stöder den anpassade jobbtypen, antingen med hjälp av cmdleten Import-Module
eller med hjälp av eller med en cmdlet i modulen.
Den här cmdleten introducerades i Windows PowerShell 3.0.
Exempel
Exempel 1: Inaktivera ett arbetsflödesjobb efter namn
Det här exemplet visar hur du pausar ett arbetsflödesjobb.
Det första kommandot skapar arbetsflödet Get-SystemLog
. Arbetsflödet använder aktiviteten CheckPoint-Workflow
för att definiera en kontrollpunkt i arbetsflödet.
Det andra kommandot använder parametern AsJob som är gemensam för alla arbetsflöden för att köra Get-SystemLog
arbetsflöde som ett bakgrundsjobb. Kommandot använder den gemensamma parametern JobName arbetsflöde för att ange ett eget namn för arbetsflödesjobbet.
Det tredje kommandot använder cmdleten Get-Job
för att hämta LogflowJob
arbetsflödesjobbet. Utdata visar att värdet för egenskapen PSJobTypeName är PSWorkflowJob.
Det fjärde kommandot använder cmdleten Suspend-Job
för att pausa LogflowJob
jobbet. Jobbet körs till kontrollpunkten och pausas sedan.
#Sample Workflow
Workflow Get-SystemLog
{
$Events = Get-WinEvent -LogName System
CheckPoint-Workflow
InlineScript {\\Server01\Scripts\Analyze-SystemEvents.ps1 -Events $Events}
}
Get-SystemLog -AsJob -JobName "LogflowJob"
Get-Job -Name LogflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 LogflowJob PSWorkflowJob Running True localhost Get-SystemLog
Suspend-Job -Name LogflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 LogflowJob PSWorkflowJob Suspended True localhost Get-SystemLog
Exempel 2: Pausa och återuppta ett arbetsflödesjobb
Det här exemplet visar hur du pausar och återupptar ett arbetsflödesjobb.
Det första kommandot pausar LogWorkflowJob-jobbet. Kommandot returnerar omedelbart. Utdata visar att arbetsflödesjobbet fortfarande körs, även om det pausas.
Det andra kommandot använder cmdleten Get-Job
för att hämta LogWorkflowJob-jobbet. Utdata visar att arbetsflödesjobbet har pausats.
Det tredje kommandot använder cmdleten Get-Job
för att hämta LogWorkflowJob-jobbet och cmdleten Resume-Job
för att återuppta det. Utdata visar att arbetsflödesjobbet har återupptagits och körs nu.
Suspend-Job -Name LogWorkflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Running True localhost LogWorkflow
Get-Job -Name LogWorkflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Suspended True localhost LogWorkflow
Get-Job -Name LogWorkflowJob | Resume-Job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Running True localhost LogWorkflow
Exempel 3: Pausa ett arbetsflödesjobb på en fjärrdator
Invoke-Command -ComputerName Srv01 -Scriptblock {Suspend-Job -Filter @{CustomID="031589"}
Det här kommandot använder cmdleten Invoke-Command
för att pausa ett arbetsflödesjobb på fjärrdatorn Srv01. Värdet för parametern Filter är en hash-tabell som anger ett CustomID-värde.
Den här CustomID- är jobbmetadata (PSPrivateMetadata).
Exempel 4: Vänta tills arbetsflödesjobbet pausas
Suspend-Job VersionCheck -Wait
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
5 VersionCheck PSWorkflowJob Suspended True localhost LogWorkflow
Det här kommandot inaktiverar arbetsflödesjobbet VersionCheck. Kommandot använder parametern Wait för att vänta tills arbetsflödesjobbet har pausats. När arbetsflödesjobbet körs till nästa kontrollpunkt och pausas slutförs kommandot och returnerar jobbobjektet.
Exempel 5: Tvinga ett arbetsflödesjobb att pausa
Suspend-Job Maintenance -Force
Det här kommandot inaktiverar arbetsflödesjobbet underhåll med två två skäl. Underhållsjobbet har inga kontrollpunkter. Den kan inte pausas korrekt och kan inte återupptas korrekt.
Parametrar
-Confirm
Uppmanar dig att bekräfta innan du kör cmdleten.
Typ: | SwitchParameter |
Alias: | cf |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Filter
Anger en hash-tabell med villkor. Den här cmdleten pausar jobb som uppfyller alla villkor. Ange en hash-tabell där nycklarna är jobbegenskaper och värdena är jobbegenskapsvärden.
Typ: | Hashtable |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-Force
Inaktiverar arbetsflödesjobbet omedelbart. Den här åtgärden kan orsaka förlust av tillstånd och data.
Som standard låter Suspend-Job
arbetsflödesjobbet köras till nästa kontrollpunkt och sedan pausa det.
Du kan också använda den här parametern för att pausa arbetsflödesjobb som inte har kontrollpunkter.
Typ: | SwitchParameter |
Alias: | F |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Id
Anger ID:t för jobb som den här cmdleten pausar.
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 använder du cmdleten Get-Job
.
Typ: | Int32[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-InstanceId
Anger instans-ID:t för jobb som den här cmdleten pausar. 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
.
Typ: | Guid[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-Job
Anger de arbetsflödesjobb som den här cmdleten stoppar. Ange en variabel som innehåller arbetsflödesjobben eller ett kommando som hämtar arbetsflödesjobben. Du kan också skicka arbetsflödesjobb till cmdleten Suspend-Job
.
Typ: | Job[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-Name
Anger egna namn på jobb som den här cmdleten pausar. Ange ett eller flera arbetsflödesjobbnamn. Jokertecken stöds.
Typ: | String[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-State
Anger ett jobbtillstånd. Den här cmdleten stoppar endast jobb i det angivna tillståndet. De godtagbara värdena för den här parametern är:
- NotStarted
- Löpning
- Fullbordad
- Misslyckades
- Stoppat
- Blockerad
- Upphängd
- Bortkopplad
- Avbryta
- Stoppa
Suspend-Job
inaktiverar endast arbetsflödesjobb i tillståndet Körs.
Mer information om jobbtillstånd finns i JobState Enumeration.
Typ: | JobState |
Godkända värden: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-Wait
Anger att den här cmdleten undertrycker kommandotolken tills arbetsflödesjobbet är i pausat tillstånd. Som standard returnerar Suspend-Job
omedelbart, även om arbetsflödesjobbet ännu inte är i inaktiverat tillstånd.
Parametern Wait motsvarar att skicka ett Suspend-Job
kommando till cmdleten Wait-Job
.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-WhatIf
Visar vad som skulle hända om cmdleten körs. Cmdleten körs inte.
Typ: | SwitchParameter |
Alias: | wi |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
Indata
Du kan skicka alla typer av jobb till den här cmdleten. Men om Suspend-Job
får ett jobb av en typ som inte stöds returneras ett avslutande fel.
Utdata
Den här cmdleten returnerar jobben som den pausade.
Kommentarer
Windows PowerShell innehåller följande alias för Suspend-Job
:
sujb
Mekanismen och platsen för att spara ett pausat jobb kan variera beroende på jobbtyp. Till exempel sparas pausade arbetsflödesjobb i ett platt filarkiv som standard, men kan också sparas i en databas.
Om du skickar ett arbetsflödesjobb som inte är i körningstillståndet Suspend-Job
visar ett varningsmeddelande. Om du vill ignorera varningen använder du WarningAction gemensam parameter med värdet SilentlyContinue.
Om ett jobb inte är av en typ som stöder pausning returnerar Suspend-Job
ett avslutande fel.
Om du vill hitta arbetsflödesjobben som är inaktiverade, inklusive de som har pausats av den här cmdleten, använder du parametern State för cmdleten Get-Job
för att hämta arbetsflödesjobb i tillståndet Pausat.
Vissa jobbtyper har alternativ eller egenskaper som hindrar Windows PowerShell från att pausa jobbet. Om det inte går att pausa jobbet kontrollerar du att jobbalternativen och egenskaperna tillåter pausning.