Была необходимость считать кол-во распечатанных листов на принтерах. Решений было множество, но они почему-то были то очень сложные. Нужно было устанавливать всем клиента в сети, то слишком не жизнеспособные. А хотелось простого, иметь кол-во распечатанных листов по каждому принтеру, каждым сотрудником. Благо все принтера сетевые и подключены на отдельном сервере. Это принесло пользу и простоту в решении проблемы.

Первое с чего хочу начать, потребуется небольшая консольная программа: Dumpel.exe , входящая в состав “ресурс кита от windows 2000”. Она предназначена  для  дамба логов.

А дальше лишь дело техники, нужно узнать нужные нам ключи для дампа логов.

dumpel.exe -s localhost -l system -m print -format dts -e 10 -d 2 -t -f printlog.txt

Результат будет в таком формате:

12/9/2009    9:37:40    189    Печать документов [выписка]    shvedova    HP LaserJet P2015 Series PS    IP_192.168.0.231    18744    1
12/9/2009    9:39:21    190    Печать документов [выписка]    shvedova    HP LaserJet P2015 Series PS    IP_192.168.0.231    24708    1

Собственно вот и все. Мы получили нужные нам события из логов системы.

Теперь данный файл можно импортировать в Excel, и разобрать его.

Импорт Excel

И получим такой результат:

Импорт Excel ч.2

Из этих полей мне обычно требуется 1-6 и 9 (кол-во напечатанных страниц).

А дальше применяем фильтры, группировки, считаем суммы, пишем обработчики. Это уже по личному желанию и по потребностям.

P.S. Небольшое дополнение – чтобы этот способ работал необходимо поставить галочку около «Log spooler information events» в Printers and faxes/Server properties/Advanced. (Спасибо onekz)

, ,


7 комментариев

  1. Хорошая статья! Сам давно думал, как бы это сделать самым простым способом.

    P.S. Небольшое дополнение — чтобы этот способ работал необходимо поставить галочку около «Log spooler information events» в Printers and faxes/Server properties/Advanced.

  2. Добавил в букмарки.
    У меня большинство печатает не через сервак, а просто на сетевые принтеры, чтобы не было зависимости от сервака.

  3. Баканов Денис @ 2010-03-30 14:28

    2 onekz
    да, забыл написать. Спасибо.

    2 nlws
    Ну кому как удобней. У меня сервер печати на hyper-v, восстановить не проблема.

  4. Дмитрий Пономарев @ 2010-04-05 21:01
  5. Баканов Денис @ 2010-04-06 08:52

    Можно и его использовать, результат будет тот же.

  6. В логах не учитывается количество копий. Три копии по 10 листов в тексте лога будет 10 листов.

  7. Баканов Денис @ 2010-11-17 00:44

    Если вы заметили, то это парсер для стандарного EventLog. Так что все вопросу к Microsoft. А если по существу, у нас количество напечатанных листов намного больше, чем кол-во печати копий.

    Так же предлагаю вам использовать платные продукты, они позволяют это учитывать. А так же они позволяют вести БД печати, т.е. иметь возможность просмотреть что именно отправлялось в печать. Но продукты оказываются дороги в лицензирование, и на бумаге мы столько не напечатаем за пару лет перерасходов. По этой причине и отказались. Решили просто использовать такой скрипт, для получения приблизительной статистики.

Добавить новый комментарий