No estoy seguro de si esto se debe a una necesidad de multi-threading, basado en trabajo o asincrónico, pero básicamente tengo una función de script de Powershell que toma varios parámetros y necesita llamarlo varias veces con diferentes parámetros y hacer que se ejecuten en paralelo.Cómo ejecutar una función de Powershell varias veces en paralelo
la actualidad, que llame a la función como esta:
Execute "param1" "param2" "param3" "param4"
¿Cómo puedo llamar a esto varias veces sin esperar a que cada llamada a ejecutar retorno a la persona que llama?
Actualmente estoy ejecutando v2.0 pero puedo actualizar si es necesario
EDIT: esto es lo que tengo hasta ahora, que no 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
consigo un error:
cannot convert 'system.object[]' to the type 'system.management.automation.scriptblock' required by parameter 'initializationscript'. specified method is not supported
EDIT2: He modificado mi script, pero sigo teniendo el error mencionado anteriormente. Aquí está mi 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
Todavía estoy teniendo dificultades para mapear su solución para conseguir mi propio guión para trabajar. Comenzaré de forma simple, y solo intentaré que Start-Job ejecute mi scriptblock con los argumentos que requiere mi función personalizada, Execute. Tal vez puedes expandirte? ¿Es $ foo un parámetro además de los especificados por param ($ a, $ b)? – JohnZaj
Ahora veo, gracias. Aun así recibo el error. Si no está seguro de lo que podría ser, crearé una publicación/pregunta por separado. – JohnZaj
Para fines de prueba, reemplace la llamada de su función 'Execute()' con un código que solo haga eco de los parámetros. ¿Eso funciona? Si lo hace, el problema radica en la función a la que desea llamar. –