2016-03-28 16 views
1

Wenn ich den folgenden Code habe, ist es möglich, die Sammlung von Parametern, die an New-AutomationVM übergeben werden, an den internen Deploy-Workflow zu übergeben, ohne sie einzeln anzugeben.Parameter an verschachtelten Workflow übergeben

New-AutomationVM hat wahrscheinlich ~ 20 Parameter, und das wird ein beträchtlicher Code sein, der dann in einen zweiten internen Workflow integriert wird. (das scheint anfällig für Fehler)

Gibt es einen besseren Weg? (Ich bin sicher, irgendwann habe ich alle Parameter gelesen, in einer psobject Stil Variable enthalten ist, aber ich kann nicht einen Verweis auf sie nicht mehr finden)

workflow New-AutomationVM 
{ 
    Param($var1,$var2) 
    workflow Pre-DeploymentChecks 
    { Write-Output $true } 

    workflow Deploy 
    { 
     Param($var1,$var2) 
     $checkResult = Pre-DeploymentChecks 
    } 

    Deploy -var1 $var1 -var2 $var2 
} 
New-AutomationVM -var1 "var1" -var2 "var2" 

Antwort

1

Nicht so weit ich weiß. Die übliche Lösung wäre Deploy @PSBoundParameters, aber weder $PSBoundParameters noch Splatting sind in einem Workflow verfügbar.

Ein Splatting ist in Workflow-Aktivitäten oder in Aufrufen von Workflows nicht zulässig.

Quelle: Technet

Alle Windows Powershell automatische Variablen gültig sind in Workflows mit Ausnahme der automatischen Variablen in der folgenden Liste. Eine vollständige Liste der automatischen Variablen finden Sie unter about_Automatic_Variables unter .

• Args $

• $ Error

• MyInvocation $

• $ PID

$ PSBoundParameters

• $ PsCmdlet

• $ PS CommandPath

• $ PSScriptRoot

• $ Stacktrace

Quelle: Technet

+0

'$ PSBoundParameters' funktioniert nicht innerhalb von Workflows. – n01d

Verwandte Themen