Ping en VbScript [Résolu]

fdthierry 99 Messages postés lundi 24 novembre 2003Date d'inscription 15 avril 2014 Dernière intervention - 7 oct. 2004 à 18:24 - Dernière réponse : jmvd2 17 Messages postés vendredi 11 avril 2003Date d'inscription 16 mars 2010 Dernière intervention
- 15 févr. 2009 à 10:31
Bonjour,

Est il possible d'effectuer un ping via le VBS d'une
station sans utiliser la fonction Shell.Run "Ping
192.168.1.1"
Ceci afin de travailler avec le résultat.

J'ai bien trouvé un script chez Microsoft Script Center,
mais il nécessite XP, je n'ai que Win2K Pro.

Amicalement
Thierry
Afficher la suite 

11 réponses

fdthierry 99 Messages postés lundi 24 novembre 2003Date d'inscription 15 avril 2014 Dernière intervention - 12 oct. 2004 à 13:13
+3
Utile
Bonjour,

en fait j'ai procédé autrement, j'ai redirigé mon résultat dans un filtemp puis analyze de ce fichier avec instr
Et ça roule au poil.

Merci tout de même.
Amicalement,
Thierry
Cette réponse vous a-t-elle aidé ?  
fdthierry 99 Messages postés lundi 24 novembre 2003Date d'inscription 15 avril 2014 Dernière intervention - 7 oct. 2004 à 18:26
0
Utile
J'ai essayé ceci mais il ne me génère pas mon fichier txt:

Dim WshShell, oExec
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec ("ping 192.168.1.1 > c:\VerifSys.txt")
Do While oExec.Status = 0
WScript.Sleep 300
Loop
WScript.Echo oExec.Status

Alors que sous Dos, cette commande fonctionne bien??

Amicalement
Thierry
dale02 24 Messages postés mercredi 26 mai 2004Date d'inscription 25 mars 2005 Dernière intervention - 11 déc. 2004 à 17:16
0
Utile
peut on m'aider pour faire un ping a partir d'une machine win2000 sur d'autres machines du même type?

Il faut savoir que le server est sous windows2000 serveur et que c'est un domaine.. Car je sais que avec win 2003 c'est diff...

Merci de votre aide
dale02 24 Messages postés mercredi 26 mai 2004Date d'inscription 25 mars 2005 Dernière intervention - 11 déc. 2004 à 17:44
0
Utile
il faudra que je puisse voir si une machin dont on connasi le nom, est allumé
dale02 24 Messages postés mercredi 26 mai 2004Date d'inscription 25 mars 2005 Dernière intervention - 12 déc. 2004 à 22:08
0
Utile
peut on m'aider svp?
fdthierry 99 Messages postés lundi 24 novembre 2003Date d'inscription 15 avril 2014 Dernière intervention - 13 déc. 2004 à 19:29
0
Utile
Bonsoir,

J'ai le source sur mon lieu de travail, je te mettrais cela dés demain ou ces prochains jours pour faire ce que tu souhaites.

Amicalement
Thierry
fdthierry 99 Messages postés lundi 24 novembre 2003Date d'inscription 15 avril 2014 Dernière intervention - 14 déc. 2004 à 15:09
0
Utile
Salut,

Comme promis voici mon code:
Il te reste plus qu'à faire un copier coller.

'---------------------------'
' Début du code '
'---------------------------'

'Déclaration des Constantes Const ForReading 1, ForWriting 2, ForAppending = 8

'Déclaration des Objets
Dim fso, srcFile, Ratio, Avance, strCheck, strMat0

Err = 0
Avance = 0

'Déclaration des Variables
strFile = "AdStations.txt"

strLog = "VerifStation.log"

strTemp = "FileTemp.txt"

strComputer = "."
strCheck = 0

'Définition des objets
Set fso = CreateObject("Scripting.FileSystemObject")
Set Shell = WScript.CreateObject("WScript.Shell")

