homecomingservice
Goto Top

VBS mit Parametern starten, wie?

Hallo Leute ich hätte mal weider eine Frage :D


mein Script sieht wie folgt aus

Dim IP, OID, Version , modell, status, maxgedruckt, fagedruckt, swgedruckt, swmax, swatm, mamax, maatm, gemax
Dim cymax, cyatm, sw, ma, ge, cy, WshShell, oExec, name, result
Const intOK = 0
Const intWarning = 1
Const intCritical = 2
Const intUnknown = 3
IP = "***.***:***:***"  
OID = "1.3.6.1"  
Version = "v1"  

'SNMP-Abfrage vorgegebener Werte  
modell = SNMPAbfrage (Version, "***:***:***:***",".1.3.6.1.4.1.1347.40.10.1.1.5.1")  
If modell = "ErrSNMPprog" Then  
	'SNMP-Programm nicht vorhanden  
ElseIf modell <> "" Then  
	sernum = SNMPAbfrage (Version, IP, OID & ".2.1.43.5.1.1.17.1")  
	status = SNMPAbfrage (Version, IP, OID & ".2.1.25.3.5.1.1.1")  
	maxgedruckt =  SNMPAbfrage (Version, IP, OID & ".2.1.43.10.2.1.4.1.1")  
	fagedruckt =  SNMPAbfrage (Version, IP, OID & ".4.1.1347.42.2.2.1.1.3.1.2")  
	swgedruckt =  SNMPAbfrage (Version,IP, OID & ".4.1.1347.42.2.2.1.1.3.1.1")  
	swmax = SNMPAbfrage (Version, IP, OID & ".2.1.43.11.1.1.8.1.4")  
	swatm = SNMPAbfrage (Version, IP, OID & ".2.1.43.11.1.1.9.1.4")  
	mamax = SNMPAbfrage (Version, IP, OID & ".2.1.43.11.1.1.8.1.2")  
	maatm = SNMPAbfrage (Version, IP, OID & ".2.1.43.11.1.1.9.1.2")  
	gemax = SNMPAbfrage (Version, IP, OID & ".2.1.43.11.1.1.8.1.3")  
	geatm = SNMPAbfrage (Version, IP, OID & ".2.1.43.11.1.1.9.1.3")  
	cymax = SNMPAbfrage (Version, IP, OID & ".2.1.43.11.1.1.8.1.1")  
	cyatm = SNMPAbfrage (Version, IP, OID & ".2.1.43.11.1.1.9.1.1")  
	sw = (swatm * 100) / swmax
	ma = (maatm * 100) / mamax
	ge = (geatm * 100) / gemax
	cy = (cyatm * 100) / cymax
End If


'Ausgabe der Daten  
If modell = "" Then 'Gerät nicht erreichbar  
	Wscript.Echo "IP:" & " " & IP & "-" & "Statusabfrage nicht möglich"  
	Wscript.Quit(intUnknown)
ElseIf modell = "ErrSNMPprog" Then 'SNMP-Programm nicht vorhanden  
	Wscript.Echo "SNMPT-Programm nicht vorhanden"  
	Wscript.Quit(intCritical)
ElseIf sw <=5 or cy <=5 or ma <=5 or ge <=5 Then 'Tonerstand unter 5%  
	Wscript.Echo modell & " " & "(" & "SerNR" &" " & sernum & "/" & "IP" & " " & IP & ")" & "-" & "Tonerstand unter 5%" & "-" & "Zählerstand:" & " " & maxgedruckt & "(Farbe:" & " " & fagedruckt & "/SW:" & " " & swgedruckt & "-" & "Tonerstand: K" & " " & sw & "%" & "/C" & " " & cy & "%" & "/M" & " " & ma & "%" & "/Y" & " " & ge & "%"  
	Wscript.Quit(intCritical)
ElseIf sw <= 20 or cy <=20 or ma <=20 or ge <=20 Then 'Tonerstand unter 20%  
	Wscript.Echo modell & " " & "(" & "SerNR" &" " & sernum & "/" & "IP" & " " & IP & ")" & "-" & "Tonerstand unter 20%" & "-" & "Zählerstand:" & " " & maxgedruckt & "(Farbe:" & " " & fagedruckt & "/SW:" & " " & swgedruckt & "-" & "Tonerstand: K" & " " & sw & "%" & "/C" & " " & cy & "%" & "/M" & " " & ma & "%" & "/Y" & " " & ge & "%"  
	Wscript.Quit(intWarning)
