Mit Powershell und SNMP Printserver und Druckerstatus auslesen

Jeder Admin kennt es das leidige Problem mit den Druckern deren Tonerständen oder Pagecountern, wenn diese mindestens einmal im Jahr ausgelesen und überprüft werden müssen. Mit Hilfe von Powershell und SNMP kann dies nun sehr bequem oder auch automatisiert erfolgen.

Das Script verbindet sich zum Windows Printserver mit „Get-Printer“, liest die dort eingerichteten Drucker mit deren IP-Adressen aus „$printer.PortName.ToString()“ und verbindet sich anschließend via SNMP zu den Drucker um deren Status zum Tonerstand und Pagecounter auszulesen.

„$SNMP = New-Object -ComObject olePrn.OleSNMP“ und “$SNMP.Open($printer_ip, „public“)“

Im Ergebnis wird eine CSV-Datei erstellt die dann bequem über Excel ausgewertet werden kann.

Es gibt allgemeine MIB die Druckername, Modell und Pagecounter zurückliefern. Wer genau wissen möchte, was der Drucker per SNMP alles zurückgeben kann, sollte einen SNMP-Walk machen.

Standard OID’s für die SNMP-Abfrage des Druckers

$drucker_serialnummer=$SNMP.get('.1.3.6.1.2.1.43.5.1.1.17.1')
$drucker_model=$SNMP.get('.1.3.6.1.2.1.43.5.1.1.16.1')
$pagecounter=$SNMP.get('.1.3.6.1.2.1.43.10.2.1.4.1.1')

herstellerspezifische SNMP OID’s für Ricoh Maschinen

$pagecounter_farbeausdruck=$SNMP.get('.1.3.6.1.4.1.367.3.2.1.2.19.5.1.9.17')
$pagecounter_farbkopien=$SNMP.get('.1.3.6.1.4.1.367.3.2.1.2.19.5.1.9.60')
$pagecounter_schwarz_weiss_audruck=$SNMP.get('.1.3.6.1.4.1.367.3.2.1.2.19.5.1.9.18')
$pagecounter_schwarz_weiss_kopien=$SNMP.get('.1.3.6.1.4.1.367.3.2.1.2.19.5.1.9.61')

$toner_k=$SNMP.get('.1.3.6.1.4.1.367.3.2.1.2.24.1.1.5.1')
$toner_c=$SNMP.get('.1.3.6.1.4.1.367.3.2.1.2.24.1.1.5.2')
$toner_m=$SNMP.get('.1.3.6.1.4.1.367.3.2.1.2.24.1.1.5.3')
$toner_y=$SNMP.get('.1.3.6.1.4.1.367.3.2.1.2.24.1.1.5.4')

Schreibe einen Kommentar