2016-03-28 19 views
1

Aşağıdaki koda sahip olduğum takdirde, Yeni-AutomationVM'ye aktarılan parametrelerin toplanmasını iç Dağıtım iş akışına tek tek belirtmeden geçirebilirsiniz.İç içe geçmiş iş akışına geçirme parametreleri

Yeni-AutomationVM'nin ~ 20 parametresine sahip olması muhtemeldir ve bu da ikinci bir dahili iş akışına entegre edilmesi için hatırı sayılır bir kod parçası olacaktır. (Bu hatalara açık gibi görünüyor)

Daha iyi bir yolu var mı?

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" 

cevap

1

olarak değil bildiğim kadarıyla (Ben psobject tarzı değişkeni dahil edilen tüm parametreleri hakkında okudum bir noktada eminim, ama ben bir daha ona bir başvuru bulamıyor). Genel çözüm, Deploy @PSBoundParameters olacaktır, ancak bir iş akışında $PSBoundParameters veya splatting kullanılamaz.

İş akışı etkinliklerinde veya iş akışlarına yapılan çağrılarda çimlenmeye izin verilmez.

Kaynak: Technet

Tüm Windows PowerShell otomatik değişkenler iş akışlarında geçerlidir, aşağıdaki listede otomatik değişkenler hariç . Otomatik değişkenlerin tam listesi için için about_Automatic_Variables bölümüne bakın.

• $ Args

• $ Hata

$ • $ MyInvocation

$ PID

• $ PSBoundParameters •

$ PsCmdlet •

• PS $ StackTrace

Kaynak • COMMANDPATH

• $ PSScriptRoot

: Technet

+0

'$ PSBoundParameters' iş akışları içinde çalışmıyor. – n01d

İlgili konular