Einrichten des Print Service Operational Log

Um herauszufinden, wer am Druckserver welches Dokument gedruckt hat, ist im „Print Service Operational Log“ abhängig. Dieser ist per default deaktiviert, lässt sich aber ohne Probleme leicht aktivieren.

  1. Öffnen des Eventviewers (eventvwr.msc)
  2. Expandieren von „Application and Services“ – Microsoft – Windows – Print Service
  3. Klick mit rechter Maustaste auf Operational und „Enable Log“

manuelles Auswerten des Logs

Über den Eventviewer kann man dann den Log auswerten.

Es werden 7-8 Events für jeden Druckjob generiert. Manche Software erstellt sogar zwei 308er Einträge, in der Regel aber nur einer. Ein solcher Eintrag sieht folgendermaßen aus:

Document 102, Print Document owned by Administrator on \PRINTSERVER was printed on Kyocera TASKalfa 3252ci KX through port 192.168.0.50. Size in bytes: 684932. Pages printed: 1. No user action is required.

Was hier auffällt, das hier nicht der wirkliche Dokumentname gespeichert wird. (Scheinbar ist das seit 2012 per Design im Print Spooler Service wirklich nicht mehr vorgesehen). Glücklicherweise gibt es bei den Group Policies ein Setting, um das wieder zu aktivieren: Computer Configuration \ Administrative Templates \ Printers \ Allow job name in event logs 

powershell

Man kann darauf auch mit den Get-WinEvent zugreifen.

> $PrintEvents = Get-WinEvent -FilterHashtable @{LogName=’Microsoft-Windows-PrintService/Operational‘; StartTime=$DateFilter; ID=307}

Das $PrintEvent hat dabei folgende Eigenschaften:

In Powershell umgesetzt sieht das so aus:

Query Stats from The Spooler Service

Man kann über die Query Statistics des Spooler Service die Druckaufträge seit dem letzten Restart/Reset des „Print Spoolers“ auslesen.

Durch dieses Skript ermittelt man Pro Drucker die Anzahl der „TotalJobsPrinted“ und die „TotalPagesPrinted“. Dies verwende ich um die Daten von Get-WinEvent zu kontrollieren.

Welche Rechner sind am lokalen Rechner wie verbunden?

Aus Clientsicht ist interessant, welche Drucker nicht über den Druckerserver eingebunden wurden, beispielsweis durch den Betrieb lokaler Drucker usw. Das sollte ein Netzwerk-Verantwortlicher auch im Blick haben. Details dazu [hier]

Ergebnis

Code

Dashboard

Durch das Zusammenspiel der Skripte (fertig Lösung unter GitHub) ergibt sich folgendes Power BI Dasbhoard:

weiterführende Literatur / verwendete Quellen