Benutzer mit den meisten Antworten
Fehlende Commandos vom PSWorkflow Modul (Windows 2008 R2 mit Powershell Version 3 )

Frage
-
Hallo Gemeinde,
ich bin etwas Rahtlos mit der Powershell 3.0 auf 2008 R2 Servern.
Die Installation der Powershell hat Problemlos funktioniert, wie folgende Ausgabe zeigt:
PS C:\temp> $PSVersionTable Name Value ---- ----- PSVersion 3.0 WSManStackVersion 3.0 SerializationVersion 1.1.0.1 CLRVersion 4.0.30319.17929 BuildVersion 6.2.9200.16398 PSCompatibleVersions {1.0, 2.0, 3.0} PSRemotingProtocolVersion 2.2
Nach dem Importieren des Modules PSWorkflow sind aber nur zwei neue Commandos vorhanden.
PS C:\temp> Import-Module PSWorkflow PS C:\temp> Get-Command -Module PSWorkflow CommandType Name ModuleName ----------- ---- ---------- Function New-PSWorkflowSession PSWorkflow Cmdlet New-PSWorkflowExecutionOption PSWorkflow
Ein Commando wie workflow ist nicht vorhanden.
Werden die Powershell Workflow's der Powershell Version 3.0 in der Variante für Win2008 R2 nicht unterstützt oder habe ich bei der Installation etwas übersehen.
Für die Installation haben wir folgende Packete verwendet: dotNetFx40_Full_x86_x64.exe, Windows6.1-KB2506143-x64.msu, PowerShellTools.MSI.
Vieleicht kann mir ja hier geholfen werden
Antworten
-
Nun, das liegt ganz einfach daran, das es keine Kommando Workflow gibt!
Workflow ist ein Schlüsselwort das mit der PowerShell 3.0 Script Sprache eingeführt wurde.Das Schlüsselwort Workflow wird wie das Schlüssel Wort Function benutzt.
man schreibt sozusagen Workflow Funktionen.
Workflows und die Aktivitäten des Workflows muss man also als Script selbst schreiben.Schau mal in diese Artikel Serie, dann wird dir einiges Klarer denke ich:
Einführung in Windows PowerShell Workflow
Wichtig!:
Bei Workflow Funktionen gilt es zu beachten, das diese NICHT von PowerShell ausgeführt werden sondern von der .NET Windows Workflow Foundation. Die PowerShell engine und die Workflow engine teilen sich die Arbeit in den PowerShell workflows.
Hier muss man immer wissen welche engine welchen teil des Codes ausführt. Da in dem jeweiligen Kontext nur die Möglichkeiten der jeweiligen engine zur Verfügung stehen.Innerhalb einer PowerShell Workflow Funktion stehen z.B NICHT alle Befehle und Schlüsselworte von PowerShell zu Verfügung! (Hauptsächlich, weil sie in Workflows keinen Sinn ergeben.)
Diese nicht erlaubten PowerShell elemente können aber in einem InlineScript-Block ausgeführt werden.
Der InlineScript-Block läuft immer im kontext der PowerShell engine. Dies bedeutet wiederum dass innerhalb eines InlineScript-Block keine Workflow befehle genutzt werden können.Man muss also immer genau wissen, in welchem Wald man gerade herumläuft um sich nicht zu verirren!
.
Meine PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
Mein deutscher PowerShell Blog
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+ | Deutsches PowerShell Forum (TechNet)
- Bearbeitet Peter Kriegel Donnerstag, 3. Oktober 2013 10:29
- Als Antwort markiert Alex Pitulice Freitag, 4. Oktober 2013 13:32
Alle Antworten
-
Nun, das liegt ganz einfach daran, das es keine Kommando Workflow gibt!
Workflow ist ein Schlüsselwort das mit der PowerShell 3.0 Script Sprache eingeführt wurde.Das Schlüsselwort Workflow wird wie das Schlüssel Wort Function benutzt.
man schreibt sozusagen Workflow Funktionen.
Workflows und die Aktivitäten des Workflows muss man also als Script selbst schreiben.Schau mal in diese Artikel Serie, dann wird dir einiges Klarer denke ich:
Einführung in Windows PowerShell Workflow
Wichtig!:
Bei Workflow Funktionen gilt es zu beachten, das diese NICHT von PowerShell ausgeführt werden sondern von der .NET Windows Workflow Foundation. Die PowerShell engine und die Workflow engine teilen sich die Arbeit in den PowerShell workflows.
Hier muss man immer wissen welche engine welchen teil des Codes ausführt. Da in dem jeweiligen Kontext nur die Möglichkeiten der jeweiligen engine zur Verfügung stehen.Innerhalb einer PowerShell Workflow Funktion stehen z.B NICHT alle Befehle und Schlüsselworte von PowerShell zu Verfügung! (Hauptsächlich, weil sie in Workflows keinen Sinn ergeben.)
Diese nicht erlaubten PowerShell elemente können aber in einem InlineScript-Block ausgeführt werden.
Der InlineScript-Block läuft immer im kontext der PowerShell engine. Dies bedeutet wiederum dass innerhalb eines InlineScript-Block keine Workflow befehle genutzt werden können.Man muss also immer genau wissen, in welchem Wald man gerade herumläuft um sich nicht zu verirren!
.
Meine PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
Mein deutscher PowerShell Blog
Mein 21 Teiliger PowerShell Video Grundlehrgang
Deutsche PowerShell Videos auf Youtube
Folge mir auf:
Twitter | Facebook | Google+ | Deutsches PowerShell Forum (TechNet)
- Bearbeitet Peter Kriegel Donnerstag, 3. Oktober 2013 10:29
- Als Antwort markiert Alex Pitulice Freitag, 4. Oktober 2013 13:32
-
Erstmal Danke für die Antwort.
Meine Unsicherheit bezüglich der Workflows kommt von dem Umstand das die Powershell das Schlüsselwort workflow z.B. nicht mit der Tab-Expansion kennt.
Auf die Idee einfach mal ein Beispiel (wie folgt) zu versuchen bin ich nicht gekommen. Sonst z.B. beim Importieren eines selbst erstellten PS-Modules kennt die Powershell die darin exportierten Kommandos ja auch ;-)
PS C:\temp> workflow Test-Workflow >> { >> "Retry count is $PSConnectionRetryCount." >> } >> PS C:\temp> Get-Command -Noun Workflow CommandType Name ModuleName ----------- ---- ---------- Workflow Test-Workflow PS C:\temp> Test-Workflow -PSConnectionRetryCount 4 Retry count is 4. PS C:\temp>
- Bearbeitet newnoob Montag, 7. Oktober 2013 06:48