fried-gold.JPGI previously wrote about how to delete a local printer on your network but, I have expanded my knowledge on local and mapped printers using the command (cmd) line and decided to share my omnipotence with you. (my head just exploded from ego overload) These little nuggets of fried gold will keep you on the payroll for many years to come. (try to control yourself)

I am going to list some of the most useful cmd scripts that I can think of and then I will give you a list of your options and examples for you to spank at your leisure.

So let’s say you want to get to the properties of a local printer named bigmac 22 on a PC named mcds200, this is the script that will get you there…

rundll32 printui.dll,PrintUIEntry /p /n\machineprinter

rundll32 printui.dll,PrintUIEntry /p /n\mcds200″bigmac 22″

tip 4 n00bs:

  • make sure to change local/network printer with the actual name of the printer and change the machine/server to the exact name of the PC you want to change the printer on.
  • make sure to include quotes for the name of something that has a space, because cmd treats a space as a new option/task to process. Example, if your printer name is green eggs and ham, your cmd line printer name should look like this “green eggs and ham”

Now you can change the printer name, driver, whatever on that PC and yes I have tried it, and it works.

Deleting a local printer or network printer on another PC

Local: rundll32 printui.dll,PrintUIEntry /dl /n “Local Printer” /c\machine

Network: rundll32 printui.dll,PrintUIEntry /dn /n “Network Printer” /c\machine

How to install a local or network printer on another PC with the print wizard setup

rundll32 printui.dll,PrintUIEntry /il /c\machine

Set the default printer on another PC

rundll32 printui.dll,PrintUIEntry /y /n “Local Printer” /c\machine

See the queue on a specific printer

rundll32 printui.dll,PrintUIEntry /o /n\machineprinter

Printer cmd options:

/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 | IA64 | x64
/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:
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, 98 and Me | Windows NT 4.0 | Windows NT 4.0 or 2000 | Windows 2000 or XP | Windows XP
/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 /v and /h to accept 0,1,2,3, respectively for Windows x64 and Windows IA64 | Windows NT x86 | Windows NT Alpha_AXP | Windows 4.0
/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)

More examples

Run server properties:
rundll32 printui.dll,PrintUIEntry /s /t1 /n\machine
Run add printer wizard localy:
rundll32 printui.dll,PrintUIEntry /il
Run inf install:
rundll32 printui.dll,PrintUIEntry /if /b “Test Printer” /f %windir%infntprint.inf /r “lpt1:” /m “AGFA-AccuSet v52.3”
Run add printer wizard using inf:
rundll32 printui.dll,PrintUIEntry /ii /f %windir%infntprint.inf
Add per machine printer connection:
rundll32 printui.dll,PrintUIEntry /ga /c\machine /n\machineprinter /j”LanMan Print Services”
Delete per machine printer connection:
rundll32 printui.dll,PrintUIEntry /gd /c\machine /n\machineprinter
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 or XP” /f %windir%infntprint.inf
Add printer driver using inf:
rundll32 printui.dll,PrintUIEntry /ia /K /c\machine /m “AGFA-AccuSet v52.3” /h “Windows NT x86” /v 3
Remove printer driver:
rundll32 printui.dll,PrintUIEntry /dd /c\machine /m “AGFA-AccuSet v52.3” /h “Intel” /v “Windows 2000 or XP”
Remove printer driver:
rundll32 printui.dll,PrintUIEntry /dd /K /c\machine /m “AGFA-AccuSet v52.3” /h “Windows NT 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

Of course, I haven’t tested all these out so you will have to play a little. GL