Jump to content

Printer logging on a machine


 Share

Recommended Posts

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

Link to comment
Share on other sites

@

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...