Quantcast
Channel: Tech-notes.fr » PowerShell
Viewing all articles
Browse latest Browse all 3

multi-thread en PowerShell

$
0
0

La commande suivante permet de lancer simultanément plusieurs fois un même script.

Ça peut être très utile dans le cas où ce script est particulièrement long à s’exécuter et que vous devez le faire tourner sur de multiples serveurs.

Dans cet exemple $servers_list contient 4 noms de serveurs que la cmdlet invoke-command vas passer en argument a mon_script.ps1, enfin le paramètre –asjob va nous affranchir du temps de traitement séquentiel de chaque exécution du invoke-command (voir la copie d’écran plus bas)

$servers_list = “c:\scripts\servers list.txt”

foreach ($server in gc $servers_list ) { invoke-command -computername mon_serveur -filepath “c:\scripts\mon_script.ps1″ -ArgumentList $server -asjob -JobName $server}

get-job permet de contrôler l’état des jobs, ici nous avons 4 job qui exécute la même commande car le fichier « c:\scripts\servers list.txt » contient 4 noms de serveurs.

receive-job affiche la sortie par défaut d’un job (une erreur, un write-host etc …) pour conserver cette sortie il faudra impérativement utiliser l’argument –keep faute de quoi la sortie est purgée.

J’ajoute que pour lancer plus de 5 jobs simultanéements il faut augmenter le nombre de shell :

cd WSMan:\localhost\Shell
set-Item .\MaxShellsPerUser 50


Viewing all articles
Browse latest Browse all 3

Latest Images

Trending Articles





Latest Images