For the complete documentation index, see llms.txt. This page is also available as Markdown.

Workflows

Mit PowerShell Universal-Workflows können Sie Skripte und KI-Prompts zu einem einzigen Automatisierungsablauf verketten. Workflows sind nützlich, wenn Sie die Ausgabe eines Schritts an den nächsten übergeben, basierend auf vorherigen Ergebnissen verzweigen oder KI-gestützte Verarbeitung zwischen Automatisierungsschritten einfügen möchten.

Workflows können in der Admin-Konsole erstellt und über PowerShell verwaltet werden. Wenn ein Workflow ausgeführt wird, erstellt er einen Workflow-Job, den Sie über denselben Job-Verlauf überwachen können, der auch für Skripte verwendet wird.

Einen Workflow erstellen

Um einen Workflow in der Admin-Konsole zu erstellen, gehen Sie zu Automatisierung / Workflows und klicken Sie auf Workflow erstellen.

Workflows benötigen einen Namen und können optional Parameter definieren. Diese Parameter werden angezeigt, wenn der Workflow manuell gestartet wird, und stehen während der Ausführung Ausdrücken und Aktivitäten zur Verfügung.

Verwendung des Workflow-Designers

Der Workflow-Designer bietet einen visuellen Editor zum Anordnen und Konfigurieren Ihres Workflows. Wenn Sie einen Workflow öffnen, zeigt PSU den Designer für diese Workflow-Definition an.

Aktivitäten hinzufügen

PowerShell Universal unterstützt Skript- und KI-Prompt-Aktivitäten in Workflows. Im Hintergrund verwenden Workflows außerdem Container-Aktivitäten wie Flussdiagramm- und Sequenzknoten, um das Gesamtlayout zu definieren.

Um eine Aktivität hinzuzufügen, ziehen Sie sie aus dem Aktivitätsbereich auf der linken Seite des Designers in eine Ablagezone auf der Arbeitsfläche.

Aktivitätseigenschaften festlegen

Wählen Sie eine Aktivität aus, um ihre Eigenschaften im Bereich auf der rechten Seite zu bearbeiten. Die verfügbaren Eigenschaften hängen vom Aktivitätstyp ab.

Bei Skript-Aktivitäten stellt PSU die PowerShell-Parameter des Skripts als Aktivitätseigenschaften bereit. Dadurch ist es möglich, feste Werte oder Laufzeitausdrücke zu binden, ohne das Skript nur für die Workflow-Verwendung umschreiben zu müssen.

PowerShell-Ausdrücke verwenden

Einige Aktivitätseigenschaften unterstützen PowerShell-Ausdrücke. Ausdrücke werden zur Laufzeit ausgewertet und können auf Workflow-Eingabewerte und die Ausgabe der vorherigen Aktivität verweisen.

Verwenden Sie Ausdrücke, wenn ein Eigenschaftswert zur Laufzeit berechnet und nicht als fester Literalwert gespeichert werden soll. Beispielsweise können Sie ein Verhalten basierend auf einem Workflow-Parameter aktivieren oder deaktivieren oder Werte aus der Ausgabe des vorherigen Schritts auswählen.

Workflow-Daten

Ausdrücke und Aktivitäten können über integrierte Variablen auf den Workflow-Status zugreifen.

Workflow-Objekt

Verwenden Sie die Variable $Workflow in PowerShell-Ausdrücken, um auf Werte von Workflow-Parametern zuzugreifen.

Beispielsweise können Sie eine boolesche Eigenschaft basierend auf der ausgewählten Umgebung festlegen.

Sie können auch einen Zeichenfolgen-Workflow-Parameter direkt an eine Aktivitätseigenschaft übergeben.

Workflow-Parameter werden am Workflow selbst definiert. Verwenden Sie sie für Werte, die beim Start des Workflows bereitgestellt werden sollen, z. B. einen Umgebungsnamen, einen Aufbewahrungszeitraum oder ein Genehmigungsziel.

PSUItem

Die Variable $PSUItem bietet Zugriff auf die Ausgabe der vorherigen Aktivität. Der Objekttyp hängt davon ab, was diese Aktivität zurückgegeben hat.

Beispielsweise kann ein Skript $PSUItem als Eingabe akzeptieren.

Sie können PSUItem auch in KI-Prompts referenzieren.

Sie können $PSUItem oder $Output auch in PowerShell-Ausdrücken verwenden, um das Verhalten einer Aktivität basierend auf der Ausgabe der vorherigen Aktivität zu ändern.

Verwenden Sie $PSUItem, wenn Sie strukturierte Ausgaben von einer Aktivität an die nächste übergeben möchten. Dies ist der wichtigste Weg, mehrstufige Workflows zu erstellen, ohne Zwischenzustände an anderer Stelle zu speichern.

