Assign a Default Printer Based on Queue Length 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.
Assign a Default Printer Based on Queue Length in Windows using VBScript, WMI and LDAPExample(s)
intSmallestQueue = 1000 strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colPrintQueues = objWMIService.ExecQuery _ ("Select * from Win32_PerfFormattedData_Spooler_PrintQueue " _ & "Where Name <> '_Total'") For Each objPrintQueue in colPrintQueues intCurrentQueue = objPrintQueue.Jobs + objPrintQueue.JobsSpooling If intCurrentQueue <= intSmallestQueue Then strNewDefault = objPrintQueue.Name intSmallestQueue = intCurrentQueue End If Next Set colInstalledPrinters = objWMIService.ExecQuery _ ("Select * from Win32_Printer Where Name = '" & strNewDefault & "'") For Each objPrinter in colInstalledPrinters objPrinter.SetDefaultPrinter() Next