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