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.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow