2016-03-28 82 views
1

如果我有以下代碼,是否可以將傳遞給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

不受限制,只要我知道了。通常的解決方案將是Deploy @PSBoundParameters,但在工作流程中都不可使用$PSBoundParameters或噴濺。

在工作流程活動或 工作流程的調用中不允許發生分層。

來源:Technet

所有Windows PowerShell自動變量在工作流程中有效, 除了在下面列表中的自動變量。對於 自動變量的完整列表,請參閱about_Automatic_Variables。

•$參數數量

•$錯誤

•$ MyInvocation

•$ PID

$ PSBoundParameters

•$ PsCmdlet

•$ PS COMMANDPATH

•$ PSScriptRoot

•$堆棧跟蹤

來源:Technet

+0

'$ PSBoundParameters'不工作流程中工作。 – n01d