Try this out:
@reg query hklm\system\currentcontrolset\control\print\printe rs
/f "HP Photosmart C4401 series" /z | find " 0 match" > nul && (do your printui.exe stuff, printer was not found)
> On Tuesday, July 29, 2008 1:19 AM aroy wrote:
> Greetings all,
>
> I have a client who chooses to deploy printers via their login script.
> For each of the ~30 printers I have a batch file containing:
>
> rundll32 printui.dll,PrintUIEntry /in /n "\\server_name
> \printer_name01"
> rundll32 printui.dll,PrintUIEntry /y /n "\\server_name\priner_name01"
>
> rundll32 printui.dll,PrintUIEntry /in /n "\\server_name
> \printer_name02"
>
> Users access is to these files is controlled by using ifmember.exe. If
> user is a member of printer_group03 then run this batch file else move
> on to next.
>
> This works fine.
>
> BUT, each time they login this scrip it run. How can I first check to
> see if a specific printer is installed before adding it?
>
> Essentially what I want to do is:
>
> If exist(on local computer, NOT server) \\server_name\printer_name01
> goto exit
> if NOT exist \\server_name\printer_name01 add it
>
> Is that at all possible??
>
> thanks.
>> On Tuesday, July 29, 2008 1:37 AM Pegasus \(MVP\) wrote:
>> Have a look at this help command: rundll32 printui.dll,PrintUIEntry /?
>>> On Tuesday, July 29, 2008 2:46 PM Pegasus \(MVP\) wrote:
>>> "aroy" <> wrote in message
>>> news:60a801cf-bc6e-43d3-b6e8-...
>>> On Jul 28, 10:37 pm, "Pegasus \(MVP\)" <I....@fly.com.oz> wrote:
>>>
>>> Thanks, best I can find in there is a /q. That hides the little dialog
>>> box that pops up when the printer is added. That gets the job
>>> done...sort of. The users are not bothered by the dialog box but, the
>>> printers are still being installed each time they login regardless of
>>> whether or not they are already installed.
>>>
>>> I would still like to be able to check if the printer is installed on
>>> the local machine first.
>>>
>>> thanks,
>>> ===========
>>> You could use the script below but your users might not
>>> appreciate the delay it introduces into the logon process.
>>> Invoking it remotely and creating a local tell-tale file would
>>> get around the delay.
>>> Set objWMI = GetObject("winmgmts:\\.\root\CIMV2")
>>> Set colPrn = objWMI.ExecQuery("SELECT * FROM Win32_Printer")
>>>
>>> For Each objItem In colPrn
>>> WScript.Echo "Printer name: " & objItem.name & VbCrLf & _
>>> "====================================" & VbCrLf & _
>>> "Port Name: " & objItem.PortName & VbCrLf & _
>>> "Printer State: " & objItem.PrinterState & VbCrLf & _
>>> "Printer Status: " & objItem.PrinterStatus & VbCrLf & _
>>> "PrintJobDataType: " & objItem.PrintJobDataType & VbCrLf & _
>>> "Print Processor: " & objItem.PrintProcessor & VbCrLf & _
>>> "Spool Enabled: " & objItem.SpoolEnabled & VbCrLf & _
>>> "Separator File: " & objItem.SeparatorFile & VbCrLf & _
>>> "Status: " & objItem.Status & VbCrLf & _
>>> "StatusInfo: " & objItem.StatusInfo & VbCrLf & _
>>> "ShareName: " & objItem.ShareName & VbCrLf & _
>>> "Horizontal Res: " & objItem.HorizontalResolution & VbCrLf & _
>>> "Vertical Res: " & objItem.VerticalResolution
>>> WScript.Echo "Work Offline: " & objItem.WorkOffline
>>> Next
>>>> On Wednesday, July 30, 2008 9:31 AM JFor wrote:
>>>> A bit faster than WMI is the REG command...
>>>>
>>>> FIND /I "Printer Name"
>>>>
>>>> based on %errorlevel% you can end or add
>>>>
>>>> -J
>>>>
>>>> "Pegasus (MVP)" wrote:
>>>>> On Wednesday, July 30, 2008 10:24 AM Pegasus \(MVP\) wrote:
>>>>> The reg.exe command is not a bit faster than WMI, it
>>>>> is always a lot faster!
>>>>>> On Wednesday, July 30, 2008 1:37 PM JFor wrote:
>>>>>> True! A definite understatement on my part...
>>>>>>
>>>>>> "Pegasus (MVP)" wrote:
>>>>>>> On Sunday, August 03, 2008 6:48 AM aroy wrote:
>>>>>>> On Jul 28, 10:37=A0pm, "Pegasus \(MVP\)" <I....@fly.com.oz> wrote:
>>>>>>>
>>>>>>> Thanks, best I can find in there is a /q. That hides the little dialog
>>>>>>> box that pops up when the printer is added. That gets the job
>>>>>>> done...sort of. The users are not bothered by the dialog box but, the
>>>>>>> printers are still being installed each time they login regardless of
>>>>>>> whether or not they are already installed.
>>>>>>>
>>>>>>> I would still like to be able to check if the printer is installed on
>>>>>>> the local machine first.
>>>>>>>
>>>>>>> thanks,
>>>>>>>> On Sunday, August 03, 2008 6:48 AM aroy wrote:
>>>>>>>> es" |
>>>>>>>>
>>>>>>>> Excellent thanks all...I am going to try JFords idea today when I get
>>>>>>>> back to the office.
>>>>>>>> Submitted via EggHeadCafe - Software Developer Portal of Choice
>>>>>>>> Review of DevExpress DXperience Control Suite
>>>>>>>> http://www.eggheadcafe.com/tutorials...rol-suite.aspx