[VBS]Script balayage d'ip et remonter d'information
Bonjours,
Voilà, je vais tenter de vous expliquez clairement mon projet et mon problème:
Mon script a pour but :
-De scanner un réseau d'entreprise
-De vérifier si le processus iexplore.exe est lancé.
Pour cela je souhaite créer un .bat qui vas lancer un script master, ce script master va exécuter 4 autres script enfant.
Ces 4 script ont en faite le même rôle...
Ils ping une plage Ip puis remontent comme informations:
-si la machine est injouagnable(non connecté/ip inexistente)
-si la machaine est connecté
-si sur la machine connecté le processus iexplore.exe est activé
J'utilise 4 script pour découpé la plage ip qui se compose de cette manière:
-172.16.3.x (1 à 127; 128 à 254)
-172.16.9.x (1 à 127; 128 à 254)
voici le code :
Code:
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 30 31 32 33 34 35 36 37 38 39 40 41 42
| station ="172.16.3."
ON ERROR RESUME NEXT
for toto = 127 to 254
Newstation= station & toto
'wscript.echo Newstation
Set objShell = CreateObject("WScript.Shell")
Set objExec = objShell.Exec("ping -n 1 -w 1000 " & Newstation )
strPingStdOut = LCase(objExec.StdOut.ReadAll)
If InStr(strPingStdOut, "temps") Then
MachinesActive= MachinesActive +1
Set objWMIService = GetObject("winmgmts:\\" & Newstation & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Process")
for each ObjetProcessus in colitems
'Wscript.echo ObjetProcessus.name
If Lcase(ObjetProcessus.name)= "iexplore.exe" then
wscript.echo Newstation & "Processus actif"
Jesuisla=1
Cumul = cumul + 1
end if
next
if Jesuisla=0 then wscript.echo Newstation & "Processus inactif"
else
wscript.echo newstation & "Impossible de joindre l'hote"
end if
CumulTotal = CumulTotal + 1
next
wscript.echo "Machines connecté : " & MachinesActive
wscript.echo "Machine Non connecté : " & CumulTotal - MachinesActive
Wscript.echo "Processus Actif : " & cumul |
voilà !
Donc mon problème réside dans le résultat.
individuelement le script marche...
mais dé que je les lance à partir du script master (qui éxécute les 4 script en simultané) :
Code:
1 2 3 4 5
| Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run ("balayage1.vbs" )
WshShell.Run ("balayage2.vbs" )
WshShell.Run ("balayage3.vbs" )
WshShell.Run ("balayage4.vbs" ) |
le scan s'exécute mais n'affiche plus de résultat...
c a d que les 4 fenêtres se ferment une fois que le scan est fini.
mon but final est de pouvoir obtenir un résultat total...
c'est à dire d'additionner les résultats entre eux.
("Machines connecté" du script1 + celui du script 2,3 et 4 pour avoir un résultat finale... et ceci pareille avec "Machine non connecté" et "processus actif")
donc comment faire ? j'ai pensé comme solution de mettre le résultat final de chaque script dans un .txt puis faire une opération pour avoir un total.
est-ce réalisable ? de quel manière dois-je mi prendre ?
Je suis pas sur de m'ettre bien expliquer je veux résumé :
un .bat qui lance un script qui va exécuter 4 scripts en simultané qui vont balayé le réseau de l'entreprise pour savoir le nombre de machine connecté au reseau et le nombre de machine utilisant internet.
L soucis est au niveau de l'affichage du résultat.
Voilà j'espere avoir été claire !
je vous remercie d'avance pour votre patiente et vos réponses.