'Vérification que le fichier listing des Stations existe bien
If Not (fso.FileExists(strFile)) Then
MsgBox "Le fichier " & strFile & " n'existe pas!",4144, "Erreur"
Wscript.quit
End if

Set srcFile = fso.OpenTextFile(strFile, ForReading, False)
Set txtLog = fso.OpenTextFile(strLog, ForWriting, True)

txtLog.WriteLine "================================================================================="
txtLog.WriteLine "Vérification des Stations démarré le: " & Now()
txtLog.WriteLine "Fichier de référence Station : " & strFile
txtLog.WriteLine "-----------------------------------------------------------------------"

Do While srcFile.AtEndOfStream <> True
strMateriel = "Station"
strLine = srcFile.ReadLine
Shell.run "cmd /c ping -n 2 -w 20000 " & strLine & " > " & strTemp, 0, True
strReponse = "Pas de réponse de la " & strMateriel & " -- ##"
Analyz() If strCheck 1 Then strReponse strMateriel & " fonctionnelle"
txtLog.WriteLine strLine & vbTab & "-" & vbTab & "-----> " & strReponse
Loop
srcFile.Close
txtLog.WriteLine "-----------------------------------------------------------------------"

txtLog.WriteLine "Vérification des Stations terminée le: " & Now()
txtLog.WriteLine "================================================================================="

txtLog.Close

'Consultation possible des Log
Journal= MsgBox ("Vérification du système terminée." & vbcrlf & vbcrlf & "Consultation du journal ?",4132 ,"Rapport")
If Journal = 6 Then
Return = Shell.Run ("%windir%\notepad.exe " & strLog, 3, TRUE)
End if

Set fso = Nothing
Set Shell = Nothing
Set txtLog= Nothing
Set fileTemp = Nothing

strComputer = ""
strCheck = ""
strFile = ""
strReponse = ""
strLog = ""
strTemp = ""

'============================================================'
' FONCTIONS '
'============================================================'
Function Analyz()
set filTemp = fso.OpenTextFile(strTemp, ForReading, True)
strCheck = 0
Do Until filTemp.AtEndOfStream = True
If InStr(filTemp.ReadLine, "octets=") > 0 Then
strCheck = 1
Exit Do
End If
Loop
filTemp.Close
Set DelFile = fso.GetFile(strTemp)
DelFile.Delete
End Function

'---------------------------'
' Fin du code '
'---------------------------'

Copie ce code dans un fichier que tu appelles comme tu veux.
Ensuite tu créés un fichier AdStations.txt dans le même répertoire ou se trouve le script avec un nom de machine par ligne c'est IMPERATIF.
Exemple:
MILL-00-TOTO
MAJ-03-ARBRE

Ne pas faire de retour chariot sur la dernière ligne.

Voilà, si tu as des questions, n'hésite pas.

Amicalement,
Thierry
dale02 24 Messages postés mercredi 26 mai 2004Date d'inscription 25 mars 2005 Dernière intervention - 14 déc. 2004 à 15:17
0
Utile
merci bcp
loamas 1 Messages postés dimanche 5 mars 2006Date d'inscription 8 mars 2006 Dernière intervention - 8 mars 2006 à 09:12
0
Utile
merci pour ton programme mais malgrés l'eesai avec le fichier AdStations.txt dans le même repertoire il me dit que ça ne fonctionne .merci d'avance de ton aide
fdthierry 99 Messages postés lundi 24 novembre 2003Date d'inscription 15 avril 2014 Dernière intervention - 8 mars 2006 à 18:32
0
Utile
Quel genre d'erreur as tu?

Il faut savoir que si un poste ne répond pas cela génère une erreur 462.

Pour éviter que ton script s'arrête sur une erreur, mets On Error Resume Next tout en haut du script VBS juste avant les constantes.

A ton service si besoin de plus d'aide?

Peux tu me donner le contenu de ton fichier AdStations.txt et ton VBS pour voir ;o)

