Monitor Printers with a Temporary Event Subscription in Windows

You can use any of the VBScript programs below in ActiveXperts Network Monitor. Click here for an explanation about how to include scripts in ActiveXperts Network Monitor.


Description

Monitor Printers with a Temporary Event Subscription in Windows using VBScript, WMI and LDAP

Example(s)

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colPrinters = objWMIService. _ 
    ExecNotificationQuery("Select * from __instancemodificationevent " _ 
        & "within 30 where TargetInstance isa 'Win32_Printer'")
i = 0

Do While i = 0
    Set objPrinter = colPrinters.NextEvent
    If objPrinter.TargetInstance.PrinterStatus <> _ 
        objPrinter.PreviousInstance.PrinterStatus Then
        Select Case objPrinter.TargetInstance.PrinterStatus
            Case 1 strCurrentState = "Other" 
            Case 2 strCurrentState = "Unknown" 
            Case 3 strCurrentState = "Idle" 
            Case 4 strCurrentState = "Printing" 
            Case 5 strCurrentState = "Warming Up" 
        End Select
        Select Case objPrinter.PreviousInstance.PrinterStatus
            Case 1 strPreviousState = "Other" 
            Case 2 strPreviousState = "Unknown" 
            Case 3 strPreviousState = "Idle" 
            Case 4 strPreviousState = "Printing" 
            Case 5 strPreviousState = "Warming Up" 
        End Select
        Wscript.Echo objPrinter.TargetInstance.Name _ 
            &  " is " & strCurrentState _
                & ". The printer previously was " & strPreviousState & "."
    End If
Loop