Deconstruct Hashtable Output

Überblick Deconstruct Hashtable Output steuert, was mit dem Rückgabewert eines Script-Schritts geschieht, sobald der Schritt abgeschlossen ist. Wenn aktiviert, nimmt PowerShell Universal eine vom Skript zurückgegebene Hashtable mit einem einzelnen Objekt und verteilt ihre Schlüssel/Werte in den Workflow-bezogenen Ausgabestatus, sodass nachgelagerte Schritte jeden Schlüssel als vollwertige Workflow-Ausgabe referenzieren können, anstatt in $PSUItem zu graben. Wenn deaktiviert, findet diese Verteilung nicht statt. Der nächste Schritt sieht die Rohausgabe des vorherigen Schritts weiterhin über $PSUItem, aber jeder Schlüssel muss manuell entpackt werden. Verhalten Wenn die Script-Aktivität abgeschlossen ist, führt PowerShell Universal Folgendes aus: 1. Liest die Pipeline-Ausgabe des Schritts. 2. Wenn DeconstructHashtableOutput true ist: • Fährt nur fort, wenn der Schritt genau ein Ausgabeobjekt mit nicht leeren Daten zurückgegeben hat. • Wenn das Basisobjekt eine Hashtable ist, wird jeder Schlüssel durchlaufen und jedes key → value-Paar in den Workflow-Ausgabestatus kopiert (zugänglich von nachgelagerten Schritten). 3. In jedem Fall wird die Rohausgabe für $PSUItem im nächsten Schritt gespeichert (Status der vorherigen Aktivität). Beispiel Skript für Schritt 1:

Mit DeconstructHashtableOutput = $true (Standard) kann Schritt 2 jeden Schlüssel direkt über den Workflow-Ausgabestatus referenzieren:

Durch das Festlegen des Ausgabestatus der Workflow-Aktivität kann die nachfolgende Aktivität die Ausgabe als Eingabe für passende Parameter erhalten.

Mit DeconstructHashtableOutput = $false sieht Schritt 2 die Hashtable weiterhin über $PSUItem und muss sie explizit entpacken:

Fallstricke • Genau ein Pipeline-Objekt. Die Dekonstruktion wird nur ausgelöst, wenn das Skript eine einzelne Ausgabe ausgibt. Jedes versehentliche Write-Output, jeder nicht unterdrückte Ausdruck oder jede unbeabsichtigte Ausgabe mehrerer Werte deaktiviert sie stillschweigend — selbst wenn die Einstellung aktiviert ist. Wenn Sie leere Workflow-Ausgaben sehen, wandeln Sie unerwünschte Ausgaben in $null um oder leiten Sie sie an Out-Null weiter, um die Pipeline auf eine einzelne Hashtable zu beschränken. • Nur Hashtable — nicht PSCustomObject. Der Code prüft das Basisobjekt auf Hashtable. [pscustomobject]@{ ... } wird nicht dekonstruiert. Verwenden Sie @{ ... }, wenn Sie das Verteilungsverhalten wünschen. • Leere Ausgaben oder Ausgaben mit Leerzeichen werden ignoriert. Wenn die einzelne Ausgabe des Skripts keine Daten enthält, wird die Dekonstruktion übersprungen. • $PSUItem funktioniert in beiden Fällen weiterhin. Das Deaktivieren der Einstellung unterbricht nicht den Zugriff auf die Ausgabe des vorherigen Schritts — es ändert nur, ob Schlüssel als benannte Workflow-Ausgaben verfügbar gemacht werden. Wann sollte sie deaktiviert werden Der Standardwert ($true) ist für die meisten Workflows die richtige Wahl. Deaktivieren Sie sie, wenn: • Ihr Skript legitim mehrere Pipeline-Objekte ausgeben muss und PSU nicht versuchen soll, Verteilungssemantik anzuwenden. • Sie möchten, dass nachgelagerte Schritte die Hashtable als einzelnes opakes Objekt über $PSUItem erhalten und das Entpacken selbst übernehmen. • Sie eine Hashtable zurückgeben, deren Schlüssel mit Namen kollidieren, die bereits im Workflow-Ausgabestatus vorhanden sind, und Sie ein Überschreiben vermeiden möchten. Festlegen des Werts über New-PSUWorkflowActivity

Beispiel für ein Workflow-Muster

Ein gängiges Muster ist:

  1. Führen Sie ein Skript aus, um Daten zu sammeln.

  2. Übergeben Sie die Ausgabe an einen KI-Prompt oder ein anderes Skript.

  3. Verwenden Sie das Ergebnis in einem abschließenden Skript, um eine Aktion auszuführen.

