Была необходимость считать кол-во распечатанных листов на принтерах. Решений было множество, но они почему-то были то очень сложные. Нужно было устанавливать всем клиента в сети, то слишком не жизнеспособные. А хотелось простого, иметь кол-во распечатанных листов по каждому принтеру, каждым сотрудником. Благо все принтера сетевые и подключены на отдельном сервере. Это принесло пользу и простоту в решении проблемы.
Первое с чего хочу начать, потребуется небольшая консольная программа: 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, и разобрать его.
И получим такой результат:
Из этих полей мне обычно требуется 1-6 и 9 (кол-во напечатанных страниц).
А дальше применяем фильтры, группировки, считаем суммы, пишем обработчики. Это уже по личному желанию и по потребностям.
P.S. Небольшое дополнение – чтобы этот способ работал необходимо поставить галочку около «Log spooler information events» в Printers and faxes/Server properties/Advanced. (Спасибо onekz)


Хорошая статья! Сам давно думал, как бы это сделать самым простым способом.
P.S. Небольшое дополнение — чтобы этот способ работал необходимо поставить галочку около «Log spooler information events» в Printers and faxes/Server properties/Advanced.
Добавил в букмарки.
У меня большинство печатает не через сервак, а просто на сетевые принтеры, чтобы не было зависимости от сервака.
2 onekz
да, забыл написать. Спасибо.
2 nlws
Ну кому как удобней. У меня сервер печати на hyper-v, восстановить не проблема.
Динь, а что LogParser не использовать?
http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&displaylang=en#top
Можно и его использовать, результат будет тот же.
В логах не учитывается количество копий. Три копии по 10 листов в тексте лога будет 10 листов.
Если вы заметили, то это парсер для стандарного EventLog. Так что все вопросу к Microsoft. А если по существу, у нас количество напечатанных листов намного больше, чем кол-во печати копий.
Так же предлагаю вам использовать платные продукты, они позволяют это учитывать. А так же они позволяют вести БД печати, т.е. иметь возможность просмотреть что именно отправлялось в печать. Но продукты оказываются дороги в лицензирование, и на бумаге мы столько не напечатаем за пару лет перерасходов. По этой причине и отказались. Решили просто использовать такой скрипт, для получения приблизительной статистики.