# PRTG Custom Sensor to load HP8600 SNMPv1 and HTTP Data # # frank@carius.de # 20160330 Ver 1.0 Initial Version # param ( [string]$ip="192.168.178.4", # IP-Adress of Printer [string]$community="public" # SNMP Community ) #set-psdebug -strict # enforce strict variable checking write-host "Start prtg-HP8600" (get-date).tostring() write-host "Initializing PRTG Result variable" [string]$prtgresult="" $prtgresult+="`r`n" $prtgresult+="`r`n" [bool]$errorfound = $false write-host ("Parametercheck: IP-Address:" + $ip) try { # Klasse instanziere write-host " Creating Instance of olePrn.OleSNMP" $SNMP = new-object -ComObject olePrn.OleSNMP # SNMP Host mit IP-Adresse, Community, Retry und Timeout hinterlegen write-host " Configure olePrn.OleSNMP with IP $ip and Community $community" $snmp.open($ip,$community,2,3000) write-host " Start SNMP Gettree" $snmpresult = $snmp.gettree(".1.3.6.1.2.1.43.11.1.1") | select -last 16 } catch { write-host "Error using HTTP: Unable to load Configfile $configfile" $prtgresult+=" 2`r`n" $prtgresult+=" Error unable to get SNMP-Values`r`n" $errorfound = $true } [int]$lowestink = 100 if (!$errorfound) { foreach ($count in 0..3) { write-host "Processing $count" $inkstatus = [int](($snmpresult[$count+12] / $snmpresult[$count+8])*100) $prtgresult+=" `r`n" $prtgresult+=" Ink "+$snmpresult[$count]+"`r`n" $prtgresult+=" "+ $inkstatus +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" if ($inkstatus -lt $lowestink ) { $lowestink = $inkstatus } } } # Calculate lowestInkStatus $prtgresult+=" `r`n" $prtgresult+=" Ink Lowest`r`n" $prtgresult+=" "+ $lowestink +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" [xml]$hp8600data = $null [string]$pagestatusurl = "http://"+$ip+"/DevMgmt/ProductUsageDyn.xml" try { write-host (" Loading " + $pagestatusurl) #[System.Security.SecureString]$strSecurePass = ConvertTo-SecureString -String "password" -AsPlainText -Force #$Cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList ("Username", $strSecurePass) #$webpage = Invoke-Webrequest -uri $pagestatusurl -credential $cred -UseBasicParsing [xml]$hp8600data = (Invoke-Webrequest -usebasicparsing -uri $pagestatusurl).content } catch { # $error write-host "Unable to retrieve data via HTML" $prtgresult+=" 2`r`n" $prtgresult+=" ProtocolError:Unable to get HTML-Data. Check IP-Address and Link`r`n" $prtgresultcode = 3 } if (!$errorfound) { # Druck $prtgresult+=" `r`n" $prtgresult+=" Druck Mono`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.PrinterSubunit.MonochromeImpressions +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Druck Color`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.PrinterSubunit.ColorImpressions +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Druck Simplex`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.PrinterSubunit.SimplexSheets +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Druck Duplex`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.PrinterSubunit.DuplexSheets."#text" +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Papierstau`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.PrinterSubunit.JamEvents."#text" +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Druck Fehleinzug`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.PrinterSubunit.MispickEvents +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Druck LAN`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.PrinterSubunit.NetworkImpressions."#text" +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Druck wLAN`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.PrinterSubunit.WirelessNetworkImpressions."#text" +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" # Fax $prtgresult+=" `r`n" $prtgresult+=" Fax Total`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.FaxApplicationSubunit.TotalImpressions."#text" +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Fax Mono`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.FaxApplicationSubunit.MonochromeImpressions +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Fax Color`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.FaxApplicationSubunit.ColorImpressions +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Fax ADFSeiten`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.FaxApplicationSubunit.AdfImages +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Fax Auflagenglas`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.FaxApplicationSubunit.FlatbedImages +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Total Send to PC`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.FaxApplicationSubunit.ImagesSentToPC."#text" +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" ImagesReceivedFromPC`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.FaxApplicationSubunit.ImagesReceivedFromPC +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Fax ImagesSentToEmail`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.FaxApplicationSubunit.ImagesSentToEmail."#text" +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Fax ImagesSentToFolder`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.FaxApplicationSubunit.ImagesSentToFolder."#text" +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Fax TotalImagesSent`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.FaxApplicationSubunit.TotalImagesSent."#text" +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" # Kopierer $prtgresult+=" `r`n" $prtgresult+=" Copy Total`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.CopyApplicationSubunit.TotalImpressions."#text" +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Copy Color`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.CopyApplicationSubunit.ColorImpressions +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Copy Mono`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.CopyApplicationSubunit.MonochromeImpressions."#text" +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Copy AdfImages`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.CopyApplicationSubunit.AdfImages +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" $prtgresult+=" `r`n" $prtgresult+=" Copy Vorlagenglas`r`n" $prtgresult+=" "+ $hp8600data.ProductUsageDyn.CopyApplicationSubunit.FlatbedImages +"`r`n" $prtgresult+=" 0`r`n" $prtgresult+=" Absolute`r`n" $prtgresult+=" `r`n" } $prtgresult+="" if ($errorfound) { write-host "Error Found. Ending with EXIT Code" ([xml]$prtgresult).prtg.error } write-host "Sending PRTGRESULT to STDOUT" $prtgresult if ($errorfound) { exit ([xml]$prtgresult).prtg.error }