Zum Beispiel:

  • Eine Skript-Aktivität gibt eine Liste von Prozessen zurück.

  • Ein KI-Prompt identifiziert den Prozess, der den meisten Speicher verwendet.

  • Ein abschließendes Skript erhält dieses Ergebnis über $PSUItem und sendet eine Benachrichtigung.

Dieser Ansatz hält jeden Schritt fokussiert und erleichtert das Testen und die Fehlerbehebung des Workflows.

Workflows ausführen

Bei Bedarf

Workflows können bei Bedarf ausgeführt werden, indem Sie in der Admin-Konsole auf das Wiedergabesymbol klicken. Wenn der Workflow Parameter definiert, fordert PSU diese im Ausführungsdialog an. Nach dem Start des Workflows leitet PSU Sie zur Workflow-Job-Seite weiter.

Zeitplanung

Workflows unterstützen dieselben Zeitplanungsoptionen wie Skripte, einschließlich CRON-, einmaliger und kontinuierlicher Zeitpläne. Sie können Workflow-Zeitpläne über Automatisierung / Zeitpläne erstellen oder einen Zeitplan direkt dem Workflow zuweisen.

Verwenden Sie Zeitpläne, wenn der Workflow ohne manuelle Eingabe ausgeführt werden soll, z. B. für nächtliche Aufräumarbeiten, Umgebungsvalidierung oder periodische KI-gestützte Klassifizierung.

Invoke-PSUWorkflow

Invoke-PSUWorkflow ermöglicht es Ihnen, Workflows über PowerShell oder von anderen Teilen der PowerShell Universal-Plattform aus auszuführen. Wie bei Invoke-PSUScript können Sie beim Aufrufen des Workflows Parameterwerte angeben.

Workflows mit PowerShell verwalten

Sie können Workflows zusätzlich zur Admin-Konsole über das Universal-Modul verwalten.

Die zentralen Workflow-Cmdlets sind:

  • Get-PSUWorkflow

  • New-PSUWorkflow

  • Set-PSUWorkflow

  • Remove-PSUWorkflow

  • New-PSUWorkflowParameter

  • New-PSUWorkflowActivity

  • Invoke-PSUWorkflow

Workflow-Parameter definieren

Verwenden Sie New-PSUWorkflowParameter, um Metadaten für Workflow-Eingaben zu definieren, z. B. einen Standardwert, ob der Parameter erforderlich ist und den den Benutzern angezeigten Hilfetext.

Aktivitäten in PowerShell definieren

Verwenden Sie New-PSUWorkflowActivity, um Definitionen von Workflow-Aktivitäten zu erstellen.

  • Verwenden Sie -Parameters für literale Werte.

  • Verwenden Sie -Expressions für zur Laufzeit ausgewertete PowerShell-Ausdrücke.

  • Bei -Type Script kann PSU dynamische Parameter aus dem Zielskript bereitstellen.

Einen Workflow in PowerShell erstellen

New-PSUWorkflow akzeptiert entweder eine Rohdefinitionszeichenfolge oder einen Skriptblock, der eine einzelne Workflow-Aktivitätsdefinition zurückgibt.

Workflow-Ausführungen überwachen

Workflow-Ausführungen erscheinen im Job-Verlauf, genau wie Skript-Jobs. Verwenden Sie die Job-Seite, um Folgendes zu prüfen:

  • aktueller Status

  • Stream-Ausgabe

  • Pipeline-Ausgabe

  • Fehler

Dies ist der beste Ort, um fehlgeschlagene Workflow-Schritte zu beheben und die zwischen Aktivitäten übergebenen Daten zu überprüfen.

Fehlerbehebung

  • Wenn eine Eigenschaft zur Laufzeit berechnet werden soll, verwenden Sie einen Ausdruck anstelle eines festen Werts.

  • $PSUItem enthält nur die Ausgabe der vorherigen Aktivität. Die erste Aktivität in einem Workflow hat keine vorherige Ausgabe.

  • Eigenschaften von Skript-Aktivitäten basieren auf den Metadaten des Zielskripts. Wenn ein Skriptparameter nicht wie erwartet angezeigt wird, überprüfen Sie den Skriptpfad und den Parameternamen.

  • Namen von Aktivitätsparametern und Ausdrucksschlüssel müssen gültigen Eigenschaften für diesen Aktivitätstyp entsprechen.

  • Wenn Sie eine wiederkehrende Ausführung benötigen, hängen Sie einen Zeitplan an, anstatt den Workflow manuell aufzurufen.

Verwandte Themen

Zuletzt aktualisiert

War das hilfreich?