Ik moet een bepaalde printjob deleten uit een queue van een bepaalde printer als die er langer als 30 min instaat. Dit script heb ik daarvoor gemaakt:
Const USE_LOCAL_TIME = True
Set DateTime = CreateObject("WbemScripting.SWbemDateTime")
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrintjob = objWMIService.ExecQuery _
("Select * from Win32_PrintJob")
Wscript.Echo "[Printer]-[Job ID]-[Submit tijd]-[Total Pages]"
wscript.Echo "Jobs deleted:"
For Each objPrinter in colInstalledPrintjob
'Wscript.Echo "Name: " & objPrinter.Name
DateTime.Value = objPrinter.TimeSubmitted
dtmActualTime = DateTime.GetVarDate(USE_LOCAL_TIME)
TimeinQueue = DateDiff("n", dtmActualTime , Now)
If TimeinQueue > 30 and ObjPrinter.Name = "<naam printer>" Then
strPrinterName = Split(objPrinter.Name,",",-1,1)
Wscript.Echo strPrinterName(0) & ", " _
& objPrinter.JobID & ", " & dtmActualTime & " , " & _
objPrinter.TotalPages
objPrinter.Delete_
End If
Next
Deze regel geeft problemen: " If TimeinQueue > 30 and ObjPrinter.Name = "<naam printer>" Then"
Bij <naam printer> vul ik de betreffende printer in. Maar dit werkt niet. (als ik alles na "and" tot "then" weghaal, dan wordt dit script voor elke printer uitgevoerd en dat moet niet). Wat doe ik hier verkeerd?
Const USE_LOCAL_TIME = True
Set DateTime = CreateObject("WbemScripting.SWbemDateTime")
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrintjob = objWMIService.ExecQuery _
("Select * from Win32_PrintJob")
Wscript.Echo "[Printer]-[Job ID]-[Submit tijd]-[Total Pages]"
wscript.Echo "Jobs deleted:"
For Each objPrinter in colInstalledPrintjob
'Wscript.Echo "Name: " & objPrinter.Name
DateTime.Value = objPrinter.TimeSubmitted
dtmActualTime = DateTime.GetVarDate(USE_LOCAL_TIME)
TimeinQueue = DateDiff("n", dtmActualTime , Now)
If TimeinQueue > 30 and ObjPrinter.Name = "<naam printer>" Then
strPrinterName = Split(objPrinter.Name,",",-1,1)
Wscript.Echo strPrinterName(0) & ", " _
& objPrinter.JobID & ", " & dtmActualTime & " , " & _
objPrinter.TotalPages
objPrinter.Delete_
End If
Next
Deze regel geeft problemen: " If TimeinQueue > 30 and ObjPrinter.Name = "<naam printer>" Then"
Bij <naam printer> vul ik de betreffende printer in. Maar dit werkt niet. (als ik alles na "and" tot "then" weghaal, dan wordt dit script voor elke printer uitgevoerd en dat moet niet). Wat doe ik hier verkeerd?
[ Voor 12% gewijzigd door Verwijderd op 03-11-2005 14:12 ]