Bei Windows Systemen kann man auf das Problem stoßen, dass check_snmp_int.pl die gewünschte Karte nicht findet. Das hat damit zu tun, dass bei Windows Systemen (Win32) die DeviceDescr keinen reinen ASCII String enthält sondern den Namen als Hexadezimalwerte. Im Falle von Leerzeichen in der DeviceDescr wird die Karte dann oft gar nicht gefunden. Auf multi homed Systemen, z.B. wenn das Mainboard zwei Netzwerkanschlüsse hat, kann man aber beobachten, dass zumindest eine der Karten gefunden wird.
Beispiel: Zwei Broadcom NetXtreme Karten auf einem Testserver von denen nur die zweite angezeigt wird.
# ./check_snmp_int.pl -H 10.136.10.40 -C public -n B Broadcom NetXtreme Gigabit Ethernet #2:UP:1 UP: OK
Hier gibt es zwei Lösungsansätze: Man schreibt das Plugin so um, dass man direkt auf die OID zugreifen kann oder man ändert den Namen der Netzwerkkarte. Den ersten Ansatz sollte man vermeiden da sich die ID der Netzwerkkarte jederzeit ändern kann. Microsoft selbst dokumentiert in einem KB Artikel, dass es keine Einflussmöglichkeit gibt welche der Netzwerkkarten als erstes erkannt wird. Je nach PCI Timings, Treiber oder angeschlossenem Netzwerkkabel kann sich die ID der Karte auch bei einem einfachen Neustart ändern.
Der offiziell unterstützte Weg ist die Änderung des Namens der Netzwerkkarte. Dies geht zurzeit nur über den Registry Editor. Die unter „Netzwerkverbindungen“ angezeigten Namen sind nicht die Namen der Netzwerkkarte sondern die Namen der Netzwerkverbindungen, einer logischen Sicht auf die eigentliche Karte.
Der folgende Weg funktioniert bei allen Win32/64 Systemen (NT*, 2000, 2003, XP, Vista)
Der Name der Netzwerkkarte wird in HKLM\SYSTEM\CurrentControlSet\Enum\PCI\{UID} gespeichert. Man kann die exakte UID in einem anderen Schlüssel nachlesen, aber man findet die Karte schneller wenn man sich einfach durchklickt.
Im entsprechenden Schlüssel erstellt man einen Wert vom Typ REG_SZ bzw. Zeichenfolge mit dem Namen FriendlyName. Hier kann man nun den gewünschten Namen eingeben. Man sollte aber Sonder- und Leerzeichen vermeiden.
Man könnte auch den Wert DeviceDescr direkt abändern. Davon sollte man jedoch Abstand nehmen. Bei einem Treiberupdate wird dieser Wert meist überschrieben.
Wichtig: Normalerweise hat nur der System Account das Recht diese Schlüssel zu bearbeiten. Man muss sich erst die Rechte verschaffen indem mit administrativen Rechten einem Account Vollzugriff erteilt wird. Wer sicher gehen will entfernt diese Rechte danach wieder.
Übernommen werden die Änderungen erst, wenn man die Netzwerkkarte kurz de- und wieder aktiviert oder nach einem Neustart.
Beispiel: Die zuvor nicht gefundene Karte taucht nun mit dem Namen Intern auf.
# ./check_snmp_int.pl -H 10.136.10.40 -C public -n Broadcom NetXtreme Gigabit Ethernet #2:UP, Intern:UP:3 UP: OK
Auf Windows Systemen, auf denen VMware installiert ist, kann es vorkommen, dass man bis auf das VMware Bridge Protokoll alle Protokolle einer Karte deaktiviert hat. In diesem Fall kann man die physische Karte nicht mehr per SNMP ansprechen. Dies geht nur noch mit den (virtuellen) VMware Adaptern. Möchte man in diesem Fall die Karte dennoch abfragen, weil man beispielsweise wissen möchte welche Netzwerklast alle VMs zusammen verursachen, muss man mindestens das TCP/IP Protokoll aktivieren.
* Nicht getestet.