PowerShell
PowerShell-Workflows
Suche…
Einführung
PowerShell Workflow ist eine Funktion, die ab PowerShell Version 3.0 eingeführt wurde. Workflow-Definitionen sehen PowerShell-Funktionsdefinitionen sehr ähnlich, werden jedoch innerhalb der Windows Workflow Foundation-Umgebung und nicht direkt in der PowerShell-Engine ausgeführt.
Die Workflow-Engine enthält mehrere einzigartige "Out-of-Box" -Funktionen, vor allem die Persistenz von Jobs.
Bemerkungen
Die PowerShell Workflow-Funktion wird ausschließlich auf der Microsoft Windows-Plattform unter PowerShell Desktop Edition unterstützt. PowerShell Core Edition, die unter Linux, Mac und Windows unterstützt wird, unterstützt die PowerShell Workflow-Funktion nicht.
Beachten Sie beim Erstellen eines PowerShell-Workflows, dass bei Workflows Aktivitäten und nicht Cmdlets aufgerufen werden. Sie können zwar weiterhin Cmdlets von einem PowerShell-Workflow aus aufrufen, die Workflow Engine wird jedoch den Aufruf des Cmdlets implizit in eine InlineScript
Aktivität InlineScript
. Sie können Code auch explizit in die InlineScript
Aktivität InlineScript
, die PowerShell-Code ausführt. Die InlineScript
Aktivität wird standardmäßig in einem separaten Prozess ausgeführt und gibt das Ergebnis an den aufrufenden Workflow zurück.
Einfaches Workflow-Beispiel
workflow DoSomeWork {
Get-Process -Name notepad | Stop-Process
}
Dies ist ein grundlegendes Beispiel für eine PowerShell Workflow-Definition.
Workflow mit Eingabeparametern
Genau wie die PowerShell-Funktionen können Workflows Eingabeparameter akzeptieren. Eingabeparameter können optional an einen bestimmten Datentyp gebunden werden, z. B. eine Zeichenfolge, eine Ganzzahl usw. Verwenden Sie das Standardschlüsselwort param
, um einen Block von Eingabeparametern direkt nach der Workflow-Deklaration zu definieren.
workflow DoSomeWork {
param (
[string[]] $ComputerName
)
Get-Process -ComputerName $ComputerName
}
DoSomeWork -ComputerName server01, server02, server03
Führen Sie den Workflow als Hintergrundjob aus
PowerShell-Workflows sind grundsätzlich mit der Möglichkeit ausgestattet, als Hintergrundjob ausgeführt zu werden. Verwenden -AsJob
zum Aufrufen eines Workflows als PowerShell-Hintergrundjob den Parameter -AsJob
, wenn Sie den Workflow aufrufen.
workflow DoSomeWork {
Get-Process -ComputerName server01
Get-Process -ComputerName server02
Get-Process -ComputerName server03
}
DoSomeWork -AsJob
Fügen Sie einem Workflow einen Parallelblock hinzu
workflow DoSomeWork {
parallel {
Get-Process -ComputerName server01
Get-Process -ComputerName server02
Get-Process -ComputerName server03
}
}
Eine der einzigartigen Funktionen von PowerShell Workflow ist die Möglichkeit, einen Aktivitätsblock als parallel zu definieren. Um diese Funktion zu verwenden, verwenden Sie das parallel
Schlüsselwort in Ihrem Workflow.
Durch das parallele Aufrufen von Workflowaktivitäten kann die Leistung Ihres Workflows verbessert werden.