PowerShell
PowerShell-workflows
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.