Announcement

Collapse
No announcement yet.

Unattended Printer Script

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Unattended Printer Script

    Hello to all!!

    I wanted to add network printers to the desktops automaticly each logon.

    I've searched trough the web and found this:

    rundll32 printui.dll,PrintUIEntry /in /n \\server\printer1
    rundll32 printui.dll,PrintUIEntry /in /n \\server\printer2
    rundll32 printui.dll,PrintUIEntry /in /y /n \\server\printer1

    But the problem is that Windows XP warns me about the driver (Warning) install.

    The issue is not permissions since I'll allow users to install drivers.

    What I was trying to do is to omitt the driver warning.

    For that, the printui.dll has a switch "w" to suppress all warnings.

    Adding the switch it would be:

    rundll32 printui.dll,PrintUIEntry /in /n w\\server\printer1
    rundll32 printui.dll,PrintUIEntry /in /n w\\server\printer2
    rundll32 printui.dll,PrintUIEntry /y /n \\server\printer1

    Now the thing is that with the switch the printers are not even installed.... And I receive an error for the last command since there's no printer with the name "printer1" installed.

    Can anyone please help me?

    Maybe adding the drivers apriori would solve the problem?!?

    Thanks.

    Best regards,
    Anthon.

  • #2
    Re: Unattended Printer Script

    It looks like you'd need to use it with the global switch [/GW].

    Code:
       /G[flags] specifies global flags and switches
    	w	suppress setup driver warnings UI (super quiet mode)
    Based on what you're describing though, the issue may be with driver signing so supressing the error won't fix the problem. You'll need to allow unsigned drivers.
    R-click my comptuer->properties->hardware tab->driver signing button->ignore option
    Last edited by ahinson; 24th April 2007, 15:14.
    Andrew

    ** Remember to give credit where credit is due and leave reputation points sigpic where appropriate **

    Comment


    • #3
      Re: Unattended Printer Script

      Hello ahinson,

      Thank you very much for your correction.

      I have tried also the /Gw swith but that didn't worked either...

      rundll32 printui.dll,PrintUIEntry /in /n /Gw "\\server\printer1"
      rundll32 printui.dll,PrintUIEntry /y /n "\\server\printer1"

      Your tip about signed drivers was great!! But that did not solved the problem to...

      With the /Gw swith there is no error or warning message and at the end no printer is installed.

      Without the /Gw switch the warning message appears even with the Driver Signing off...

      I leave you some print screens in attach.

      Btw, I'm local admin of my laptop and I'm connecting to the Printer Server with the Domain admin account.

      Thank you once again.

      Best regards,
      Anthon.
      Attached Files

      Comment


      • #4
        Re: Unattended Printer Script

        Here's an example of how you can handle the dialog using VBScript. It might not work like this but you can probably edit it to make it work.

        First start the printer install, then script. You may need to adjust the delay to allow for the dialog to appear. When it does it will activate and send the "Y" to accept the driver.

        Code:
        sTargetWindowTitle = "Connect To Printer" 
          sText = "Y" 
          with CreateObject("WScript.Shell") 
            for i = 1 to 5 
              WinFound = .AppActivate(sTargetWindowTitle) 
              if WinFound Then Exit For 
              Wscript.Sleep 250 
            next 
             
         If Not WinFound Then wsh.quit 
            Wscript.Sleep 500 ' do not remove 
            .SendKeys sText '"{Enter}" 
          end with
        Last edited by ahinson; 25th April 2007, 05:22.
        Andrew

        ** Remember to give credit where credit is due and leave reputation points sigpic where appropriate **

        Comment


        • #5
          Re: Unattended Printer Script

          Originally posted by anthon View Post
          I have tried also the /Gw swith but that didn't worked either...

          rundll32 printui.dll,PrintUIEntry /in /n /Gw "\\server\printer1"
          rundll32 printui.dll,PrintUIEntry /y /n "\\server\printer1"
          If I read the examples with rundll32 printui.dll,PrintUIEntry /? then if i'm right you also shoot use the /c parameter.

          Code:
          rundll32 printui.dll,PrintUIEntry /y /u /Gw /n\\server\printer
          Marcel
          Technical Consultant
          Netherlands
          http://www.phetios.com
          http://blog.nessus.nl

          MCITP(EA, SA), MCSA/E 2003:Security, CCNA, SNAF, DCUCI, CCSA/E/E+ (R60), VCP4/5, NCDA, NCIE - SAN, NCIE - BR, EMCPE
          "No matter how secure, there is always the human factor."

          "Enjoy life today, tomorrow may never come."
          "If you're going through hell, keep going. ~Winston Churchill"

          Comment


          • #6
            Re: Unattended Printer Script

            Code:
            Usage: rundll32 printui.dll,PrintUIEntry [options] [@commandfile]
               /a[file] binary file name
               /b[name] base printer name
               /c[name] unc machine name if the action is on a remote machine
               /dl delete local printer
               /dn delete network printer connection
               /dd delete printer driver
               /e display printing preferences
               /f[file] either inf file or output file
               /F[file] location of an INF file that the INF file specified with /f may depend on
               /ga add per machine printer connections (the connection will be propagated to the user upon logon)
               /ge enum per machine printer connections
               /gd delete per machine printer connections (the connection will be deleted upon user logon)
               /h[arch] driver architecture one of the following, x86 or x64 or Itanium 
               /ia install printer driver using inf file
               /id install printer driver using add printer driver wizard
               /if install printer using inf file
               /ii install printer using add printer wizard with an inf file
               /il install printer using add printer wizard
               /in add network printer connection
               /ip install printer using network printer installation wizard
               /j[provider] print provider name
               /k print test page to specified printer, cannot be combined with command when installing a printer
               /l[path] printer driver source path
               /m[model] printer driver model name
               /n[name] printer name
               /o display printer queue view
               /p display printer properties
               /q quiet mode, do not display error messages
               /r[port] port name
               /s display server properties
               /Ss Store printer settings into a file
               /Sr Restore printer settings from a file
               Store or restore printer settings option flags that must be placed at the end of command:
            	2	PRINTER_INFO_2
            	7	PRINTER_INFO_7
            	c	Color Profile
            	d	PrinterData
            	s	Security descriptor
            	g	Global DevMode
            	m	Minimal settings
            	u	User DevMode
            	r	Resolve name conflicts
            	f	Force name
            	p	Resolve port
            	i	Driver name conflict
               /u use the existing printer driver if it's already installed
               /t[#] zero based index page to start on
               /v[version] driver version one of the following, "Type 2 - Kernel Mode" or "Type 3 - User Mode"
               /w prompt the user for a driver if specified driver is not found in the inf
               /y set printer as the default
               /Xg get printer settings
               /Xs set printer settings
               /z do not auto share this printer
               /Y do not auto generate a printer name
               /K changes the meaning of /h to accept 2,3,4 for x86 or x64 or Itanium and /v to accept 3 for "Type 3 - User Mode"
               /Z share this printer, can only be used with the /if option
               /? help this message
               @[file] command line argument file
               /Mw[message] show a warning message before committing the command
               /Mq[message] show a confirmation message before committing the command
               /W[flags] specifies flags and switches for the wizards (for APW & APDW)
            	r	make the wizards to be restart-able from the last page
               /G[flags] specifies global flags and switches
            	w	suppress setup driver warnings UI (super quiet mode)
            
            Examples:
               Run server properties: 
            rundll32 printui.dll,PrintUIEntry /s /t1 /c\\machine
               Run printer properties: 
            rundll32 printui.dll,PrintUIEntry /p /n\\machine\printer
               Run add printer wizard localy: 
            rundll32 printui.dll,PrintUIEntry /il 
               Run add printer wizard on \\machine: 
            rundll32 printui.dll,PrintUIEntry /il /c\\machine
               Run queue view: 
            rundll32 printui.dll,PrintUIEntry /o /n\\machine\printer
               Run inf install: 
            rundll32 printui.dll,PrintUIEntry /if /b "Test Printer" /f C:\InfPath\InfFile.inf /r "lpt1:" /m "Apollo P-1200"
               Run inf install (with inf dependency).  In the example, prnao001.inf depends on ntprint.inf
            rundll32 printui.dll, PrintUIEntry /ia /m "Apollo P-1200" /K /h x64 /v 3 /f "c:\InfPath\prnao001.inf" /F "c:\InfPath\ntprint.inf"
               Run add printer wizard using inf: 
            rundll32 printui.dll,PrintUIEntry /ii /f C:\InfPath\InfFile.inf
               Add printer using inbox printer driver: 
            rundll32 printui.dll,PrintUIEntry /if /b "Test Printer" /r "lpt1:" /m "Apollo P-1200"
               Add per machine printer connection (the connection will be propagated to the user upon logon): 
            rundll32 printui.dll,PrintUIEntry /ga /c\\machine /n\\machine\printer /j"LanMan Print Services"
               Delete per machine printer connection (the connection will be deleted upon user logon): 
            rundll32 printui.dll,PrintUIEntry /gd /c\\machine /n\\machine\printer
               Enumerate per machine printer connections: 
            rundll32 printui.dll,PrintUIEntry /ge /c\\machine
               Add printer driver using inf: 
            rundll32 printui.dll,PrintUIEntry /ia /c\\machine /m "Apollo P-1200" /h "x86" /v "Type 3 - User Mode" /f C:\InfPath\InfFile.inf
               Add printer driver using inf: 
            rundll32 printui.dll,PrintUIEntry /ia /K /c\\machine /m "Apollo P-1200" /h "x86" /v 3
               Add inbox printer driver: 
            rundll32 printui.dll,PrintUIEntry /ia /c\\machine /m "Apollo P-1200" /h "Intel" /v "Type 3 - Kernel Mode"
               Remove printer driver: 
            rundll32 printui.dll,PrintUIEntry /dd /c\\machine /m "Apollo P-1200" /h "x86" /v "Type 3 - User Mode"
               Remove printer driver: 
            rundll32 printui.dll,PrintUIEntry /dd /K /c\\machine /m "Apollo P-1200" /h "x86" /v 3
               Set printer as default: 
            rundll32 printui.dll,PrintUIEntry /y /n "printer"
               Set printer comment: 
            rundll32 printui.dll,PrintUIEntry /Xs /n "printer" comment "My Cool Printer"
               Get printer settings: 
            rundll32 printui.dll,PrintUIEntry /Xg /n "printer"
               Get printer settings saving results in a file: 
            rundll32 printui.dll,PrintUIEntry /f "results.txt" /Xg /n "printer"
               Set printer settings command usage:
            rundll32 printui.dll,PrintUIEntry /Xs /n "printer" ?
               Store all printer settings into a file: 
            rundll32 printui.dll,PrintUIEntry /Ss /n "printer" /a "file.dat"
               Restore all printer settings from a file: 
            rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat"
               Store printer information on level 2 into a file : 
            rundll32 printui.dll,PrintUIEntry /Ss /n "printer" /a "file.dat" 2
               Restore  from a file printer security descriptor: 
            rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" s
               Restore  from a file printer global devmode and printer data: 
            rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" g d
               Restore  from a file minimum settings and resolve port name: 
            rundll32 printui.dll,PrintUIEntry /Sr /n "printer" /a "file.dat" m p
               Enable Client Side Rendering for a printer: 
            rundll32 printui.dll,PrintUIEntry /Xs /n "printer" ClientSideRender enabled
               Disable Client Side Rendering for a printer: 
            rundll32 printui.dll,PrintUIEntry /Xs /n "printer" ClientSideRender disabled
            Andrew

            ** Remember to give credit where credit is due and leave reputation points sigpic where appropriate **

            Comment


            • #7
              Re: Unattended Printer Script

              Dumber, you're right. I completely over looked that.

              Originally posted by Dumber View Post
              If I read the examples with rundll32 printui.dll,PrintUIEntry /? then if i'm right you also shoot use the /c parameter.

              Code:
              rundll32 printui.dll,PrintUIEntry /y /u /Gw /n\\server\printer
              Andrew

              ** Remember to give credit where credit is due and leave reputation points sigpic where appropriate **

              Comment


              • #8
                Re: Unattended Printer Script

                Originally posted by Dumber View Post
                If I read the examples with rundll32 printui.dll,PrintUIEntry /? then if i'm right you also shoot use the /c parameter.

                Code:
                rundll32 printui.dll,PrintUIEntry /y /u /Gw /n\\server\printer
                of course i ment the /n and directly connected the \\ to it without the quotes.
                /c is needed to remotely adding the printer.
                Marcel
                Technical Consultant
                Netherlands
                http://www.phetios.com
                http://blog.nessus.nl

                MCITP(EA, SA), MCSA/E 2003:Security, CCNA, SNAF, DCUCI, CCSA/E/E+ (R60), VCP4/5, NCDA, NCIE - SAN, NCIE - BR, EMCPE
                "No matter how secure, there is always the human factor."

                "Enjoy life today, tomorrow may never come."
                "If you're going through hell, keep going. ~Winston Churchill"

                Comment


                • #9
                  Re: Unattended Printer Script

                  Thank you all for the great help!!

                  I'll try the VBScript and the syntax recommendations to.

                  As soon I've got something new I'll post it here.

                  Best regards,
                  Anthon.

                  Comment


                  • #10
                    Re: Unattended Printer Script

                    Hello guys!

                    Well, I've downloaded Script Center and tried the script for connecting to a network printer.

                    Belive it or not there was no warning message!!

                    No I just have to try in a computer without the driver installed...

                    Thank your very much for the help!!!

                    Here is the script:

                    Set WshNetwork = CreateObject("WScript.Network")

                    WshNetwork.AddWindowsPrinterConnection "\\server\printer"
                    WshNetwork.SetDefaultPrinter "\\server\printer"

                    Best wishes for all,
                    Anthon.

                    Comment


                    • #11
                      Re: Unattended Printer Script

                      Cool glad that worked for you.

                      Originally posted by anthon View Post
                      Hello guys!

                      Well, I've downloaded Script Center and tried the script for connecting to a network printer.

                      Belive it or not there was no warning message!!

                      No I just have to try in a computer without the driver installed...

                      Thank your very much for the help!!!

                      Here is the script:

                      Set WshNetwork = CreateObject("WScript.Network")

                      WshNetwork.AddWindowsPrinterConnection "\\server\printer"
                      WshNetwork.SetDefaultPrinter "\\server\printer"

                      Best wishes for all,
                      Anthon.
                      Andrew

                      ** Remember to give credit where credit is due and leave reputation points sigpic where appropriate **

                      Comment


                      • #12
                        Re: Unattended Printer Script

                        Originally posted by anthon View Post
                        Hello guys!

                        Well, I've downloaded Script Center and tried the script for connecting to a network printer.

                        Belive it or not there was no warning message!!

                        No I just have to try in a computer without the driver installed...

                        Thank your very much for the help!!!

                        Here is the script:

                        Set WshNetwork = CreateObject("WScript.Network")

                        WshNetwork.AddWindowsPrinterConnection "\\server\printer"
                        WshNetwork.SetDefaultPrinter "\\server\printer"

                        Best wishes for all,
                        Anthon.
                        I was aware of that but i thought that you explicity wanted to use the rundll32 printui.dll
                        Marcel
                        Technical Consultant
                        Netherlands
                        http://www.phetios.com
                        http://blog.nessus.nl

                        MCITP(EA, SA), MCSA/E 2003:Security, CCNA, SNAF, DCUCI, CCSA/E/E+ (R60), VCP4/5, NCDA, NCIE - SAN, NCIE - BR, EMCPE
                        "No matter how secure, there is always the human factor."

                        "Enjoy life today, tomorrow may never come."
                        "If you're going through hell, keep going. ~Winston Churchill"

                        Comment


                        • #13
                          Re: Unattended Printer Script

                          Originally posted by Dumber View Post
                          I was aware of that but i thought that you explicity wanted to use the rundll32 printui.dll
                          Same here. Oh well.
                          Andrew

                          ** Remember to give credit where credit is due and leave reputation points sigpic where appropriate **

                          Comment

                          Working...
                          X