Else 'Alles OK  
	Wscript.Echo  modell & " " & "(" & "SerNR" &" " & sernum & "/" & "IP" & " " & IP & ")" & "-" & status & "-" & "Zählerstand:" & " " & maxgedruckt & "(Farbe:" & " " & fagedruckt & "/SW:" & " " & swgedruckt & "-" & "Tonerstand: K" & " " & sw & "%" & "/C" & " " & cy & "%" & "/M" & " " & ma & "%" & "/Y" & " " & ge & "%"  
	Wscript.Quit(intOK)
End If	

'SNMP-Abfrage  
Public Function SNMPAbfrage (version, ipadresse, OID )
	Dim WshShell, oExec, name
	Set WshShell = CreateObject ("WScript.Shell")  
	Set oExec = WshShell.Exec ("snmpget -" & version & " -c public " & ipadresse & " " & OID)  
	Do While oExec.Status = 0
		WScript.Sleep 100
	Loop
	Do While oExec.StdOut.AtEndOfStream <> True
		name = oExec.StdOut.ReadLine
	Loop
	If inStr(name, Chr (34)) Then	
		searchleft = Chr (34)
		searchright = Chr (34)
		result = mid (name, instr(name, searchleft)+1, instrrev(name, searchright)-instr(name, searchleft)-1)
	Else
		result=right (name, len(name)-instrrev (name," "))  
	End If
	SNMPAbfrage = result
end function


Wie ihr sehn könnt weise ich in Zeile 16,17,18 meinen Variablen IP, OID und Version einen festen Wert zu nun möchte ich aber diese 3 Werte meiner VBS Datei beim Starten übergeben wie setze ich das am besten um?


Vielen Dank für eure Hilfe
Homecomingservice

Content-Key: 163905

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

Printed on: April 19, 2024 at 14:04 o'clock

Member: bastla
bastla Apr 04, 2011 at 12:19:52 (UTC)
Goto Top
Hallo homecomingservice!

Du kannst mit
Set arrArgs = WScript.Arguments
ein Array erzeugen, in dessen Elementen (ab Index 0) die einzelnen Parameter stehen.

Wenn Du vorweg prüfen willst, ob auch genug Argumente übergeben wurden, kannst Du dies mit
Arguments.Count
Grüße
bastla
Member: homecomingservice
homecomingservice Apr 04, 2011 at 12:25:10 (UTC)
Goto Top
Wenn ich das richtig verstanden habe läuft es dann so das ich die Parameter übergebe, diese in ein Array geschrieben werden, und von dort wieder ausgelesen werden und in die Variablen geschrieben werden? :D
Member: Pjordorf
Pjordorf Apr 04, 2011 at 12:29:18 (UTC)
Goto Top
Hallo,

Zitat von @homecomingservice:
Wenn ich das richtig verstanden habe läuft es dann so das ich die Parameter übergebe, diese in ein Array geschrieben
werden, und von dort wieder ausgelesen werden und in die Variablen geschrieben werden? :D
Nicht ganz.. Vielleicht solltest du dir mal http://technet.microsoft.com/en-us/library/ee156618.aspx oder http://msdn.microsoft.com/en-us/library/z2b05k8s(v=vs.85).aspx oder http://www.devguru.com/technologies/wsh/quickref/wscript_arguments.html ansehen.

Gruß,
Peter
Member: bastla
bastla Apr 04, 2011 at 12:42:32 (UTC)
Goto Top
Nicht ganz
... aber eigentlich doch:
Set arrArgs = WScript.Arguments
WScript.Echo arrArgs(0)
WScript.Echo arrArgs(1)
bzw eben
Set arrArgs = WScript.Arguments
IP = arrArgs(0)
OID = arrArgs(1)
WScript.Echo IP, OID
Aufruf:
cscript //nologo ArgsScript.vbs Arg1 "Arg 2"
Grüße
bastla
Member: homecomingservice
homecomingservice Apr 04, 2011 at 12:51:02 (UTC)
Goto Top
Vielen dank an bastla jetzt klappt es Perfekt :D
Member: bastla
bastla Apr 04, 2011 at 13:25:18 (UTC)
Goto Top
Hallo homecomingservice!

Freut mich, dass es soweit einmal passt face-smile - die von Pjordorf verlinkten Infos würde ich Dir aber trotzdem empfehlen ...

Grüße
bastla