PingWin.com

Black belts on Computer Repairs

Call 818 262 5621

Connect printer from command line, upon login

More info here:
http://zacky.cleverits.com/IT/printer.htm
http://www.robvanderwoude.com/2kprintcontrol.html

Command Line Printer Control
in Windows 2000 / XP
Many, but not all, printer settings can be done from Windows 2000's command line using PRINTUI.DLL and RUNDLL32.EXE. The list of functions on this page was generated using the following command in Windows 2000 (Professional):
 

RUNDLL32 PRINTUI.DLL,PrintUIEntry /?
 

More information is available at Microsoft's TechNet under Q189105.
 

Download Microsoft's PrintUI.DLL User's Guide and Reference for more detailed, task oriented explanations of command line options.

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
/ga add per machine printer connections
/ge enum per machine printer connections
/gd delete per machine printer connections
/h[arch] driver architecture, one of the following: Alpha | Intel | Mips | PowerPC
/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
/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
/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: Windows 95 or 98 | Windows NT 3.1 | Windows NT 3.5 or 3.51 | Windows NT 3.51 | Windows NT 4.0 | Windows NT 4.0 or 2000 | Windows 2000
/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
/Z share this printer, can only be used with the /if option
/? help this message
@[file] command line argument file

Examples:
Run server properties:
RUNDLL32 PRINTUI.DLL,PrintUIEntry /s /t1 /n\\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 %windir%\inf\ntprint.inf /r "lpt1:" /m "AGFA-AccuSet v52.3"
Run add printer wizard using inf
RUNDLL32 PRINTUI.DLL,PrintUIEntry /ii /f %windir%\inf\ntprint.inf
Add per machine printer connection
RUNDLL32 PRINTUI.DLL,PrintUIEntry /ga /c\\machine /n\\machine\printer /j"LanMan Print Services"
Delete per machine printer connection
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 "AGFA-AccuSet v52.3" /h "Intel" /v "Windows 2000" /f %windir%\inf\ntprint.inf
Remove printer driver
RUNDLL32 PRINTUI.DLL,PrintUIEntry /dd /c\\machine /m "AGFA-AccuSet v52.3" /h "Intel" /v "Windows 2000"
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"
Set printer port
RUNDLL32 PRINTUI.DLL,PrintUIEntry /Xs /n "printer" PortName "port:"
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,PrintUI /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


Also:
How to add printers with no user interaction in Windows XP
SUMMARY

Windows XP permits you to install a printer from the command line. This is particularly useful when you use a logon script or a scheduled event to add or remove a printer from a group of users.

Although Microsoft Windows NT 4.0 contains tools such as Con2prt.exe, Con2prt.exe permits you to add or delete only network printers. You can modify and delete local printers by using Windows XP. The result is that an administrator can control all aspects of a user's ability to print by requiring users to run a batch file or logon script.

Note If you use this command in a logon script or a client-based batch file, the client computer must be running Windows XP or Microsoft Windows 2000. Because the logon script runs on the client computer, a Windows NT 4.0 client cannot process the command.

Additionally, these commands can be run from an administrator's workstation or from a server so that the printers are push-installed to the client computers, without having to install from the actual computer.
MORE INFORMATION

The following examples list the most typical uses for the Printer User Interface (PrintUIEntry) command.

Note This command runs only on a Windows XP or Windows 2000-based computer; and it can be used only to install a printer on, or remove a printer from, a Windows XP, Windows 2000, or Windows NT 4.0-based server or workstation.

The following example adds an Agfa printer driver and creates a logical printer on a computer named SERVER.

Note Both lines can be placed in a batch file or typed after each other at a command prompt. These two lines are wrapped for readability.
rundll32 printui.dll,PrintUIEntry /ia /c\\server /m "AGFA-AccuSet v52.3" /h
"Intel" /v "Windows 2000" /f %windir%\inf\ntprint.inf

rundll32 printui.dll,PrintUIEntry /if /b "Test Printer" /c\\SERVER /f
"%windir%\inf\ntprint.inf" /r "lpt1:" /m "AGFA-AccuSet v52.3"

The following example deletes an Agfa printer on a computer named SERVER:
rundll32 printui.dll,PrintUIEntry /dl /n "Test Printer" /c\\SERVER

For more information about the available switches, type /? after the command.

Additionally, type the following at a command prompt:
rundll32 printui.dll,PrintUIEntry /?

The preceding command displays the full list of usage switches, with extensive examples for using this method.

Note The following sample syntax works correctly as long as the standard TCP/IP ports are created:
rundll32 printui.dll,PrintUIEntry /if /b "Test Printer" /f
%windir%\inf\ntprint.inf /r "IP_157.57.50.98" /m "HP Laserjet 4000 Series PCL" /Z

If you do not enter the printer name correctly, or if you specify a printer that is not connected to the server, standard TCP/IP ports are not created, and you may receive the following error message:
Printer User Interface
Printer rundll command failed.
Command: /if /b "Test Printer" /f %windir%\inf\ntprint.inf /r "IP_157.57.50.98" /m "HP Laserjet 4000 Series PCL" /Z.

You either entered a printer name that was incorrect or the specified printer is no longer connected to the server. Click Help for more information.
Sample of How to Add an IPP Printer

rundll32 printui.dll,PrintUIEntry /b "DisplayPrinterName on http" /x /n "part of the n switch" /if /f %windir%\inf\ntprint.inf /r "http://hostname/printers/sharename/.printer" /m "HP Laserjet 4000 Series PCL"
Note The /x switch is not documented with /?. The /x switch expects /n even though it is not used. Also, you may be using a printer other than the HP Laserjet 4000 Series PCL. The /x flag treats the install as a “Web point and print.” This flag indicates that the printer is a masquerading (masq) printer. A masq printer is partly local printer and partly a network printer. A masq printer receives rich notifications from the remote print server. Without the /x option, the printer is a local printer with a redirected port. It works fine, but it has very limited notifications.
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, regarding the performance or reliability of these products.
How to add printers with no user interaction in Windows Server 2003
View products that this article applies to.

Article ID
:
189105
Last Review
:
October 26, 2007
Revision
:
5.5
This article was previously published under Q189105
For a Microsoft Windows XP version of this article, see 314486 (http://support.microsoft.com/kb/314486/).
SUMMARY

Windows 2000 and Windows Server 2003 provide the ability to install a printer using a command line. This is particularly useful when you add or remove a printer from a group of users using a login script or a scheduled event.

Although Microsoft Windows NT 4.0 Zero Administration Kit (ZAK) contains tools such as Con2prt.exe, the Con2prt.exe tool provides the ability to add or delete only network printers. You can also modify and delete local printers using Windows 2000. The result is that an administrator can control all aspects of a user's ability to print by having users run a batch file or logon script.

NOTE: Using this command in a login script or a client-launched batch file requires the client computer to be running Windows 2000 or Windows Server 2003. Because the login script runs on the client computer, a Windows NT 4.0 client is unable to process the command.

In addition, these commands can be run from an administrator's workstation or from a server so that the printers are push-installed to the client computers without having to go to the actual computer.
MORE INFORMATION

The following examples list the most typical uses for the command.

NOTE: This command only runs on a Windows 2000-based or Windows Server 2003-based computer against a Windows 2000, Windows Server 2003, or a Windows NT 4.0 server or workstation.

This example adds an Agfa printer driver and creates a logical printer on a computer named SERVER.

NOTE: Both lines can be placed in a batch file or typed after each other at a command prompt. These two lines are wrapped for readability.
rundll32 printui.dll,PrintUIEntry /ia /c\\server /m "AGFA-AccuSet v52.3" /h "Intel" /v "Windows 2000" /f %windir%\inf\ntprint.inf

rundll32 printui.dll,PrintUIEntry /if /b "Test Printer" /c\\SERVER /f "%windir%\inf\ntprint.inf" /r "lpt1:" /m "AGFA-AccuSet v52.3"
This example deletes an AGFA printer on a computer named SERVER:
rundll32 printui.dll,PrintUIEntry /dl /n "Test Printer" /c\\SERVER
For more information about the available switches, type /? after the command.

In addition, at a command prompt, type:
rundll32 printui.dll,PrintUIEntry /?
The preceding command displays the entire list of usage switches with extensive examples for using this method.

Additionally, at a command prompt, type
rundll32 printui.dll,PrintUIEntry /Xs /n "printer" ?
The preceding command displays additional help for changing printer properties. The following example switches the current print driver to the specified new printer driver (already installed on the server):
rundll32 printui.dll,PrintUIEntry /Xs /n\\SERVER\PRINTERSHARENAME DriverName "Lexmark C752 PS3"


NOTE: The following syntax is an example that works correctly as long as the Standard TCP/IP Ports are created.
rundll32 printui.dll,PrintUIEntry /if /b "NORTH-US-SRTEST-TEST24-BOGUS" /f %windir%\inf\ntprint.inf /r "IP_157.57.50.98" /m "HP Laserjet 4000 Series PCL" /Z
If Standard TCP/IP Ports are not created, the following error dialog box may be experienced:
Printer User Interface
Printer rundll command failed.
Command: /if /b "NORTH-US-SRTEST-TEST24-BOGUS" /f %windir%\inf\ntprint.inf /r "IP_157.57.50.98" /m "HP Laserjet 4000 Series PCL" /Z.
You either entered a printer name that was incorrect or the specified printer is no longer connected to the server. Click Help for more information.

 

Back to Server 2003 Utilities


Privacy  About Us  Contact Us

Will make your computer behave!

Copyright (C) Tal Bahir, Inc 2008