Delen via


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]
       [-Filter] <Hashtable>
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Suspend-Job
       [-Force]
       [-Wait]
       [-State] <JobState>
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Suspend-Job
       [-Force]
       [-Wait]
       [-InstanceId] <Guid[]>
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Suspend-Job
       [-Force]
       [-Wait]
       [-Name] <String[]>
       [-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

The first command creates the Get-SystemLog workflow. The workflow uses the CheckPoint-Workflow activity to define a checkpoint in the workflow.
#Sample WorkflowWorkflow Get-SystemLog
{
    $Events = Get-WinEvent -LogName System
    CheckPoint-Workflow
    InlineScript {\\Server01\Scripts\Analyze-SystemEvents.ps1 -Events $Events}
}

The second command uses the *AsJob* parameter that is common to all workflows to run the Get-SystemLog workflow as a background job. The command uses the *JobName* workflow common parameter to specify a friendly name for the workflow job.
PS C:\> Get-SystemLog -AsJob -JobName "Get-SystemLogJob"

The third command uses the **Get-Job** cmdlet to get the Get-SystemLogJob workflow job. The output shows that the value of the **PSJobTypeName** property is PSWorkflowJob.
PS C:\> Get-Job -Name Get-SystemLogJob
Id     Name              PSJobTypeName   State       HasMoreData     Location   Command
--     ----              -------------   -----       -----------     --------   -------
4      Get-SystemLogJob  PSWorkflowJob   Running     True            localhost   Get-SystemLog

The fourth command uses the **Suspend-Job** cmdlet to suspend the Get-SystemLogJob job. The job runs to the checkpoint and then suspends.
PS C:\> Suspend-Job -Name Get-SystemLogJob
Id     Name              PSJobTypeName   State       HasMoreData     Location   Command
--     ----              -------------   -----       -----------     --------   -------
4      Get-SystemLogJob  PSWorkflowJob   Suspended   True            localhost   Get-SystemLog

In dit voorbeeld ziet u hoe u een werkstroomtaak onderbreekt.

Voorbeeld 2: Een werkstroomtaak onderbreken en hervatten

The first command suspends the LogWorkflowJob job.The command returns immediately. The output shows that the workflow job is still running, even though it is being suspended.
PS C:\> Suspend-Job -Name LogWorkflowJob
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Running       True            localhost            LogWorkflow

The second command uses the **Get-Job** cmdlet to get the LogWorkflowJob job. The output shows that the workflow job suspended successfully.
PS C:\> Get-Job -Name LogWorkflowJob
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Suspended     True            localhost            LogWorkflow

The third command uses the **Get-Job** cmdlet to get the LogWorkflowJob job and the Resume-Job cmdlet to resume it. The output shows that the workflow job resumed successfully and is now running.
PS C:\> Get-Job -Name LogWorkflowJob | Resume-Job
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Running       True            localhost            LogWorkflow

In dit voorbeeld ziet u hoe u een werkstroomtaak onderbreekt en hervat.

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 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

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

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 kan Suspend-Job de werkstroomtaak uitvoeren tot het volgende controlepunt en vervolgens wordt onderbroken. 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-Jobom 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 cmdlet Suspend-Job.

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 alleen werkstroomtaken onderbreekt in de status Wordt uitgevoerd.

Zie JobState-opsomming in de MSDN-bibliotheek voor 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 wordt Suspend-Job onmiddellijk geretourneerd, zelfs als de werkstroomtaak nog niet de status Onderbroken heeft.

De parameter Wait is gelijk aan het doorschakelen 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

Job

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

Job

Met deze cmdlet worden de taken geretourneerd die zijn onderbroken.

Notities

  • 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 een waarschuwingsbericht weergeeft. 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 werkstroomtaken op te halen die zijn onderbroken door deze cmdlet om werkstroomtaken op te halen.

  • 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.