2010-03-25 5 views

Répondre

3

essayer cette

Dim target 
Dim result 

target= "172.19.130.96" 

Set shell = WScript.CreateObject("WScript.Shell") 

Set shellexec = shell.Exec("ping " & target) 

result = LCase(shellexec.StdOut.ReadAll) 

If InStr(result , "reply from") Then 
    WScript.Echo "Server alive" 
Else 
    WScript.Echo "Not Alive" 
End If 

Il vous finissez peut-être de meilleures façons especialy donné objectif, mais cela devrait fonctionner et un point au moins vous dans la bonne direction.

+0

Vous, monsieur, êtes fantastiques. Merci pour la réponse rapide. –

2

est ici une solution alternative qui utilise la Win32_PingStatus classe WMI (note: cette classe est uniquement disponible sous Windows XP et versions ultérieures):

strServer = "stackoverflow.com" 

Set oWMI = GetObject("winmgmts:\\.\root\cimv2") 
Set oPing = oWMI.Get("Win32_PingStatus.Address='"& strServer & "'") 

If oPing.StatusCode = 0 Then 
    WScript.Echo "Server is available." 
Else 
    WScript.Echo "Server is not available." 
End If 

Plus échantillons de script ping ici: Why Doesn't My Ping Script Run on Windows 2000 Computers?

0

Pour vérifier si votre serveur de base de données est en hausse, vous pouvez utiliser des outils comme nmap. Ensuite, vous pouvez l'appeler dans votre vbscript en utilisant exec() comme d'habitude.

2

Si vous mettez à jour la commande ping afin qu'elle envoie seulement une requête d'écho, le script s'exécute plus rapidement, si vous avez un réseau non fiable, cela ne sera peut-être pas le meilleur.

Dim target 
Dim result 

target= "172.19.130.96" 

Set shell = WScript.CreateObject("WScript.Shell") 

Set shellexec = shell.Exec("ping -n 1 " & target) 

result = LCase(shellexec.StdOut.ReadAll) 

If InStr(result , "reply from") Then 
    WScript.Echo "Server alive" 
Else 
    WScript.Echo "Not Alive" 
End If 
Questions connexes