So überwachen Sie die Druckernutzung mithilfe der Windows-Ereignisanzeige

Die Verwaltung von Druckerprotokollen unter Windows ist nicht ganz einfach, insbesondere wenn man nachverfolgen möchte, wer wann was gedruckt hat. Seltsamerweise protokolliert Windows standardmäßig nicht alle Druckvorgänge, was die Überprüfung und Fehlerbehebung erschwert. Für die Netzwerkverwaltung oder alle, die Druckaufträge besser im Blick behalten möchten, empfiehlt sich die Aktivierung der detaillierten Druckereignisprotokollierung. Sobald man sich damit vertraut gemacht hat, lassen sich Druckaufträge, Benutzerinformationen und sogar Größenangaben in der Ereignisanzeige einsehen. Mit etwas PowerShell-Code lassen sich die Protokolle analysieren oder Berichte als CSV-Datei exportieren. Es ist nicht perfekt – Windows gestaltet diese Vorgänge oft unnötig kompliziert –, aber es ist machbar und nützlich.

So aktivieren Sie die Druckprotokollierung in Windows

Methode 1: Ereignisprotokoll manuell aktivieren

Dieses Protokoll ist standardmäßig deaktiviert, da Windows gerne wichtige Informationen ausblendet, sofern Sie dies nicht explizit anweisen. Durch Aktivieren des Protokolls werden alle Druckaufträge inklusive Dateinamen und Benutzerinformationen angezeigt, was bei Prüfungen und der Fehlerbehebung sehr hilfreich ist.

  1. Öffnen Sie die Ereignisanzeige, indem Sie eventvwr.mscim Dialogfeld „Ausführen“ ( Win + R) eingeben und die Eingabetaste drücken.
  2. Navigieren Sie zu Anwendungs- und Dienstprotokolle > Microsoft > Windows > PrintService. Falls der Eintrag nicht angezeigt wird, müssen Sie möglicherweise die Ordner erweitern oder die erweiterten Optionen aktivieren.
  3. Klicken Sie mit der rechten Maustaste auf „Betriebsbereit“ und wählen Sie „Protokoll aktivieren“. Dadurch wird die Erfassung von Druckereignissen gestartet.
  4. Optional: Erhöhen Sie die maximale Protokollgröße, wenn Sie alle Druckdaten länger aufbewahren möchten. Klicken Sie mit der rechten Maustaste auf „Betriebsbereit“, wählen Sie „Eigenschaften“ und erhöhen Sie die Größe von 1 MB auf einen größeren Wert, z. B.10 MB oder mehr.

Alternativ können Sie, falls Sie die Befehlszeile bevorzugen, diesen Befehl einfach in PowerShell oder der Eingabeaufforderung ausführen:

wevtutil.exe sl Microsoft-Windows-PrintService/Operational /enabled:true

Das sollte die Protokollierung aktivieren. Nur zur Info: Bei manchen Konfigurationen benötigen Sie möglicherweise Administratorrechte oder eine kleine Anpassung der Gruppenrichtlinien, damit dies ordnungsgemäß funktioniert.

Methode 2: Aktivierung über Gruppenrichtlinie

Um sicherzustellen, dass die Druckauftragsinformationen den Dateinamen enthalten, müssen Sie eine Richtlinie anpassen. Windows bietet hierfür eine praktische Einstellung namens „ Auftragsnamen in Ereignisprotokollen zulassen“.

  1. Öffnen Sie gpedit.msc über das Ausführen-Dialogfeld.
  2. Navigieren Sie zu Computerkonfiguration > Administrative Vorlagen > Drucker.
  3. Suchen und aktivieren Sie die Option „Auftragsnamen in Ereignisprotokollen zulassen“. Dies kann eine Aktualisierung der Richtlinie erfordern (führen Sie dies gpupdate /forcein der Eingabeaufforderung aus).

Sobald das erledigt ist, werden nachfolgende Druckaufträge die Dateinameninformationen in den Ereignisprotokollen enthalten, was die Nachverfolgung deutlich vereinfacht. Ich verstehe nicht, warum Windows das nicht standardmäßig aktiviert hat, aber typisch Windows: Es muss komplizierter sein als nötig.

Druckverlauf mit der Ereignisanzeige prüfen

Nachdem die Protokollierung aktiviert wurde, können Sie im Ereignisprotokoll nach bestimmten Druckaufträgen suchen. Gehen Sie zu Microsoft > Windows > PrintService > Operational. Suchen Sie nach der Ereignis-ID 307 – das ist das Ereignis „Dokument drucken“.Es liefert detaillierte Informationen wie Dateinamen, Benutzernamen, Druckernamen, Seitenanzahl und Dateigröße.

