понедельник, 25 января 2010 г.

Возможен ли аудит печати принтеров, подключенных через принт-сервер

После установки Windows Server 2008 R2 на одном из серверов компании столкнулся с интересной проблемой. К слову, сервер выполнял роль файлового сервера, сервера приложений, немножко веб-сервера и, до кучи, принт-сервера (ситуация вполне типична для небольшой фирмы). Итак, идея заключалась в возможность отследить кто и что отправлял на печать. Через принтер, подключенный на этом сервере, документов проходило не так уж много и сгодился бы отчет не сильно детализованный.


Задумка достаточно быстро была воплощена в жизнь следующим образом:
1) В оснастке Просмотр событий было активировано ведение журнала службой PrintService. Просмотр событий -> Журналы приложений и служб -> Microsoft -> Windows -> PrintService -> Работает правой клавишей Включить журнал
Собственно, в генерируемых событиях в этом журнале нас интересуют лишь события с кодом 307, которые и содержат информацию о названии документа, количестве страниц и т.п.

2) Настроим представление в оснастке Просмотр событий, где и отфильтруем события из вышеуказанного журнала по коду 307.

3) Можно даже прикрутить скрипт на PowerShell, который будет показывать нам напечатанные документы:

Get-WinEvent Microsoft-Windows-PrintService/Operational | where {$_.id -eq 307} | ft TimeCreated, Message

2 комментария:

Анонимный комментирует...

к сожалению, в данном формате вывода сообщение обрезается. уж лучше так | fl TimeCreated, Message

Анонимный комментирует...

Если почитать раздел помощи по команде, то узнаем что команда -wrap не обрезает строку и FL тогда можно не использовать.
Get-WinEvent Microsoft-Windows-PrintService/Operational | where {$_.id -eq 307} | ft TimeCreated, Message -wrap