Bonjour à tous,
Si quelqu'un pouvait me débloquer sur le sujet ça serait super.
J'ai une fonction qui me permet de récupérer des infos d'un fichier excel et de me stocker le tout dans une variable, jusque là pas de souci.
Par contre vu le nombre de fichiers excel à ouvrir, je me suis dit qu'il serait peut être bon de paralléliser le tout.
Donc je me penche sur la commande Start-Job.
Le problème vient du fait que ma commande Start-Job n'a pas l'air de vouloir exécuter mon code, le statut du job reste en Running, alors que c'est plutôt du rapide.
Petit exemple qui ouvre un fichier excel et l'enregistre :
Je me suis donc dit tout naturellement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $ObjExcel = New-Object -ComObject Excel.Application -Property @{"visible"=$false}; $ClasExcel = $ObjExcel.Workbooks.Add(); $ClasExcel.SaveAs("D:\Temp\test.xls"); $ObjExcel.Quit()que passé directement dans un Start-Job cela devait fonctionner direct.
Et bien non, du coup avec mes autres fonctions qui interrogent l'AD par exemple j'étais obligé de déclarer les "ressources" nécessaires pour faire appel à certains cmdlets, est-ce qu'ici c'est la même chose ? et si oui qui dois-je appeler
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Start-Job -ScriptBlock {$ObjExcel = New-Object -ComObject Excel.Application -Property @{"visible"=$false};$ClasExcel = $ObjExcel.Workbooks.Add();$ClasExcel.SaveAs("D:\Temp\test.xls");$ObjExcel.Quit()}
J'espère vraiment que quelqu'un a déjà eu le problème et donc la solution
Bien sûr je continue mes investigations et si je trouve, je partage.
Bien à vous,
Max
Partager