Amicalement,
Thierry
jmvd2 17 Messages postés vendredi 11 avril 2003Date d'inscription 16 mars 2010 Dernière intervention - 15 févr. 2009 à 10:31
0
Utile
Salut Thierry, salut Loamas,
Et merci à Thierry pour ce code !!!!
Pour ma part je trouve ce code impec ! Il marche très bien !
j'y apporté quelques amélioration pour la V1.1 ;)
- La centralisation des logs dans un répertoire
- Le versionning de la log avec la date d'exécution dans le nom du fichier.

Ca donne ça :

'---------------------------'
' Début du code '
'---------------------------'


'Déclaration des ConstantesConst ForReading 1, ForWriting 2, ForAppending = 8


'Déclaration des Objets
Dim fso, srcFile, Ratio, Avance, strCheck, strMat0




''' Ajout perso
Aujourdhui = now()
Aujourdhui =  day(Aujourdhui) & "_" & month(Aujourdhui) & "_" & year(Aujourdhui)
Set objFSO = CreateObject("Scripting.FileSystemObject")


''' fin Ajout perso


Err = 0

Avance = 0'Déclaration des Variables
strFile = "ServerLst.txt"


strLog = "ServerTest.log"
strTemp = "objTextFile"


strComputer = "."
strCheck = 0


'Définition des objets
Set fso = CreateObject("Scripting.FileSystemObject")
Set Shell = WScript.CreateObject("WScript.Shell")

'Vérification que le fichier listing des serveurs existe bien
If Not (fso.FileExists(strFile)) Then
MsgBox "Le fichier " & strFile & " n'est pas présent!",4144, "Erreur"
Wscript.quit
End if
Set srcFile = fso.OpenTextFile(strFile, ForReading, False)
Set txtLog = fso.OpenTextFile("log\logping_" & Aujourdhui & ".txt", ForWriting, True)

txtLog.WriteLine "================================================================================="
txtLog.WriteLine "Vérification des Serveurs démarré le: " & Now()
txtLog.WriteLine "Fichier de référence Serveur : " & strFile
txtLog.WriteLine "-----------------------------------------------------------------------"


Do While srcFile.AtEndOfStream <> True
strMateriel = "Serveur"
strLine = srcFile.ReadLine
Shell.run "cmd /c ping -n 2 -w 20000 " & strLine & " > " & strTemp, 0, True
strReponse = "Pas de réponse du " & strMateriel & " - ALERTE !! "
Analyz()If strCheck 1 Then strReponse strMateriel & " fonctionnelle"
txtLog.WriteLine strLine & vbTab & "-" & vbTab & "-----> " & strReponse
Loop
srcFile.Close
txtLog.WriteLine "-----------------------------------------------------------------------"


txtLog.WriteLine "Vérification des Serveurs terminée le: " & Now()
txtLog.WriteLine "================================================================================="


txtLog.Close


'Consultation possible des Log
'Journal= MsgBox ("Vérification du système terminée." & vbcrlf & vbcrlf & "Consultation du journal ?",4132 ,"Rapport")
'If Journal = 6 Then
'Return = Shell.Run ("%windir%\notepad.exe " & strLog, 3, TRUE)
'End if


Set fso = Nothing
Set Shell = Nothing
Set txtLog= Nothing
Set fileTemp = Nothing


strComputer = ""
strCheck = ""
strFile = ""
strReponse = ""
strLog = ""
strTemp = ""

'============================================================'
' FONCTIONS '
'============================================================'
Function Analyz()
set filTemp = fso.OpenTextFile(strTemp, ForReading, True)
strCheck = 0
Do Until filTemp.AtEndOfStream = True
If InStr(filTemp.ReadLine, "octets=") > 0 Then
strCheck = 1
Exit Do
End If
Loop
filTemp.Close
Set DelFile = fso.GetFile(strTemp)
DelFile.Delete
End Function


'---------------------------'
' Fin du code '
'---------------------------'

J.Michel

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.