Проблема здесь в том, что вы используете $using:
неправильный способ.
Ваш рабочий процесс — это, по сути, собственная песочница. Вы можете использовать $using для создания экземпляра переменной с теми же значениями внутри нее, но вы не можете использовать ее для управления той же переменной вне ее.
Однако рабочий процесс может создавать объект, а затем записывать его с помощью метода .Add() вашей переменной $newlist
Arraylist.
Настройте код так, и он должен работать:
#Moved the Arraylist declaration outside
$newList = [System.Collections.ArrayList]@()
workflow foreachpsptest {
param([string[]]$list)
foreach –parallel ($item in $list){
$num = Get-Random
InlineScript {
#use the using: context to pass along values, then emit the current object
"$using:num---$using:item"
}
}
}
$list = @("asd","zxc","qwe","cnsn")
#kick off the workflow and capture results in our arraylist
$newList.add((foreachpsptest -list $list))
Затем, после выполнения кода, мы можем получить значения, вот так.
$newList
58665978---qwe
173370163---zxc
1332423298---cnsn
533382950---asd
person
FoxDeploy
schedule
28.01.2016