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 |
Services
Utilities
Remove Pop-ups
|