Zoeken…


Invoering

PowerShell Workflow is een functie die is geïntroduceerd vanaf PowerShell versie 3.0. Workflowdefinities lijken erg op PowerShell-functiedefinities, maar worden uitgevoerd binnen de Windows Workflow Foundation-omgeving, in plaats van rechtstreeks in de PowerShell-engine.

Verschillende unieke "out-of-box" -functies zijn inbegrepen bij de Workflow-engine, met name taakbehoud.

Opmerkingen

De PowerShell Workflow-functie wordt exclusief ondersteund op het Microsoft Windows-platform, onder PowerShell Desktop Edition. PowerShell Core Edition, die wordt ondersteund op Linux, Mac en Windows, ondersteunt de PowerShell Workflow-functie niet.

Houd er bij het schrijven van een PowerShell-workflow rekening mee dat workflows activiteiten oproepen, geen cmdlets. U kunt nog steeds cmdlets aanroepen vanuit een PowerShell Workflow, maar de Workflow Engine zal impliciet de cmdlet-aanroep in een InlineScript activiteit InlineScript . U kunt ook expliciet code inpakken binnen de InlineScript activiteit, die PowerShell-code uitvoert; standaard wordt de InlineScript activiteit in een afzonderlijk proces uitgevoerd en wordt het resultaat InlineScript naar de aanroepende workflow.

Voorbeeld van een eenvoudige workflow

workflow DoSomeWork {
  Get-Process -Name notepad | Stop-Process 
}

Dit is een basisvoorbeeld van een PowerShell Workflow-definitie.

Workflow met invoerparameters

Net als PowerShell-functies kunnen workflows invoerparameters accepteren. Invoerparameters kunnen optioneel worden gebonden aan een specifiek gegevenstype, zoals een string, geheel getal, enz. Gebruik het standaard param sleutelwoord om een blok invoerparameters te definiëren, direct na de workflowdeclaratie.

workflow DoSomeWork {
  param (
    [string[]] $ComputerName
  )
  Get-Process -ComputerName $ComputerName
}

DoSomeWork -ComputerName server01, server02, server03

Werkstroom uitvoeren als achtergrondtaak

PowerShell-workflows zijn inherent uitgerust met de mogelijkheid om als achtergrondtaak te worden uitgevoerd. Om een workflow aan te roepen als een PowerShell-achtergrondtaak, gebruikt u de parameter -AsJob wanneer u de workflow -AsJob .

workflow DoSomeWork {
  Get-Process -ComputerName server01
  Get-Process -ComputerName server02
  Get-Process -ComputerName server03
}

DoSomeWork -AsJob

Voeg een parallel blok toe aan een workflow

workflow DoSomeWork {
  parallel {
    Get-Process -ComputerName server01
    Get-Process -ComputerName server02
    Get-Process -ComputerName server03
  }
}

Een van de unieke kenmerken van PowerShell Workflow is de mogelijkheid om een blok activiteiten parallel te definiëren. Om deze functie te gebruiken, gebruikt u het parallel trefwoord in uw workflow.

Het parallel oproepen van workflow-activiteiten kan helpen om de prestaties van uw workflow te verbeteren.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow