Verfolgen der Druckernutzung mit Windows-Ereignisanzeigeprotokollen

Unter Windows können Sie die Druckernutzung mit der Ereignisanzeige verfolgen. Alle an den Druckspooler gesendeten Druckaufträge werden in der Ereignisanzeige protokolliert. Wenn Sie einen Druckserver unter Windows bereitgestellt haben, können Sie diese Protokolle verwenden, um eine einfache Drucküberwachungslösung zu organisieren, mit der Sie nachvollziehen können, wer wann und wie viele Seiten auf Ihren Druckern gedruckt hat.

In diesem Artikel zeigen wir, wie Sie die Druckereignisprotokollierung in Windows aktivieren und konfigurieren, den Druckverlauf in der Ereignisanzeige anzeigen und Druckereignisse mit PowerShell suchen oder filtern.

Inhalt:

So aktivieren Sie die Druckprotokollierung in Windows

Windows verfügt über ein separates Ereignisanzeigeprotokoll, in dem alle Druckereignisse protokolliert werden:SystemRoot%System32WinevtLogsMicrosoft-Windows-PrintService%4Operational.evt. Dieses Protokoll ist jedoch standardmäßig deaktiviert. So aktivieren Sie die Druckprotokollierung unter Windows:

  1. Öffnen Sie die Ereignisanzeige (eventvwr.msc);
  2. Gehen Sie zu Anwendungs- und Dienstprotokolle -> Microsoft -> Windows -> PrintService.
  3. Klicken Sie mit der rechten Maustaste aufBetriebsbereitund auswählenProtokoll aktivieren;
  4. Erhöhen Sie die Größe dieses Ereignisprotokolls vom Standardwert 1 MB, wenn Sie Druckprotokolle über einen längeren Zeitraum aufbewahren möchten. OffenBetriebsbereitProtokolleigenschaften und legen Sie die maximale Protokollgröße fest;

Sie können ein bestimmtes Ereignisprotokoll auch mit dem folgenden Befehl aktivieren (deaktivieren):

Empfohlene Lektüre:So löschen Sie alle Ereignisprotokolle in der Ereignisanzeige

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

Sie müssen eine spezielle GPO-Einstellung aktivieren, wenn Sie möchten, dass im Ereignisprotokoll der zum Drucken gesendete Dateiname angezeigt wird.

  1. Öffnen Sie den Editor für lokale Gruppenrichtlinien (gpedit.msc);
  2. Gehen Sie zu Computerkonfiguration -> Administrative Vorlagen -> Drucker.
  3. Aktivieren Sie die OptionJobnamen in Ereignisprotokollen zulassen;
  4. Aktualisieren Sie die Richtlinieneinstellungen mitgpupdate /forceBefehl.

Jetzt werden alle Druckereignisse in der Ereignisanzeige protokolliert.

Überprüfen des Druckverlaufs unter Windows mithilfe der Ereignisanzeige

Sie können nun detaillierte Informationen zu allen Druckereignissen sehen, die auf diesem Computer aufgetreten sind.

Öffnen Sie die Ereignisanzeige und gehen Sie zu Anwendungs- und Dienstprotokolle -> Microsoft -> Windows -> PrintService -> Operational. Suchen Sie das Ereignis mit der Ereignis-ID307:Printing a document.

Öffnen Sie die Veranstaltungsdetails:

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 Veranstaltungsbeschreibung enthält:

  • Der Name der Druckdatei und die Anwendung, aus der sie gedruckt wurde:Microsoft Word — woshub.docx
  • Der Name des Benutzers, der die Datei gedruckt hat:maxadm
  • Der Druckername:HP LaserJet M1530 MFP Series PCL 6
  • Anzahl der gedruckten Seiten:Pages printed: 1
  • Die Dateigröße:size in bytes

Protokollanalyse mit PowerShell drucken

Mit der Ereignisanzeige ist es nicht möglich, praktische Statistiken zum Druckverlauf abzurufen oder nach Datum/Benutzer/Dokument zu suchen. Mit PowerShell können Sie Druckereignisse verarbeiten und filtern.

Um Ereignisse aus dem PrintService/Operational-Protokoll abzurufen, verwenden Sie das PowerShell-Cmdlet Get-WinEvent. Das folgende PowerShell-Skript zeigt eine Liste aller Dokumente an, die in den letzten 24 Stunden auf dem aktuellen Computer gedruckt wurden:

$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="PrintSizeKb";expression={$_.properties[6].value/1024}}, @{label="Pages";expression={$_.properties[7].value}}
$all2dayprint|ft

Wenn Sie nur Dokumente anzeigen möchten, die ein bestimmter Benutzer gedruckt hat:

$PrintUsername="maxadm"
$all2dayprint| Where-Object -Property UserName -like $PrintUsername|ft

Mit Export-CSV können Sie eine Liste gedruckter Dokumente in eine CSV-Datei exportieren:

$all2dayprint | Export-Csv -Path "c:psPrint Audit.csv" –NoTypeInformation -Encoding UTF8

Oder zeigen Sie es in einem grafischen Out-GridView-Formular an:

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

Sie können dieses PowerShell-Skript so planen, dass es täglich ausgeführt wird und Informationen zur Druckernutzung in eine externe Datenbank schreibt.

Sie können beispielsweise Daten aus einem PowerShell-Skript in eine MySQL-, MariaDB- oder Microsoft SQL Server-Datenbank schreiben.

Related Posts