Netzwerk-Monitoring in der Praxis
Netzwerk-Monitoring mit VB-Skript & WMI-Skript
von Thomas Bär - 30.07.2015
SNMP-Werte mit einem VB-Skript auslesen: Das Auslesen der SNMP-Werte von Geräten ist mit Hilfe von Windows einfach. Dieses Skript liest den Hostnamen, die Modellbezeichnung und den Speicherausbau aus. Speichern Sie das Skript mit der Dateinamenerweiterung .vbs und starten Sie es per Doppelklick. Die IP-Adresse und den Community-String passen Sie bei Bedarf an.
' IP-Adresse und Community-String bitte
' anpassen
strDeviceIP = "192.168.1.3"
strCommunity = "public"
' Fehlerhandler aktivieren und
' Fehlerstatus zurücksetzen
on error resume next
err.clear
' Erstelle Objekt und öffne es
set objSNMP = CreateObject("OlePrn.
OleSNMP")
objSNMP.Open strDeviceIP, strCommunity,
2, 1000
' Erster Zugriff dient dem Hostnamen
system_hostname = objSNMP.Get(".1.3.6.1.2.1.1.5.0")
if right(system_hostname,6) = ".local" then system_hostname = left(system_hostname,len(system_hostname)-6)
' War der erste Zugriff erfolgreich, so
' ist das System per SNMP erreichbar.
' Würde dieser Test nicht durchgeführt,
' käme es zu einer starken Verzögerung.
if err.number = 0 then
' Modeltyp auslesen
model = objSNMP.Get(".1.3.6.1.2.1.1.1.0")
' RAM auslesen und in MByte umrechnen
ram = objSNMP.Get(".1.3.6.1.2.1.25.2.2.0")
ram = ram /1024 & " MByte"
strOutput = strOutput & "Hostname: " & system_hostname & vbcrlf
strOutput = strOutput & "Modell: " & model & vbcrlf
strOutput = strOutput & "RAM: " & ram & vbcrlf
strOutput = strOutput & "IP: " &
strDeviceIP
wscript.echo strOutput
else
msgbox("SNMP auf " & strDeviceIP & " nicht erreicht.")
end if
' anpassen
strDeviceIP = "192.168.1.3"
strCommunity = "public"
' Fehlerhandler aktivieren und
' Fehlerstatus zurücksetzen
on error resume next
err.clear
' Erstelle Objekt und öffne es
set objSNMP = CreateObject("OlePrn.
OleSNMP")
objSNMP.Open strDeviceIP, strCommunity,
2, 1000
' Erster Zugriff dient dem Hostnamen
system_hostname = objSNMP.Get(".1.3.6.1.2.1.1.5.0")
if right(system_hostname,6) = ".local" then system_hostname = left(system_hostname,len(system_hostname)-6)
' War der erste Zugriff erfolgreich, so
' ist das System per SNMP erreichbar.
' Würde dieser Test nicht durchgeführt,
' käme es zu einer starken Verzögerung.
if err.number = 0 then
' Modeltyp auslesen
model = objSNMP.Get(".1.3.6.1.2.1.1.1.0")
' RAM auslesen und in MByte umrechnen
ram = objSNMP.Get(".1.3.6.1.2.1.25.2.2.0")
ram = ram /1024 & " MByte"
strOutput = strOutput & "Hostname: " & system_hostname & vbcrlf
strOutput = strOutput & "Modell: " & model & vbcrlf
strOutput = strOutput & "RAM: " & ram & vbcrlf
strOutput = strOutput & "IP: " &
strDeviceIP
wscript.echo strOutput
else
msgbox("SNMP auf " & strDeviceIP & " nicht erreicht.")
end if
Erreichbarkeit per WMI-Skript prüfen: Die Erreichbarkeit eines Hosts kann sowohl mit einem VB-Skript per Ping-Echo als auch mit einem WMI-Skript geprüft werden. Das folgende Skript nutzt WMI.
If Ping("192.168.0.1") Then
MsgBox("OK: Gewaehltes Ziel ist
erreichbar.")
Else
MsgBox("FEHLER: Ziel ist nicht
erreichbar.")
End If
Function Ping(strHost)
Dim objPing, objRetStatus, bolReturn
Set objPing = GetObject("winmgmts:
{impersonationLevel=impersonate}")._
ExecQuery("select * from Win32_PingStatus where address='"_
& strHost & "'")
For Each objRetStatus In objPing
If IsNull(objRetStatus.StatusCode) Or objRetStatus.StatusCode <> 0 Then
bolReturn = False
Else
bolReturn = True
End If
Set objRetStatus = Nothing
Next
Set objPing = Nothing
Ping = bolReturn
End Function
MsgBox("OK: Gewaehltes Ziel ist
erreichbar.")
Else
MsgBox("FEHLER: Ziel ist nicht
erreichbar.")
End If
Function Ping(strHost)
Dim objPing, objRetStatus, bolReturn
Set objPing = GetObject("winmgmts:
{impersonationLevel=impersonate}")._
ExecQuery("select * from Win32_PingStatus where address='"_
& strHost & "'")
For Each objRetStatus In objPing
If IsNull(objRetStatus.StatusCode) Or objRetStatus.StatusCode <> 0 Then
bolReturn = False
Else
bolReturn = True
End If
Set objRetStatus = Nothing
Next
Set objPing = Nothing
Ping = bolReturn
End Function