Non sono sicuro se chiamarlo necessario per multi-threading, basato sul lavoro o asincrono, ma fondamentalmente ho una funzione di script di PowerShell che richiede diversi parametri e io è necessario chiamarlo più volte con parametri diversi e farlo funzionare in parallelo.Come eseguire una funzione di Powershell più volte in parallelo
Attualmente, io chiamo la funzione come questa:
Execute "param1" "param2" "param3" "param4"
Come posso chiamare questo più volte senza attendere per ogni chiamata a Execute ritorno al chiamante?
Attualmente sto correndo v2.0 ma posso aggiornare, se necessario,
EDIT: ecco quello che ho finora, che non funziona:
$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
ottengo un errore:
cannot convert 'system.object[]' to the type 'system.management.automation.scriptblock' required by parameter 'initializationscript'. specified method is not supported
EDIT2: ho modificato il mio script ma ottengo ancora l'errore menzionato sopra. Ecco il mio 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
sto ancora attraversando un periodo difficile mappatura la soluzione per ottenere il mio script per funzionare. Sto per iniziare in modo semplice, e cerco di avviare Start-Job per eseguire il mio scriptblock con gli argomenti richiesti dalla mia funzione personalizzata Execute. Forse puoi espandere? $ Foo è un parametro in aggiunta a quelli specificati da param ($ a, $ b)? – JohnZaj
Vedo ora, grazie. Ho comunque ricevuto l'errore. Se non sei sicuro di cosa potrebbe essere, creerò solo post/domanda separati. – JohnZaj
Per scopi di test sostituire la chiamata della funzione 'Execute()' con codice che fa semplicemente eco ai parametri. Funziona? Se lo fa, il problema si trova nella funzione che vuoi chiamare. –