PrintJob Watcher – Druckerüberwachung und Statistik

Dieses Python Script ist mir schon früher sehr positiv aufgefallen. Ich nenne es mal PrintJob Watcher. Es protokolliert alle Aktivitäten der angeschlossenen Drucker – egal ob lokaler Drucker oder Netzwerkdrucker.

Das Beispielscript gibt z.B. folgendes aus:

  • den Windows Benutzernamen
  • der benutzte Druckername
  • Titel und Dateiname des gedruckten Dokuments
  • die Anzahl gedruckter Seiten
  • Zeitpunkt der Druckernutzung

Es hat nur ein Handicap: Die ausgegebene Anzahl der gedruckten Seiten eines Users wird nicht immer korrekt ausgegeben. Vielleicht kann es ja jemand fixen. Wenn man aber den Wert für delay_secs von standardmäßig 1 auf 10 erhöht, stimmt die Ausgabe fast.

Hinweis: Das Programm benötigt neben Python das WMI-Modul von Tim Golden und die Python Windows Extension von Marc Hammond. Außerdem muss vor dem Start das Tool makepy (zu finden im Tools-Menü von Pythonwin) auf folgende Typbibliotheken ausgeführt werden:

  • Microsoft WMI Scripting Library
  • WMI ADSI Extension Type Library
  • WMICntl Type Library

Aber hier nun das Script:

import wmi
from time import strftime

w       = wmi.WMI()
watcher = w.watch_for(
    notification_type = "Creation",
    wmi_class         = "Win32_PrintJob",
    delay_secs        = 10)

print 'Starting the watcher...'
while 1:
    job   = watcher()
    owner = str(job.Owner)

    print "user:    %s"  % (job.Owner)
    print "printer: %s"  % (job.Name)
    print "title:   %s"  % (job.Document)
    print "pages:   %d " % (job.TotalPages)
    print "time:    %s"  % (strftime("%a, %d %b %Y %H:%M:%S"))
    print "-" * 80

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.