Ping en VbScript [Résolu]

Messages postés
99
Date d'inscription
lundi 24 novembre 2003
Dernière intervention
15 avril 2014
- 7 oct. 2004 à 18:24 - Dernière réponse :
Messages postés
17
Date d'inscription
vendredi 11 avril 2003
Dernière intervention
16 mars 2010
- 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

Meilleure réponse
Messages postés
99
Date d'inscription
lundi 24 novembre 2003
Dernière intervention
15 avril 2014
- 12 oct. 2004 à 13:13
3
Merci
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

Merci fdthierry 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Messages postés
99
Date d'inscription
lundi 24 novembre 2003
Dernière intervention
15 avril 2014
- 7 oct. 2004 à 18:26
0
Merci
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
Messages postés
24
Date d'inscription
mercredi 26 mai 2004
Dernière intervention
25 mars 2005
- 11 déc. 2004 à 17:16
0
Merci
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
Messages postés
24
Date d'inscription
mercredi 26 mai 2004
Dernière intervention
25 mars 2005
- 11 déc. 2004 à 17:44
0
Merci
il faudra que je puisse voir si une machin dont on connasi le nom, est allumé
Messages postés
24
Date d'inscription
mercredi 26 mai 2004
Dernière intervention
25 mars 2005
- 12 déc. 2004 à 22:08
0
Merci
peut on m'aider svp?
Messages postés
99
Date d'inscription
lundi 24 novembre 2003
Dernière intervention
15 avril 2014
- 13 déc. 2004 à 19:29
0
Merci
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
Messages postés
99
Date d'inscription
lundi 24 novembre 2003
Dernière intervention
15 avril 2014
- 14 déc. 2004 à 15:09
0
Merci
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
Messages postés
24
Date d'inscription
mercredi 26 mai 2004
Dernière intervention
25 mars 2005
- 14 déc. 2004 à 15:17
0
Merci
merci bcp
Messages postés
1
Date d'inscription
dimanche 5 mars 2006
Dernière intervention
8 mars 2006
- 8 mars 2006 à 09:12
0
Merci
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
Messages postés
99
Date d'inscription
lundi 24 novembre 2003
Dernière intervention
15 avril 2014
- 8 mars 2006 à 18:32
0
Merci
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
Messages postés
17
Date d'inscription
vendredi 11 avril 2003
Dernière intervention
16 mars 2010
- 15 févr. 2009 à 10:31
0
Merci
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.