Suspend-Job

Werkstroomtaken tijdelijk stoppen.

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

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 Werkstroomhttps://go.microsoft.com/fwlink/?LinkId=267141 onderbreken. Dit is een opdracht in de werkstroom die de werkstroom onderbreekt.

De Suspend-Job cmdlet werkt alleen voor werkstroomtaken. Het werkt niet voor 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 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 tot de schorsing is voltooid voordat u de taak ophaalt, gebruikt u de parameter Wait van Suspend-Job of de Wait-Job cmdlet. 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 van de PSPersist-werkstroom . Met de parameter Force kunt u elke werkstroomtaak onmiddellijk onderbreken en een werkstroomtaak onderbreken 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 het aangepaste taaktype ondersteunt, 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 wordt de Get-SystemLog werkstroom gemaakt. De werkstroom gebruikt de CheckPoint-Workflow activiteit om een controlepunt in de werkstroom te definiëren.

De tweede opdracht maakt gebruik van de AsJob-parameter 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 gebruikt de Get-Job cmdlet om de Get-SystemLogJob 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 Get-SystemLogJob taak te onderbreken. De taak wordt uitgevoerd naar het controlepunt en wordt vervolgens onderbroken.

#Sample WorkflowWorkflow Get-SystemLog
{
    $Events = Get-WinEvent -LogName System
    CheckPoint-Workflow
    InlineScript {\\Server01\Scripts\Analyze-SystemEvents.ps1 -Events $Events}
}

PS C:\> Get-SystemLog -AsJob -JobName "Get-SystemLogJob"

PS C:\> Get-Job -Name Get-SystemLogJob
Id     Name              PSJobTypeName   State       HasMoreData     Location   Command
--     ----              -------------   -----       -----------     --------   -------
4      Get-SystemLogJob  PSWorkflowJob   Running     True            localhost   Get-SystemLog

PS C:\> Suspend-Job -Name Get-SystemLogJob
Id     Name              PSJobTypeName   State       HasMoreData     Location   Command
--     ----              -------------   -----       -----------     --------   -------
4      Get-SystemLogJob  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 gebruikt de Get-Job cmdlet om de LogWorkflowJob-taak op te halen. In de uitvoer ziet u dat de werkstroomtaak is onderbroken.

De derde opdracht gebruikt de Get-Job cmdlet om de LogWorkflowJob-taak en de cmdlet op te halen om deze Resume-Job te hervatten. In de uitvoer ziet u dat de werkstroomtaak is hervat en nu wordt uitgevoerd.

PS C:\> Suspend-Job -Name LogWorkflowJob
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Running       True            localhost            LogWorkflow

PS C:\> Get-Job -Name LogWorkflowJob
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Suspended     True            localhost            LogWorkflow

PS C:\> 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

PS C:\> Invoke-Command -ComputerName Srv01 -Scriptblock {Suspend-Job -Filter @{CustomID="031589"}

Met deze opdracht wordt de Invoke-Command cmdlet gebruikt om een werkstroomtaak op te schorten op de externe Srv01-computer. De waarde van de parameter Filter is een hash-tabel die een CustomID-waarde opgeeft. Deze CustomID is metagegevens van taken (PSPrivateMetadata).

Voorbeeld 4: Wacht tot de werkstroomtaak is onderbroken

PS C:\> 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

PS C:\> 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

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. 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
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Force

Hiermee wordt de werkstroomtaak onmiddellijk onderbroken. Deze actie kan leiden tot verlies van status en gegevens.

Suspend-Job Standaard kan de werkstroomtaak worden uitgevoerd tot het volgende controlepunt en wordt het vervolgens onderbroken. U kunt deze parameter ook gebruiken om werkstroomtaken die geen controlepunten hebben, te onderbreken.

Type:SwitchParameter
Aliases:F
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 Get-Job cmdlet om de id van een taak te vinden.

Type:Int32[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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. Als u de exemplaar-id van een taak wilt vinden, gebruikt u Get-Job.

Type:Guid[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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 doorschakelen naar de Suspend-Job cmdlet.

Type:Job[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-State

Hiermee geeft u een taakstatus. Met deze cmdlet worden alleen taken met de opgegeven status gestopt. De aanvaardbare waarden voor deze parameter zijn:

  • NotStarted
  • Wordt uitgevoerd
  • Voltooid
  • Mislukt
  • Gestopt
  • Geblokkeerd
  • Onderbroken
  • Ontkoppeld
  • Tijdelijk blokkeren
  • Stoppen

Suspend-Job onderbreekt alleen werkstroomtaken met de status Actief .

Zie De 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:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Wait

Geeft aan dat deze cmdlet de opdrachtprompt onderdrukt totdat de werkstroomtaak de status Onderbroken heeft. Retourneert standaard Suspend-Job onmiddellijk, zelfs als de werkstroomtaak nog niet de status Onderbroken heeft.

De wait-parameter is gelijk aan het doorsluisen van een Suspend-Job opdracht naar de Wait-Job cmdlet.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
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

Job

U kunt alle soorten taken doorspezen naar deze cmdlet. Als Suspend-Job er echter een taak van een niet-ondersteund type wordt opgehaald, wordt er een afsluitfout geretourneerd.

Uitvoerwaarden

Job

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, Suspend-Job wordt een waarschuwingsbericht weergegeven. Als u de waarschuwing wilt onderdrukken, gebruikt u de algemene parameter WarningAction met een waarde van SilentlyContinue.

Als een taak niet van een type is dat ondersteuning biedt voor onderbreken, Suspend-Job retourneert u een afsluitfout.

Als u wilt zoeken naar de werkstroomtaken die zijn onderbroken, inclusief taken die door deze cmdlet zijn onderbroken, gebruikt u de parameter State van de Get-Job cmdlet om werkstroomtaken op te halen in de status Onderbroken.

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.