'*** 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 )