vbscript um mehrere IP Adressen bzw ein Subnet zu pingen

 

um zu sehen welche Rechner in einem Subnet antworten, setzt dieses Beispielscript einen ping auf alle Adressen ab und liefert das Ergebnis zurück.
Aufrufen in der Eingabeaufforderung über cscript pingsubnet.vbs (Sonst wird bei jedem erfolgreichen Pingversuch ein Fenster geöffnet)

 


Hier der Inhalt der pingsubnet.vbs:
Quellcode:

 

On Error Resume Next
Netz = InputBox ("Bitte Netz eingeben z.B. 192.168.0",,"x.x.x")

for j=1 to 254
strTarget=Netz & "." & j
  Set objShell = CreateObject("WScript.Shell")
  Set objExec = objShell.Exec("ping -n 1 -w 1000 " & strTarget)
  strPingResults = LCase(objExec.StdOut.ReadAll)
  If InStr(strPingResults, "empfangen = 1") Then
    WScript.Echo strTarget & " antwortet."
  Else
'   WScript.Echo VbCrLf & strTarget & " did not respond to ping."
  End If
Next
positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!

Fragen / Kommentare


(sortiert nach Bewertung / Datum) [alle Kommentare(neueste zuerst)]

✍anonym
30.05.2021 13:45
Tag/Monat mit führender Null auf zwei (oder mehr) Stellen erweitern:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Oftmals benötigt man eine "führende Null" in Datums (Monat oder Tag).
Die Funktion LZ ' LeadingZero erledigt das:
 Function LZ(val, digits)
  LZ=Right(String(digits,"0") & val, digits) ' wenn nur 1 Stelle breit, wird/werden eine/mehrere 0 davor gesetzt.
End Function
' über den Parameter digits, lässt sich die Anzahl der Gesamtstellen bestimmen: also 3=001 oder 5 = 00001

· Zum Einsatz kommt das Script z.B., wenn man das aktuelle Datum in einen Zahlenstring verwandeln will:
Tag=LZ(day(date),2)
Monat=LZ(month(date),2)
Jahr=year(date)
Wscript.Echo Jahr & Monat & Tag
' ergibt für heute z.B. 20210530

* Mit datepart lässt sich dies auch bewerkstelligen, z.B.
wscript.echo datepart("m",date) ' nur den Monat auslesen
Monat2=datepart("m",date)
Monat2=LZ(Monat2,2)
wscript.echo Monat2

User: Micha

✍anonym
28.01.2020 10:40
User: Jürgen 
SendKey ("^C") kopiert doch nur das Ergebnis in den Zwischenspeicher (entspricht CTRL + C) oder was ist der Effekt?

✍anonym
10.07.2018 14:21
User: Dennis 
Hallo zusammen, wie setzt man ein SendKey? Wie muss das Script angepasst werden, dammt es sich nicht gleich schließt? Vielen Dank 

✍anonym
29.04.2015 10:38
User: Manuel 
Und wo währe das zu setzen?

✍anonym
11.04.2015 01:16
User: Joachim 
Das Script ist gut, es wurde aber vergessen ein SendKey ("^C") zu setzen was dann zu leichten Irritationen führt.