Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ' Скрипт создает текстовый файл с данными по следующим критериям
- ' В группе "HP" собираем данные: Дата, IP, HostName, SerialNumber, TotalCouner
- ' Внимание!!!!! У принтеров P1606dn и P1505n oid для получения серийного номера отличается от стандартного у всей линейки НР
- ' В группе "HP-MultiPages" собираем данные: Дата, IP, HostName, SerialNumber, TotalCouner, SingleEq, DuplexEq, TotalEq
- ' сюда входят принтера серий 9500, P3005, 4345, M3027 и т.д., где есть дуплекс
- ' В группе "Ricoh" собираем данные: Дата, IP, HostName, SerialNumber, TotalCouner, Copier, Printer, A3, Duplex, Stapler
- ' сюда входят все Ricoh
- 'option Explicit
- Dim Pagecount_oid, HostName_oid, Server, Community
- Dim objFSO, objTextFile
- '============ Settings ======================================
- PageCountTotal = "1.3.6.1.2.1.43.10.2.1.4.1.1"
- HostName_HP = "1.3.6.1.2.1.1.5.0"
- SerNumber_HP = "1.3.6.1.2.1.43.5.1.1.17.1"
- SerNumber_NewHP = "1.3.6.1.4.1.11.2.3.9.4.2.1.1.3.3.0"
- HostName_Ricoh = "1.3.6.1.4.1.367.3.2.1.6.1.1.7.1"
- SerNumber_Ricoh = "1.3.6.1.4.1.367.3.2.1.2.1.4.0"
- ArrHP = Array ("192.168.10.1","192.168.10.3","192.168.10.5")
- ArrHP_MultiPages = Array ("192.168.11.1","192.168.11.3","192.168.11.5","192.168.11.7",_
- "192.168.11.9","192.168.11.11","192.168.11.13","192.168.11.15",_
- "192.168.11.17","192.168.11.19","192.168.11.21","192.168.11.23",_
- "192.168.11.25","192.168.11.27","192.168.11.29","192.168.10.11",_
- "192.168.10.13","192.168.10.15","192.168.10.17","192.168.10.19")
- ArrRicoh = Array ("192.168.10.7","192.168.10.9","192.168.11.31","192.168.11.33",_
- "192.168.11.35","192.168.11.37","192.168.11.39","192.168.11.41",_
- "192.168.11.43","192.168.11.45","192.168.11.47","192.168.11.49",_
- "192.168.11.51","192.168.11.53","192.168.11.55","192.168.11.57",_)
- '============================================================
- '===Profile HP1 Printers (9500, P3005, 4345, M3027, etc)=====================
- SingleEq_HP = "1.3.6.1.4.1.11.2.3.9.4.2.1.1.16.1.1.1.26.0"
- DuplexEq_HP = "1.3.6.1.4.1.11.2.3.9.4.2.1.1.16.1.1.3.26.0"
- TotalEq_HP = "1.3.6.1.4.1.11.2.3.9.4.2.1.4.1.8.5.1.26.0"
- '=== Profile Ricoh Printers NW-6500 , Dsm745, Dsm735 etc ==============
- Copier_Ricoh = "1.3.6.1.4.1.367.3.2.1.2.19.5.1.9.2" ' Copier
- Printer_Ricoh = "1.3.6.1.4.1.367.3.2.1.2.19.5.1.9.6" ' Printer
- A3_Ricoh = "1.3.6.1.4.1.367.3.2.1.2.19.5.1.9.9" ' A3
- Duplex_Ricoh = "1.3.6.1.4.1.367.3.2.1.2.19.5.1.9.10" ' Duplex
- Stapler_Ricoh = "1.3.6.1.4.1.367.3.2.1.2.19.5.1.9.11" ' Stapler
- Function getSNMPVal( server, oid)
- on error resume next
- dim strCommand
- Dim oShell
- Dim oScriptExec
- Dim snmpget_stdout
- dim retval
- Dim aRetSplit
- strCommand = "SnmpGet.exe -r:" & server & " -t:5 -c:public" & " -o:" & oid
- Set oShell = CreateObject("WScript.Shell")
- Set oScriptExec = oShell.Exec(strCommand)
- snmpget_stdout = oScriptExec.StdOut.ReadAll
- If InStr(snmpget_stdout, "Value=") > 0 Then
- aRetSplit = Split(snmpget_stdout, "Value=")
- retval = Replace(Trim(aRetSplit(1)), Chr(34), "")
- 'delete double quotes
- retval = replace(retval, VbCrLf, "")
- ' with the stdout.readall method you get
- 'crlf's at the end of your strings. e.g. asc(15) asc(10)
- End if
- getSNMPVal = retval
- end Function
- Const ForAppending = 8
- Set objFSO = CreateObject("Scripting.FileSystemObject")
- Set objTextFile = objFSO.OpenTextFile _
- ("PrinterLogs.txt", ForAppending, True)
- For Each Printer In ArrHP_MultiPages
- objTextFile.WriteLine (Date & ";" & Printer & ";" & getSNMPVal(Printer, HostName_HP) & ";" _
- & getSNMPVal(Printer, SerNumber_HP)& ";" & getSNMPVal(Printer, PageCountTotal)& ";" _
- & getSNMPVal(Printer, SingleEq_HP)& ";" & getSNMPVal(Printer, DuplexEq_HP)& ";" & getSNMPVal(Printer, TotalEq_HP))
- Next
- For Each Printer In ArrHP
- objTextFile.WriteLine (Date &";" & Printer & ";" & getSNMPVal(Printer, HostName_HP) & ";" _
- & getSNMPVal(Printer, SerNumber_NewHP)& ";" & getSNMPVal(Printer, PageCountTotal) & ";;;")
- Next
- For Each Printer In ArrRicoh
- If Printer <> "192.168.112.135" Then
- objTextFile.WriteLine (Date &";" & Printer & ";" & getSNMPVal(Printer, HostName_Ricoh) & ";"_
- & getSNMPVal(Printer, SerNumber_Ricoh)& ";" & getSNMPVal(Printer, PageCountTotal)& ";" & _
- getSNMPVal(Printer, Copier_Ricoh)& ";" & getSNMPVal(Printer, Printer_Ricoh)& ";" _
- & getSNMPVal(Printer, A3_Ricoh)& ";" & getSNMPVal(Printer, Duplex_Ricoh)& ";" & getSNMPVal(Printer, Stapler_Ricoh))
- Else objTextFile.WriteLine (Date &";" & Printer & ";" & getSNMPVal(Printer, HostName_Ricoh) _
- & ";" & getSNMPVal(Printer, SerNumber_Ricoh)& ";" & getSNMPVal(Printer, PageCountTotal)& ";;;;")
- End if
- Next
- objTextFile.Close
- WScript.Sleep 5000
- '====== открываем Excell с заранее прописанным макросом ==================
- Set oShell2 = CreateObject("WScript.Shell")
- oShell2.Run ("""C:\Program Files\Microsoft Office\OFFICE11\Excel.exe"" Printers-Copiers.xls"),1,True
- WScript.Quit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement