Advertisement
Guest User

PrinterCopier

a guest
Jun 23rd, 2011
9,027
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ' Скрипт создает текстовый файл с данными по следующим критериям
  2. ' В группе "HP" собираем данные: Дата, IP, HostName, SerialNumber, TotalCouner
  3. ' Внимание!!!!! У принтеров P1606dn и P1505n oid для получения серийного номера отличается от стандартного у всей линейки НР
  4. ' В группе "HP-MultiPages" собираем данные: Дата, IP, HostName, SerialNumber, TotalCouner, SingleEq, DuplexEq, TotalEq
  5. ' сюда входят принтера серий 9500, P3005, 4345, M3027 и т.д., где есть дуплекс
  6. ' В группе "Ricoh" собираем данные: Дата, IP, HostName, SerialNumber, TotalCouner, Copier, Printer, A3, Duplex, Stapler
  7. ' сюда входят все Ricoh
  8.  
  9.  
  10. 'option Explicit
  11. Dim Pagecount_oid, HostName_oid, Server, Community
  12. Dim objFSO, objTextFile
  13.  
  14. '============ Settings ======================================
  15. PageCountTotal = "1.3.6.1.2.1.43.10.2.1.4.1.1"
  16.  
  17. HostName_HP = "1.3.6.1.2.1.1.5.0"
  18. SerNumber_HP = "1.3.6.1.2.1.43.5.1.1.17.1"
  19. SerNumber_NewHP = "1.3.6.1.4.1.11.2.3.9.4.2.1.1.3.3.0"
  20.  
  21. HostName_Ricoh = "1.3.6.1.4.1.367.3.2.1.6.1.1.7.1"
  22. SerNumber_Ricoh = "1.3.6.1.4.1.367.3.2.1.2.1.4.0"
  23.  
  24. ArrHP = Array ("192.168.10.1","192.168.10.3","192.168.10.5")
  25.  
  26. ArrHP_MultiPages = Array ("192.168.11.1","192.168.11.3","192.168.11.5","192.168.11.7",_
  27. "192.168.11.9","192.168.11.11","192.168.11.13","192.168.11.15",_
  28. "192.168.11.17","192.168.11.19","192.168.11.21","192.168.11.23",_
  29. "192.168.11.25","192.168.11.27","192.168.11.29","192.168.10.11",_
  30. "192.168.10.13","192.168.10.15","192.168.10.17","192.168.10.19")
  31.  
  32. ArrRicoh = Array ("192.168.10.7","192.168.10.9","192.168.11.31","192.168.11.33",_
  33. "192.168.11.35","192.168.11.37","192.168.11.39","192.168.11.41",_
  34. "192.168.11.43","192.168.11.45","192.168.11.47","192.168.11.49",_
  35. "192.168.11.51","192.168.11.53","192.168.11.55","192.168.11.57",_)
  36. '============================================================
  37.  
  38. '===Profile HP1 Printers (9500, P3005, 4345, M3027, etc)=====================
  39. SingleEq_HP = "1.3.6.1.4.1.11.2.3.9.4.2.1.1.16.1.1.1.26.0"
  40. DuplexEq_HP = "1.3.6.1.4.1.11.2.3.9.4.2.1.1.16.1.1.3.26.0"
  41. TotalEq_HP = "1.3.6.1.4.1.11.2.3.9.4.2.1.4.1.8.5.1.26.0"
  42.  
  43. '=== Profile Ricoh Printers NW-6500 , Dsm745, Dsm735 etc ==============
  44. Copier_Ricoh = "1.3.6.1.4.1.367.3.2.1.2.19.5.1.9.2" ' Copier
  45. Printer_Ricoh = "1.3.6.1.4.1.367.3.2.1.2.19.5.1.9.6" ' Printer
  46. A3_Ricoh = "1.3.6.1.4.1.367.3.2.1.2.19.5.1.9.9" ' A3
  47. Duplex_Ricoh = "1.3.6.1.4.1.367.3.2.1.2.19.5.1.9.10" ' Duplex
  48. Stapler_Ricoh = "1.3.6.1.4.1.367.3.2.1.2.19.5.1.9.11" ' Stapler
  49.  
  50.  
  51. Function getSNMPVal( server, oid)
  52. on error resume next
  53. dim strCommand
  54. Dim oShell
  55. Dim oScriptExec
  56. Dim snmpget_stdout
  57. dim retval
  58. Dim aRetSplit
  59.   strCommand = "SnmpGet.exe -r:" & server & " -t:5 -c:public" & " -o:" & oid
  60.  
  61.   Set oShell = CreateObject("WScript.Shell")
  62.   Set oScriptExec = oShell.Exec(strCommand)
  63.   snmpget_stdout = oScriptExec.StdOut.ReadAll
  64.  
  65.  
  66.   If InStr(snmpget_stdout, "Value=") > 0 Then
  67. aRetSplit = Split(snmpget_stdout, "Value=")
  68. retval = Replace(Trim(aRetSplit(1)), Chr(34), "")
  69.                      'delete double quotes
  70. retval = replace(retval, VbCrLf, "")
  71.                     ' with the stdout.readall method you get
  72.                      'crlf's at the end of your strings. e.g. asc(15) asc(10)
  73.     End if
  74.   getSNMPVal = retval
  75.  end Function
  76.  
  77.  Const ForAppending = 8
  78. Set objFSO = CreateObject("Scripting.FileSystemObject")
  79. Set objTextFile = objFSO.OpenTextFile _
  80.     ("PrinterLogs.txt", ForAppending, True)
  81.  
  82.  
  83. For Each Printer In ArrHP_MultiPages
  84. objTextFile.WriteLine (Date & ";" & Printer & ";" & getSNMPVal(Printer, HostName_HP) & ";" _
  85. & getSNMPVal(Printer, SerNumber_HP)& ";" & getSNMPVal(Printer, PageCountTotal)& ";" _
  86. & getSNMPVal(Printer, SingleEq_HP)& ";" & getSNMPVal(Printer, DuplexEq_HP)& ";" & getSNMPVal(Printer, TotalEq_HP))
  87. Next
  88.  
  89. For Each Printer In ArrHP
  90. objTextFile.WriteLine (Date &";" & Printer & ";" & getSNMPVal(Printer, HostName_HP) & ";" _
  91. & getSNMPVal(Printer, SerNumber_NewHP)& ";" & getSNMPVal(Printer, PageCountTotal) & ";;;")
  92. Next
  93.  
  94. For Each Printer In ArrRicoh
  95. If Printer <> "192.168.112.135" Then
  96. objTextFile.WriteLine (Date &";" & Printer & ";" & getSNMPVal(Printer, HostName_Ricoh) & ";"_
  97. & getSNMPVal(Printer, SerNumber_Ricoh)& ";" & getSNMPVal(Printer, PageCountTotal)& ";" & _
  98. getSNMPVal(Printer, Copier_Ricoh)& ";" & getSNMPVal(Printer, Printer_Ricoh)& ";" _
  99. & getSNMPVal(Printer, A3_Ricoh)& ";" & getSNMPVal(Printer, Duplex_Ricoh)& ";" & getSNMPVal(Printer, Stapler_Ricoh))
  100. Else objTextFile.WriteLine (Date &";" & Printer & ";" & getSNMPVal(Printer, HostName_Ricoh) _
  101. & ";" & getSNMPVal(Printer, SerNumber_Ricoh)& ";" & getSNMPVal(Printer, PageCountTotal)& ";;;;")
  102. End if
  103. Next
  104. objTextFile.Close
  105.  
  106. WScript.Sleep 5000
  107.  
  108. '====== открываем Excell с заранее прописанным макросом ==================
  109. Set oShell2 = CreateObject("WScript.Shell")
  110. oShell2.Run ("""C:\Program Files\Microsoft Office\OFFICE11\Excel.exe"" Printers-Copiers.xls"),1,True
  111.  
  112. WScript.Quit
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement