Como executar uma função do PowerShell várias vezes em paralelo?
Não tenho certeza se devo chamar isso de uma necessidade de multi-threading, job-based ou async, mas basicamente eu tenho uma função de script Powershell que leva vários parâmetros e eu preciso chamá-lo várias vezes com parâmetros diferentes e tê-los em execução em paralelo.
Atualmente, eu chamo a função assim:
Execute "param1" "param2" "param3" "param4"
Como posso chamar isso várias vezes sem esperar por cada chamada para Executar retorno para o chamador?
Atualmente estou executando v2.0, mas posso atualizar se necessário
EDITAR: aqui está o que eu tenho até agora, o que não funciona:
$cmd = {
param($vmxFilePath,$machineName,$username,$password,$scriptTpath,$scriptFile,$uacDismissScript,$snapshotName)
Execute $vmxFilePath $machineName $username $password $scriptTpath $scriptFile $uacDismissScript $snapshotName
}
Start-Job -ScriptBlock $cmd -ArgumentList $vmxFilePath, $machineName, $username $password, $scriptTpath, $scriptFile, $uacDismissScript, $snapshotName
Eu recebo um erro:
Não é possível converter 'system.object []' para o tipo 'system.management.automation.scriptblock' exigido pelo parâmetro 'initializationscript'. o método especificado não é suportado
EDIT2: Modifiquei meu script, mas ainda recebo o erro mencionado acima. Aqui está meu mod:
$cmd = {
param($vmxFilePath,$machineName,$username,$password,$scriptTpath,$scriptFile,$uacDismissScript,$snapshotName)
Execute $vmxFilePath $machineName $username $password $scriptTpath $scriptFile $uacDismissScript $snapshotName
}
Start-Job -ScriptBlock $cmd -ArgumentList $vmxFilePath, $machineName, $username $password, $scriptTpath, $scriptFile, $uacDismissScript, $snapshotName