Login | |
|
 |
RE: set duplex option for printers using multiple wildc... - 7/10/2008 1:44:10 PM
|
|
 |
|
| |
gunk
Posts: 4
Score: 0
Joined: 6/29/2008
Status: offline
|
I've pretty much got this working now. Just one more issue. I have a script which retrieves all the names of the printers with 3030, 2020 or 3045 in the name. This is it below: On Error Resume Next Const wbemFlagReturnImmediately = &h10 Const wbemFlagForwardOnly = &h20 arrComputers = Array("PHQ-I1101198") For Each strComputer In arrComputers Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") Set colItems = objWMIService.ExecQuery ("SELECT * FROM Win32_PrinterConfiguration Where DeviceName like '%5500%' or DeviceName like '%3045%' or DeviceName like '%8150%'", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly) For Each objItem In colItems WScript.Echo "DeviceName: " & objItem.DeviceName Next Next This works just fine, but I've tried to use similar code in my final script but it just sets duplex on every printer that is installed: On Error Resume Next Const wbemFlagReturnImmediately = &h10 Const wbemFlagForwardOnly = &h20 Set objShell = CreateObject("WScript.Shell") strComputer = "PHQ-I1101198" Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") Set colItems = objWMIService.ExecQuery ("SELECT * FROM Win32_PrinterConfiguration Where DeviceName like '%3030%' or DeviceName like '%3045%' or DeviceName like '%2020%'", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly) For Each objItem In colItems Set printerXYZ = objItem.DeviceName Set objScriptExec = objShell.Exec("setprinter " & Chr(34) & printerXYZ & Chr(34) & " 8 " & Chr(34) & "pdevmode=dmDuplex=2,dmCollate=1,dmFields=|duplex collate" & Chr(34)) WScript.Echo objScriptExec.StdOut.ReadAll Set objScriptExec = objShell.Exec("setprinter " & Chr(34) & printerXYZ & Chr(34) & " 2 " & Chr(34) & "pdevmode=dmDuplex=2,dmCollate=1,dmFields=|duplex collate" & Chr(34)) WScript.Echo objScriptExec.StdOut.ReadAll Next WScript.Echo "Done" This script is also based on this batch file which usees the setrprinter.exe from microsoft: REM [Set Global Defaults] setprinter "printername goes here" 8 "pdevmode=dmDuplex=2,dmCollate=1,dmFields=|duplex collate" REM [Set User Defaults] setprinter "printername goes here" 2 "pdevmode=dmDuplex=2,dmCollate=1,dmFields=|duplex collate" Can anybody see where I've gone wrong? This is my last day at work and I'd really like to complete my final project.
|
|
| |
|
|
|
| |
|
|
 |
|
 |
|
|