http://dieseyer.de • all rights reserved • © 2011 v11.4

'*** v9.3 *** www.dieseyer.de ******************************
'
' Datei: wmi-ping.vbs
' Autor: dieseyer@gmx.de
' Auf: www.dieseyer.de
'
' Gibt 'kurzfristig' zurück, ob ein PC erreichbar ist.
'
'***********************************************************

Option Explicit ' Siehe http://dieseyer.de/dse-wsh-lernen.html#OptionExpl

Dim Tst, ZielPC
ZielPC = "129.0.0.1"
ZielPC = "127.0.0.1"

Tst = Timer

' If WMIpingOK( ZielPC ) = False Then
If not WMIpingOK( ZielPC ) Then
MsgBox ZielPC & vbCRLF & vbCRLF & "ist momentan nicht erreichbar!"& vbCRLF & vbCRLF & "Später noch einmal versuchen.", , Timer - Tst & " - " & WScript.ScriptName
WScript.Quit
End If

MsgBox ZielPC & vbCRLF & vbCRLF & "ist jetzt erreichbar!", , Timer - Tst & " - " & WScript.ScriptName

WScript.Quit


'*** v9.3 *** www.dieseyer.de ******************************
Function WMIpingOK( PCName )
'***********************************************************
' Aufruf z.B.: If not WMIpingOK( ZielPC ) Then MsgBox ZielPC & " ist nicht erreichbar." : WScript.Quit
Dim Tst, objPing, objStatus
On Error Resume Next
err.Clear
Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_PingStatus where address = '" & PCName & "'")
Tst = err.Number & " - " & err.Description
On Error Goto 0
If Len( Tst ) > 4 Then : WMIpingOK = "Fehler: " & Tst : Exit Function

WMIpingOK = True
For Each objStatus in objPing
If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then
' WScript.Echo("PCName " & PCName & " is not reachable")
WMIpingOK = False
End If
Next
Set objPing = Nothing
End Function ' WMIpingOK( PCName )

http://dieseyer.de • all rights reserved • © 2011 v11.4