Bonjour tout le monde,
Je travaille sur un script capable de faire des requêtes ping sur une plage d'adresses IP entrée en paramètre avec une ip de début et une ip de fin. Le script récupère aussi le nom de l'équipement interrogé via la commande "ping -a".
Une première fonction "plageIP" s'occupe donc de récupérer la plage et d'envoyer à la variable "$plageIP" la liste des adresses à interroger sous forme de tableau.
La "fonction" workflow permet d'effectuer les ping en parallèle (d'après ce que j'ai compris). C'est ce workflow qui prend les paramètres ip de début (exemple : 192.168.1.1) et ip fin (exemple : 192.168.1.10) et qui les envoie à la fonction "plageIP" qui va donc au final renseigner "$plageIP" telle que :
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.6
192.168.1.7
192.168.1.8
192.168.1.9
192.168.1.10
Le problème c'est que je n'arrive pas à récupérer cette variable ($plageIP) dans le workflow afin de pouvoir effectuer les traitements de ping sur cette dernière.
Auriez-vous une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 function plageIP { Param ([string] $ipDebut, [string] $ipFin) $plage = $ipDebut.remove($ipDebut.LastIndexOf(".")) $début = $ipDebut.remove(0,$ipDebut.LastIndexOf(".")+1) $fin = $ipFin.remove(0,$ipFin.LastIndexOf(".")+1) $plageIP = $debut..$fin $plageIP = foreach ($i in $plageIP){"$plage.$i"} } Workflow Ping-Host { Param ([string] $ipDebut,[string] $ipFin) plageIP $ipDebut $ipFin ForEach -Parallel ($i in $plageIP) { If (Test-Connection -ComputerName $i -Count 2 -Quiet) { $ping = ping -a $i $nom0 = $ping[1].remove($ping[1].indexof("[") - 1) $nom00 = $nom0.remove(0,31) "$i, $nom00, alive" } Else { "$i is down" } } }
Partager