Jump to content
Sign in to follow this  
icedearth

Printer logging on a machine

Recommended Posts

icedearth

Hi

Is it possible to detect each time a print job is sent from windows XP?

I am looking to design a simple client application that just counts the jobs sent and store them in a variable, text file whatever.

I dont want to do my auditing on my server, but on each machine that sends print jobs I would like to be able to define the printers it counts for if possible.

Thanks in advance for any musings!

IcedEarth

Share this post


Link to post
Share on other sites
ptrex

@

Something like this maube :

While 1
    $objWMIService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2")
    $AllPrintJobs = $objWMIService.ExecQuery ("SELECT * FROM Win32_PrintJob")
    
    For $PrintJob In $AllPrintJobs
        ;           Name of the printer - Documentname - Computer where the Printjob started from - Time the printjob was submitted
        ConsoleWrite($PrintJob.Name & " - " & $PrintJob.Document & " - " & $PrintJob.HostPrintQueue & " - " & $PrintJob.TimeSubmitted)
    Next
    
    Sleep(1000)   ;Log every 1 seconds
WEnd

More info can be found here : Print Jobs

regards

ptrex

Share this post


Link to post
Share on other sites
icedearth

Thanks, ill take a look.

@

Something like this maube :

While 1
    $objWMIService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2")
    $AllPrintJobs = $objWMIService.ExecQuery ("SELECT * FROM Win32_PrintJob")
    
    For $PrintJob In $AllPrintJobs
        ;           Name of the printer - Documentname - Computer where the Printjob started from - Time the printjob was submitted
        ConsoleWrite($PrintJob.Name & " - " & $PrintJob.Document & " - " & $PrintJob.HostPrintQueue & " - " & $PrintJob.TimeSubmitted)
    Next
    
    Sleep(1000)   ;Log every 1 seconds
WEnd

More info can be found here : Print Jobs

regards

ptrex

Share this post


Link to post
Share on other sites
Blue_Drache

ptrex: Thank you for this, I'd had an idea that I'd been kicking around dealing with printer management and wasn't quite sure how to go about it. Not only have you helped me solve that hurdle, you've given me insight on other places to go and use the ObjGet() function to solve it.


Lofting the cyberwinds on teknoleather wings, I am...The Blue Drache

Share this post


Link to post
Share on other sites
ptrex
icedearth

Great!

That done the trick!, I substituted consoleWrite for MsgBox because I couldnt get ConsoleWrite to work, all I need to do now is write it to a text file and/or create a variable that will persist between logons.

@

Something like this maube :

While 1
    $objWMIService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2")
    $AllPrintJobs = $objWMIService.ExecQuery ("SELECT * FROM Win32_PrintJob")
    
    For $PrintJob In $AllPrintJobs
        ;           Name of the printer - Documentname - Computer where the Printjob started from - Time the printjob was submitted
        ConsoleWrite($PrintJob.Name & " - " & $PrintJob.Document & " - " & $PrintJob.HostPrintQueue & " - " & $PrintJob.TimeSubmitted)
    Next
    
    Sleep(1000)   ;Log every 1 seconds
WEnd

More info can be found here : Print Jobs

regards

ptrex

Edited by icedearth

Share this post


Link to post
Share on other sites
ptrex

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×