Informationen über_Workflows
Kurze Beschreibung
Enthält eine kurze Einführung in das PowerShell-Workflowfeature.
Lange Beschreibung
PowerShell Workflow bietet die Vorteile der Windows Workflow Foundation für PowerShell und ermöglicht Ihnen das Schreiben und Ausführen von Workflows.
PowerShell Workflow wurde in PowerShell 3.0 eingeführt, und das Modul ist bis PowerShell 5.1 verfügbar. Weitere Informationen zum PowerShell-Workflow finden Sie im Leitfaden zu Workflows und unter Schreiben eines Windows PowerShell Workflows.
Informationen zu Workflows
Workflows sind Befehle, die aus einer geordneten Sequenz verwandter Aktivitäten bestehen. In der Regel werden sie über einen längeren Zeitraum ausgeführt, sammeln Daten von Hunderten von Computern und nimmt Änderungen daran vor, häufig in heterogenen Umgebungen.
Workflows können in XAML, der in Windows Workflow Foundation verwendeten Sprache oder in der PowerShell-Sprache geschrieben werden. Workflows sind in der Regel in Modulen gepackt und enthalten Hilfethemen. Weitere Informationen finden Sie unter ÜBERSICHT über XAML (WPF).
Workflows sind in einer IT-Umgebung wichtig, da sie Neustarts überstehen und nach häufigen Ausfällen automatisch wiederhergestellt werden können. Sie können die Verbindung mit Sitzungen und Computern, auf denen Workflows ausgeführt werden, trennen und wiederherstellen, ohne die Workflowverarbeitung zu unterbrechen, und Workflows transparent ohne Datenverlust anhalten und fortsetzen. Jede Aktivität in einem Workflow kann protokolliert und zu Referenzzwecken überwacht werden. Workflows können als Aufträge ausgeführt und mithilfe des Features Geplante Aufträge von PowerShell geplant werden.
Der Zustand und die Daten in einem Workflow werden am Anfang und Ende des Workflows und an den von Ihnen angegebenen Punkten gespeichert oder beibehalten. Workflowpersistenzpunkte funktionieren wie Datenbankmomentaufnahmen oder Programmprüfpunkte, um den Workflow vor den Auswirkungen von Unterbrechungen und Fehlern zu schützen. Wenn der Workflow nach einem Fehler nicht wiederhergestellt werden kann, können Sie die persistenten Daten verwenden und ab dem letzten Persistenzpunkt fortsetzen, anstatt einen umfangreichen Workflow von Anfang an erneut ausführen zu müssen.
Workflowanforderungen und -konfiguration
Eine PowerShell-Workflowkonfiguration besteht aus den folgenden Elementen:
- Ein Clientcomputer, auf dem der Workflow ausgeführt wird.
- Eine Workflowsitzung( PSSession) auf dem Clientcomputer oder auf einem Remotecomputer.
- Verwaltete Knoten, die Zielcomputer, die von den Workflowaktivitäten betroffen sind.
Die Workflowsitzung ist nicht erforderlich, wird jedoch empfohlen. PSSessions kann die robusten Funktionen für die Wiederherstellung und getrennte Sitzungen von PowerShell nutzen, um getrennte Workflowsitzungen wiederherzustellen. Weitere Informationen finden Sie unter about_Remote_Disconnected_Sessions
Da es sich bei dem Clientcomputer und dem Computer, auf dem die Workflowsitzung ausgeführt wird, um verwaltete Knoten handeln kann, können Sie einen Workflow auf einem einzelnen Computer ausführen, der alle Rollen erfüllt.
Auf dem Clientcomputer und dem Computer, auf dem die Workflowsitzung ausgeführt wird, muss PowerShell 3.0 ausgeführt werden. Alle berechtigten Systeme werden unterstützt, einschließlich der Server Core-Installationsoptionen von Windows Server-Betriebssystemen.
Zum Ausführen von Workflows, die Cmdlets enthalten, müssen die verwalteten Knoten über Windows PowerShell 2.0 oder höher verfügen. Für verwaltete Knoten ist PowerShell nur erforderlich, wenn der Workflow Cmdlets enthält. Sie können Workflows ausführen, die befehle Windows Management Instrumentation (WMI) und Common Information Model (CIM) auf Computern ohne PowerShell enthalten.
Abrufen von Workflows
Workflows werden in der Regel in Modulen gepackt. Verwenden Sie zum Importieren des Moduls, das einen Workflow enthält, einen beliebigen Befehl im Modul oder das Import-Module
Cmdlet .
Module werden bei der ersten Verwendung eines beliebigen Befehls im Modul automatisch importiert.
Um die Workflows in Modulen zu finden, die auf Ihrem Computer installiert sind, verwenden Sie den CommandType-Parameter des Get-Command
Cmdlets.
Get-Command -CommandType Workflow
Ausführen von Workflows
Führen Sie zum Ausführen eines Workflows das folgende Verfahren aus.
Wenn der verwaltete Knoten der lokale Computer ist, ist dieser Schritt nicht erforderlich. Andernfalls starten Sie PowerShell auf dem Clientcomputer mit der Option Als Administrator ausführen.
Start-Process PowerShell -Verb RunAs
Aktivieren Sie PowerShell-Remoting auf dem Computer, auf dem die Workflowsitzung ausgeführt wird, und auf verwalteten Knoten, die von Workflows betroffen sind, die Cmdlets enthalten.
Sie müssen diesen Schritt nur einmal auf jedem beteiligten Computer durchführen.
Dieser Schritt ist nur erforderlich, wenn Workflows ausgeführt werden, die Cmdlets enthalten. Sie müssen das Remoting nicht auf dem Clientcomputer aktivieren, es sei denn, die Workflowssitzung wird auf dem Clientcomputer oder auf allen verwalteten Knoten ausgeführt, auf denen PowerShell 3.0 ausgeführt wird.
Verwenden Sie zum Aktivieren von Remoting das
Enable-PSRemoting
Cmdlet .Enable-PSRemoting -Force
Sie können Das Remoting mithilfe der Einstellung Skriptausführung aktivieren Gruppenrichtlinie aktivieren. Weitere Informationen finden Sie unter about_Group_Policy_Settings und about_Execution_Policies.
Verwenden Sie die
New-PSWorkflowSession
Cmdlets oderNew-PSSession
, um die Workflowsitzung zu erstellen.Das
New-PSWorkflowSession
Cmdlet startet eine Sitzung, die die integrierte Sitzungskonfiguration Microsoft.PowerShell.Workflow auf dem Zielcomputer verwendet. Diese Sitzungskonfiguration umfasst Skripts, Typ- und Formatierungsdateien sowie Optionen, die für Workflows konzipiert sind.Oder verwenden Sie das
New-PSSession
Cmdlet . Verwenden Sie den ConfigurationName-Parameter , um die Sitzungskonfiguration Microsoft.PowerShell.Workflow anzugeben. Dieser Befehl entspricht der Verwendung desNew-PSWorkflowSession
Cmdlets.Eine Alternative ist die Verwendung des
New-PSSession
Cmdlets. Verwenden Sie den ConfigurationName-Parameter , um die Sitzungskonfiguration Microsoft.PowerShell.Workflow anzugeben.Auf dem lokalen Computer:
$ws = New-PSWorkflowSession
Auf einem Remotecomputer:
$ws = New-PSWorkflowSession -ComputerName Server01 ` -Credential Domain01\Admin01
Wenn Sie Administrator auf dem Workflowsitzungscomputer sind, können Sie das
New-PSWorkflowExecutionOption
Cmdlet verwenden, um benutzerdefinierte Optionseinstellungen für die Workflowsitzungskonfiguration zu erstellen. Verwenden Sie außerdem dasSet-PSSessionConfiguration
Cmdlet , um die Sitzungskonfiguration zu ändern.$sto = New-PSWorkflowExecutionOption -MaxConnectedSessions 150 Invoke-Command -ComputerName Server01 ` {Set-PSSessionConfiguration Microsoft.PowerShell.Workflow ` -SessionTypeOption $Using:sto} $ws = New-PSWorkflowSession -ComputerName Server01 ` -Credential Domain01\Admin01
Führen Sie den Workflow in der Workflowsitzung aus. Um die Namen der verwalteten Knoten und Zielcomputer anzugeben, verwenden Sie den allgemeinen PsComputerName-Workflowparameter .
In den folgenden Beispielen wird der Workflow mit dem Namen
Test-Workflow
ausgeführt.Dabei ist der verwaltete Knoten der Computer, der die Workflowsitzung hostet:
Invoke-Command -Session $ws {Test-Workflow}
Dabei handelt es sich bei den verwalteten Knoten um Remotecomputer.
Invoke-Command -Session $ws{ Test-Workflow -PSComputerName Server01, Server02 }
Im folgenden Beispiel wird auf
Test-Workflow
Hunderten von Computern ausgeführt. DasGet-Content
Cmdlet ruft die Computernamen aus einer Textdatei ab und speichert sie in der$Servers
Variablen auf dem lokalen Computer.Invoke-Command
verwendet den$Using
Bereichsmodifizierer, um die$Servers
Variable in der lokalen Sitzung zu definieren. Weitere Informationen zum$Using
Bereichsmodifizierer finden Sie unter about_Remote_Variables.$Servers = Get-Content Servers.txt Invoke-Command -Session $ws {Test-Workflow -PSComputerName $Using:Servers }
Verwenden allgemeiner Workflowparameter
Die allgemeinen Workflowparameter sind eine Reihe von Parametern, die PowerShell automatisch allen Workflows hinzufügt. PowerShell fügt allen Workflows die allgemeinen Cmdlet-Parameter hinzu, auch wenn der Workflow nicht das CmdletBinding-Attribut verwendet.
Der folgende Workflow definiert beispielsweise keine Parameter. Wenn Sie den Workflow jedoch ausführen, verfügt er sowohl über CommonParameters als auch über WorkflowCommonParameters.
workflow Test-Workflow {Get-Process}
Get-Command Test-Workflow -Syntax
Test-Workflow [<WorkflowCommonParameters>] [<CommonParameters>]
Die allgemeinen Workflowparameter umfassen mehrere Parameter, die für die Ausführung von Workflows wichtig sind. Beispielsweise gibt der allgemeine Parameter PSComputerName die verwalteten Knoten an, auf die sich der Workflow auswirkt.
Invoke-Command -Session $ws {
Test-Workflow -PSComputerName Server01, Server02
}
Der allgemeine PsPersist-Workflowparameter bestimmt, wann Workflowdaten beibehalten werden. Damit können Sie Workflows, die keine Persistenzpunkte definieren, Persistenzpunkte zwischen Aktivitäten hinzufügen.
Invoke-Command -Session $ws {
Test-Workflow -PSComputerName Server01, Server02 -PSPersist:$True
}
Mit anderen allgemeinen Workflowparametern können Sie die Merkmale der Remoteverbindung mit den verwalteten Knoten angeben. Ihre Namen und Funktionen ähneln den Parametern von Remoting-Cmdlets, einschließlich Invoke-Command
.
Invoke-Command -Session $ws {
Test-Workflow -PSComputerName Server01, Server02 -PSPort 443
}
Achten Sie darauf, die Remotingparameter, die die Verbindung für die Workflowsitzung definieren, von den PS-prefixed
allgemeinen Workflowparametern zu unterscheiden, die die Verbindung mit den verwalteten Knoten definieren.
$ws = New-PSSession -ComputerName Server01 -ConfigurationName Microsoft.PowerShell.Workflow
Invoke-Command -Session $ws {
Test-Workflow -PSComputerName Server01, Server02 -PSConfigurationName Microsoft.PowerShell.Workflow
}
Einige allgemeine Workflowparameter sind für Workflows eindeutig, z. B. der PSParameterCollection-Parameter , mit dem Sie unterschiedliche allgemeine Workflowparameterwerte für verschiedene Remoteknoten angeben können. Eine Liste und Beschreibung der allgemeinen Workflowparameter finden Sie unter about_WorkflowCommonParameters.
Siehe auch
Feedback
Feedback senden und anzeigen für