Hier ist ein Beispiel dafür, was Sie in den Veranstaltungsdetails sehen könnten:

Document 12, Microsoft Word - woshub.docx owned by maxadm on \\DESKTOP-PC617 was printed on HP LaserJet M1530 MFP Series PCL 6 through port USB001. Size in bytes: 31780. Pages printed: 1. No user action is required.

Die Details umfassen typischerweise Folgendes:

  • Dokumentname und App:woshub.docx
  • Wer hat es gedruckt?maxadm
  • Druckername:HP LaserJet M1530 MFP Series PCL 6
  • Größe in Bytes und Seiten – nützlich zur Schätzung der Druckkosten oder zur Fehlerbehebung.

Bedenken Sie jedoch, dass diese Protokolle manchmal etwas fehlerhaft oder unvollständig sein können, wenn die Protokollierung nicht früh genug aktiviert wurde – erwarten Sie also keine rückwirkenden Daten.

Analysieren von Druckprotokollen mit PowerShell

Hier wird es etwas komplexer. Die Ereignisanzeige ist zwar brauchbar, aber für schnelle Zusammenfassungen, statistische Übersichten oder gefilterte Berichte eignet sich PowerShell hervorragend. Sie benötigen lediglich ein Skript, das die Protokolle abruft, filtert und gegebenenfalls die Informationen exportiert.

Hier ein einfaches Beispiel – es erfasst alle Druckaufträge der letzten 24 Stunden und zeigt wichtige Details an:

$all2dayprint = Get-WinEvent -FilterHashTable @{LogName="Microsoft-Windows-PrintService/Operational"; ID=307; StartTime=(Get-Date).AddDays(-1)} | Select-Object -Property TimeCreated, @{label='UserName';expression={$_.properties[2].value}}, @{label='Document';expression={$_.properties[1].value}}, @{label='PrinterName';expression={$_.properties[4].value}}, @{label='SizeKb';expression={$_.properties[6].value/1024}}, @{label='Pages';expression={$_.properties[7].value}} $all2dayprint | Format-Table

Ändern Sie den Zeitraum oder filtern Sie nach Benutzer, um die Ergebnisse einzugrenzen. Möchten Sie nur einen bestimmten Benutzer anzeigen? Fügen Sie eine Zeile wie die folgende hinzu:

$PrintUsername='maxadm' $all2dayprint | Where-Object -Property UserName -like $PrintUsername | Format-Table

Für den Export verwenden Sie:

$all2dayprint | Export-Csv -Path "c:\ps\Print Audit.csv" -NoTypeInformation -Encoding UTF8

Und wenn Sie es etwas eleganter gestalten möchten, öffnen Sie es in einem Rasterfenster mit:

$all2dayprint | Out-GridView -Title "All print jobs"

Profi-Tipp: Sie können dieses Skript sogar so planen, dass es täglich mit der Aufgabenplanung ausgeführt wird und die Daten anschließend in eine Datenbank (z. B.MySQL oder SQL Server) überträgt. Je nachdem, wie detailliert Sie vorgehen möchten, ist es besonders praktisch für Audit-Protokolle oder die Kostenverfolgung.

Für weiterführende Analysen empfiehlt sich die Nutzung von Tools wie Winhance auf GitHub.

Zusammenfassung

Grundsätzlich erfordert das Aktivieren der Druckprotokollierung einige manuelle Schritte, liefert aber nach der Aktivierung sehr aussagekräftige Informationen. PowerShell kann beim Filtern und Verwalten der Protokolle helfen und so die Suche nach den gewünschten Daten vereinfachen. Beachten Sie jedoch, dass bei einer nicht frühzeitig aktivierten Protokollierung möglicherweise Lücken vorhanden sind. Dennoch ist es besser als nichts und bietet deutlich mehr Funktionen als Windows standardmäßig bietet.

Zusammenfassung

  • Aktivieren Sie das Drucken des Ereignisprotokolls über die Ereignisanzeige oder PowerShell.
  • Optional: Gruppenrichtlinie anpassen, um Dateinameninformationen einzubeziehen.
  • Prüfen Sie die Druckereignisse in den PrintService-Protokollen mit der Ereignis-ID 307.
  • Verwenden Sie PowerShell-Skripte, um Protokolle zu analysieren, zu filtern oder zu exportieren.

Ich drücke die Daumen, dass es hilft.