如果我有以下代码,是否可以将传递给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"
答案 0 :(得分:1)
据我所知。通常的解决方案是Deploy @PSBoundParameters
,但工作流程中无法使用$PSBoundParameters
或splatting。
工作流活动或调用中不允许使用Splatting 工作流程。
来源:Technet
所有Windows PowerShell自动变量在工作流程中都有效, 除了以下列表中的自动变量。为一个 完整的自动变量列表,请参阅about_Automatic_Variables。
•$参数数量
•$错误
•$ MyInvocation
•$ PID
•的 $ PSBoundParameters 强>
•$ PsCmdlet
•$ PSCommandPath
•$ PSScriptRoot
•$堆栈跟踪
来源:Technet