gundelputz
Goto Top

Zählerstandsabfrage mit snmpget

Hallo alle zusammen,
ich bin ein absoluter PS Neuling habe mich aber schon mit der eine o. andere Programmiersprache beschäftigt.
Wie der Titel schon vermuten läst möchte ich von diversen Netzwerkdruckern die Zählerstände abfragen und dann speichern.
Mit Hilfe des snmpget Bbefehlst ist es mir bereits gelungen im PowerShellfenster einen Zählerstand zu ermitteln. leider weiss ich nicht wie ich nun den Wert in eine TXT speichern kann.

c:\snmpget -c puplic -v 2c 10.2.38.66 .1.3.6.1.4.1.1347.42.2.1.1.1.6.1.1
SNMPv2-SMI::enterprises.1347.42.1.1.1.6..1. = INTEGER: 8555

kann mir da jemand weiterhelfen?

Content-Key: 207297

Url: https://administrator.de/contentid/207297

Printed on: April 23, 2024 at 21:04 o'clock

Member: MrNetman
MrNetman May 31, 2013 updated at 14:01:31 (UTC)
Goto Top
Was wäre den die normale Umleitung?
am Ende der Zeile: erstellen, bzw anfügen
> "c:\Zählerstand.txt"
>> "c:\Zählerstand.txt"

Gruß
Netman
Member: Gundelputz
Gundelputz Jun 03, 2013 at 07:26:11 (UTC)
Goto Top
Das hab ich auch schon probiert. Aber wie immer lag der Teufel im Detail.
habe lediglich ein Lehrzeichen zwichen IP-Adresse und Pfad vergessen.
Nun stellt sich mir aber gleich ein anderes Problem.
die Abfrage über die Win7 Powershelleingabe funktioniert wie gewünscht und es wird eine Datei mit folgendem Inhalt ausgegeben :

SNMPv2-SMI::enterprises.1347.42.2.1.1.1.6.1.1 = INTEGER: 8376

packe ich aber alles in eine Batch-Datei so bekomme ich folgende Ausgabe:
SnmpGet v1.01 - Copyright (C) 2009 SnmpSoft Company

[ More useful network tools on http://www.snmpsoft.com ]

%Wrong parameter (will be ignored): public
%Wrong parameter (will be ignored): 2c
%Wrong parameter (will be ignored): 10.2.38.66
%Wrong parameter (will be ignored): .1.3.6.1.4.1.1347.42.2.1.1.1.6.1.1
%Obligatory parameter 'r' is missed. (Name or address of remote host)
%Obligatory parameter 'o' is missed. (Object ID of SNMP variable)

Ich gehe mal von einem groben Anfängerfehler aus. Daher hier mal der Inhalt meiner bat:

c:
cd usr
cd snmpget
snmpget -c public -v 2c 10.2.38.66 .1.3.6.1.4.1.1347.42.2.1.1.1.6.1.1 >"c:\usr\snmpget\Z.txt"
Member: MrNetman
MrNetman Jun 03, 2013 at 07:38:17 (UTC)
Goto Top
da ist ein Punkt for dem default SNMP-Pfad
.1.3.6.1.
statt
1.3.6.1.

GRuß
Netman
Member: Gundelputz
Gundelputz Jun 03, 2013 at 07:54:01 (UTC)
Goto Top
mit oder ohne Punkt spielt keine Rolle. kopiere ich die Befehlszeile in die PS-Eingabe so funtioniert es ja. Es wird auch mit einem Punkt vorneweg so beschrieben. habs abe noch mal ohne Erfolg so probiert.
Member: MrNetman
MrNetman Jun 03, 2013 at 09:38:25 (UTC)
Goto Top
Powershell oder cmd-Fenster?
Teste mal im cmd Fenster. Dort konnte ich mit open-SNMP (und anderen) viele Dinge machen.
Member: Gundelputz
Gundelputz Jun 03, 2013 at 10:07:28 (UTC)
Goto Top
bin mir nicht ganz sicher was du meinst. habe aber mal im cmd sowohl die Befehlszeile als auch die Start.bat getestet. Und weils so schön war das gleiche im PS. einzig die eingabe der Befehlszeile im PS-Fenster brachten den gewünschten erfolg.
Member: Gundelputz
Gundelputz Jun 03, 2013 at 10:13:53 (UTC)
Goto Top
hab mir mal überlegt alles in eine Variable zu packen und diese dann zu speichern. sieht bei mir dann so aus.

$z1
c:
cd usr
cd snmpget
snmpget.exe -c public -v 2c 10.2.38.66 .1.3.6.1.4.1.1347.42.2.1.1.1.6.1.1 >$z1
$z1>>"c:\usr\snmpget\Z.txt"

bringt mir aber nur ne leere Datei
Member: Gundelputz
Gundelputz Jun 03, 2013 at 10:26:06 (UTC)
Goto Top
hab jetzt noch mal ein anderes Tuturial durchgekaut und festgestellt das man statt .bat auch .ps1 als Dateiendung verwenden kann. dies eröffnet mir gleich völlig neue perspektiven. Hab jetzt herrausgefunden das es doch tatsächlich einen Editor für PS gibt und damit funktioniert es auch auf anhieb. bin gerade etwas Euphorisch oder so.
Vielen dank noch mal. Ich schreibe bestimmt gleich wieder wenn ich auf das näste Problem treffe.
Member: Gundelputz
Gundelputz Jun 03, 2013 at 11:13:23 (UTC)
Goto Top
und schon hab ich die nähste Frage.
da ich unterschiedliche Druckermodelle und IP-Adressen habe besteht nun folgendes Problem.
1. austausch der OID
2. austausch der Ip-Adressen
habe mir nun folgendes gedacht:
Mit hilfe eine TXT die IP's und OID's einlesen und anschliessend in EINE TXT ausgeben.Also erst einlesen der ersten Zeile aus txt dann abfragen und dann speichern in txt.
leider kann ich die dazu gehörigen Befehle nicht finden.
Member: Gundelputz
Gundelputz Jun 03, 2013 at 11:37:35 (UTC)
Goto Top
bin jetzt auf die Befehle Inport-csv und export-csv gestossen und würde diese gerne nutzen. habe gleich mal was probiert

[int]$var1
for ($var1=0; $var1 –lt 5)
{ $var1++ | export-csv c:\usr\snmpget\test1.csv }

bekomme dann eine csv in der in A1 "#TYPE System.Int32" steht.