Suspend-Job
Werkstroomtaken tijdelijk stoppen.
Syntaxis
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
De Suspend-Job
cmdlet onderbreekt werkstroomtaken. Onderbreek de middelen om een werkstroomtaak tijdelijk te onderbreken of te onderbreken. Met deze cmdlet kunnen gebruikers die werkstromen uitvoeren, de werkstroom onderbreken. Het vormt een aanvulling op de activiteit Suspend-Workflowhttps://go.microsoft.com/fwlink/?LinkId=267141, een opdracht in de werkstroom die de werkstroom onderbreekt.
De cmdlet Suspend-Job
werkt alleen voor werkstroomtaken. Het werkt niet aan standaardachtergrondtaken, zoals taken die zijn gestart met behulp van de Start-Job
-cmdlet.
Als u een werkstroomtaak wilt identificeren, zoekt u naar een waarde van PSWorkflowJob in de eigenschap PSJobTypeName eigenschap van de taak. Als u wilt bepalen of een bepaald aangepast taaktype de Suspend-Job
cmdlet ondersteunt, raadpleegt u de Help-onderwerpen voor het aangepaste taaktype.
Wanneer u een werkstroomtaak onderbreekt, wordt de werkstroomtaak uitgevoerd naar het volgende controlepunt, onderbroken en wordt onmiddellijk een werkstroomtaakobject geretourneerd. Als u wilt wachten totdat de taak is voltooid, gebruikt u de parameter Wait van Suspend-Job
of de cmdlet Wait-Job
. Wanneer de werkstroomtaak wordt onderbroken, wordt de waarde van de eigenschap State van de taak onderbroken.
Het correct onderbreken is afhankelijk van controlepunten. De huidige taakstatus, metagegevens en uitvoer worden opgeslagen in het controlepunt, zodat de werkstroomtaak kan worden hervat zonder verlies van status of gegevens. Als de werkstroomtaak geen controlepunten heeft, kan deze niet correct worden onderbroken. Als u controlepunten wilt toevoegen aan een werkstroom die u uitvoert, gebruikt u de algemene parameter PSPersist werkstroom. U kunt de parameter Forceren gebruiken om elke werkstroomtaak onmiddellijk op te schorten en een werkstroomtaak op te schorten die geen controlepunten heeft, maar de actie kan leiden tot verlies van status en gegevens.
Voordat u een taak-cmdlet gebruikt voor een aangepast taaktype, zoals een werkstroomtaak (PSWorkflowJob) importeert u de module die ondersteuning biedt voor het aangepaste taaktype, hetzij met behulp van de Import-Module
-cmdlet of met behulp van een cmdlet in de module.
Deze cmdlet is geïntroduceerd in Windows PowerShell 3.0.
Voorbeelden
Voorbeeld 1: Een werkstroomtaak op naam onderbreken
In dit voorbeeld ziet u hoe u een werkstroomtaak onderbreekt.
Met de eerste opdracht maakt u de Get-SystemLog
werkstroom. De werkstroom maakt gebruik van de CheckPoint-Workflow
-activiteit om een controlepunt in de werkstroom te definiëren.
De tweede opdracht maakt gebruik van de parameter AsJob die gebruikelijk is voor alle werkstromen om de Get-SystemLog
werkstroom uit te voeren als achtergrondtaak. De opdracht maakt gebruik van de algemene parameter JobName werkstroom om een beschrijvende naam voor de werkstroomtaak op te geven.
De derde opdracht maakt gebruik van de Get-Job
cmdlet om de LogflowJob
werkstroomtaak op te halen. In de uitvoer ziet u dat de waarde van de eigenschap PSJobTypeName PSWorkflowJob is.
De vierde opdracht gebruikt de Suspend-Job
cmdlet om de LogflowJob
taak te onderbreken. De taak wordt uitgevoerd naar het controlepunt en wordt vervolgens onderbroken.
#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
Voorbeeld 2: Een werkstroomtaak onderbreken en hervatten
In dit voorbeeld ziet u hoe u een werkstroomtaak onderbreekt en hervat.
Met de eerste opdracht wordt de LogWorkflowJob-taak onderbroken. De opdracht wordt onmiddellijk geretourneerd. In de uitvoer ziet u dat de werkstroomtaak nog steeds wordt uitgevoerd, ook al wordt deze onderbroken.
De tweede opdracht maakt gebruik van de Get-Job
cmdlet om de LogWorkflowJob-taak op te halen. In de uitvoer ziet u dat de werkstroomtaak is onderbroken.
De derde opdracht maakt gebruik van de Get-Job
cmdlet om de LogWorkflowJob-taak en de Resume-Job
cmdlet op te halen om deze te hervatten. In de uitvoer ziet u dat de werkstroomtaak is hervat en nu wordt uitgevoerd.
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
Voorbeeld 3: Een werkstroomtaak op een externe computer onderbreken
Invoke-Command -ComputerName Srv01 -Scriptblock {Suspend-Job -Filter @{CustomID="031589"}
Met deze opdracht wordt de Invoke-Command
-cmdlet gebruikt om een werkstroomtaak op de externe Srv01-computer op te schorten. De waarde van de parameter Filter is een hash-tabel waarmee een CustomID-waarde wordt opgegeven.
Dit CustomID- is taakmetagegevens (PSPrivateMetadata).
Voorbeeld 4: Wacht tot de werkstroomtaak is onderbroken
Suspend-Job VersionCheck -Wait
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
5 VersionCheck PSWorkflowJob Suspended True localhost LogWorkflow
Met deze opdracht wordt de werkstroomtaak VersionCheck onderbroken. De opdracht gebruikt de parameter Wait om te wachten totdat de werkstroomtaak is onderbroken. Wanneer de werkstroomtaak wordt uitgevoerd naar het volgende controlepunt en wordt onderbroken, wordt de opdracht voltooid en wordt het taakobject geretourneerd.
Voorbeeld 5: Een werkstroomtaak geforceerd onderbreken
Suspend-Job Maintenance -Force
Met deze opdracht wordt de werkstroomtaak Onderhoud geforceerd onderbroken. De onderhoudstaak heeft geen controlepunten. Het kan niet correct worden onderbroken en kan niet correct worden hervat.
Parameters
-Confirm
U wordt gevraagd om bevestiging voordat u de cmdlet uitvoert.
Type: | SwitchParameter |
Aliassen: | cf |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Filter
Hiermee geeft u een hash-tabel met voorwaarden. Met deze cmdlet worden taken onderbroken die aan alle voorwaarden voldoen. Voer een hashtabel in waarin de sleutels taakeigenschappen zijn en de waarden taakeigenschapswaarden zijn.
Type: | Hashtable |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Force
Hiermee wordt de werkstroomtaak onmiddellijk onderbroken. Deze actie kan leiden tot verlies van status en gegevens.
Standaard kunt Suspend-Job
de werkstroomtaak uitvoeren totdat het volgende controlepunt wordt uitgevoerd en deze vervolgens onderbreekt.
U kunt deze parameter ook gebruiken om werkstroomtaken die geen controlepunten hebben, te onderbreken.
Type: | SwitchParameter |
Aliassen: | F |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Id
Hiermee geeft u de id's van taken op die door deze cmdlet worden onderbroken.
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. Gebruik de cmdlet Get-Job
om de id van een taak te vinden.
Type: | Int32[] |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-InstanceId
Hiermee geeft u de exemplaar-id's van taken op die door deze cmdlet worden onderbroken. 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.
Type: | Guid[] |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Job
Hiermee geeft u de werkstroomtaken op die door deze cmdlet worden gestopt. Voer een variabele in die de werkstroomtaken bevat of een opdracht waarmee de werkstroomtaken worden ophaalt. U kunt werkstroomtaken ook doorsluisen naar de Suspend-Job
cmdlet.
Type: | Job[] |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Name
Hiermee geeft u beschrijvende namen van taken op die door deze cmdlet worden onderbroken. Voer een of meer namen van werkstroomtaken in. Jokertekens worden ondersteund.
Type: | String[] |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-State
Hiermee geeft u een taakstatus. Met deze cmdlet worden alleen taken met de opgegeven status gestopt. De acceptabele waarden voor deze parameter zijn:
- Niet gestart
- Lopend
- Volbracht
- Mislukt
- Gestopt
- Geblokkeerd
- Latent
- Verbroken
- Opschorting
- Stoppen
Suspend-Job
onderbreekt alleen werkstroomtaken in de status Actief.
Zie Opsomming JobStatevoor meer informatie over taakstatussen.
Type: | JobState |
Geaccepteerde waarden: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Wait
Geeft aan dat deze cmdlet de opdrachtprompt onderdrukt totdat de werkstroomtaak de status Onderbroken heeft. Standaard retourneert Suspend-Job
onmiddellijk, zelfs als de werkstroomtaak nog niet de status Onderbroken heeft.
De parameter Wait is gelijk aan het doorsluisen van een Suspend-Job
opdracht naar de Wait-Job
-cmdlet.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-WhatIf
Toont wat er zou gebeuren als de cmdlet wordt uitgevoerd. De cmdlet wordt niet uitgevoerd.
Type: | SwitchParameter |
Aliassen: | wi |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt alle soorten taken doorspezen naar deze cmdlet. Als Suspend-Job
echter een taak van een niet-ondersteund type krijgt, wordt er een afsluitfout geretourneerd.
Uitvoerwaarden
Met deze cmdlet worden de taken geretourneerd die zijn onderbroken.
Notities
Windows PowerShell bevat de volgende aliassen voor Suspend-Job
:
sujb
Het mechanisme en de locatie voor het opslaan van een onderbroken taak kunnen variëren, afhankelijk van het taaktype. Onderbroken werkstroomtaken worden bijvoorbeeld standaard opgeslagen in een plat bestandsarchief, maar kunnen ook worden opgeslagen in een database.
Als u een werkstroomtaak verzendt die niet de status Actief heeft, wordt er Suspend-Job
een waarschuwingsbericht weergegeven. Als u de waarschuwing wilt onderdrukken, gebruikt u de WarningAction algemene parameter met de waarde SilentlyContinue.
Als een taak niet van een type is dat ondersteuning biedt voor onderbreken, retourneert Suspend-Job
een afsluitfout.
Gebruik de parameter State van de Get-Job
-cmdlet om de werkstroomtaken te vinden die zijn onderbroken door deze cmdlet.
Sommige taaktypen hebben opties of eigenschappen die voorkomen dat Windows PowerShell de taak onderbreekt. Als pogingen om de taak te onderbreken mislukken, controleert u of de taakopties en eigenschappen het onderbreken toestaan.