Netzwerk-Monitoring in der Praxis

Netzwerk-Monitoring mit VB-Skript & WMI-Skript

von - 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
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

Verwandte Themen