将参数传递给嵌套工作流程

时间:2016-03-28 07:56:41

标签: powershell

如果我有以下代码,是否可以将传递给New-AutomationVM的参数集传递给内部部署工作流,而无需单独指定它们。

New-AutomationVM可能有大约20个参数,这将是相当多的代码,然后集成到第二个内部工作流程中。 (这似乎容易出错)

有更好的方法吗? (我确定在某些时候我已经读过所有参数都包含在psobject样式变量中,但我不能再找到它的引用了)

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" 

1 个答案:

答案 0 :(得分:1)

据我所知。通常的解决方案是Deploy @PSBoundParameters,但工作流程中无法使用$PSBoundParameters或splatting。

  

工作流活动或调用中不允许使用Splatting   工作流程。

来源:Technet

  

所有Windows PowerShell自动变量在工作流程中都有效,   除了以下列表中的自动变量。为一个   完整的自动变量列表,请参阅about_Automatic_Variables。

     

•$参数数量

     

•$错误

     

•$ MyInvocation

     

•$ PID

     

•的 $ PSBoundParameters

     

•$ PsCmdlet

     

•$ PSCommandPath

     

•$ PSScriptRoot

     

•$堆栈跟踪

来源:Technet