Frequently Asked Questions
Special thanks to the Microsoft Printing MVPs: Cari Miller and Bruce Sanderson for making this FAQ possible.
This posting is provided "AS IS" with no warranties, and confers no rights.
1.1. When a user, even an administrator, adds a network printer using the Add Printer wizard, the printer is only added for that particular user. If another user logs on at that computer, the network printer is not available for them until they add it.
1.2. A network printer is much like a mapped network drive in the sense that it is just a reference (pointer) to a printer share on another computer. These kinds of things are specific to the user that creates (adds) them.
There is NO option in the Add Printer wizard to add a network printer for all users of a computer, but the capability to do so does exist in Windows 2000, 2003 and XP.
1.3. Here are the steps to add a printer for all users on a computer. Note that this process adds a printer permanently, just as does the Add Printer wizard. There is not much point in placing these commands in logon or startup script because that will result in multiple instances of the printer on each computer, one for each time a user logs on or the computer is restarted. However, these commands can be used in command files (.cmd files) or scripts, which makes it relatively simple and quick to add multiple printers to one computer, the same printer to multiple computers, or a mixture of both.
1. logon at the computer with an administrative user account
a. open a Command Prompt window
b. type the command:
rundll32 printui.dll,PrintUIEntry /ga /n\\UNC-path-to-the-printer
For example, if the printer’s name is P1 and it is defined on the computer C1 (i.e. the Print Server is called C1), type exactly:
rundll32 printui.dll,PrintUIEntry /ga /n\\C1\P1
1.4. If you want to, you can add a network printer remotely -- that is, on another computer -- by including the /c parameter. For example, if you want to add the printer \\C1\P1 to the computer called CC while logged on at another computer, use this command:
rundll32 printui.dll,PrintUIEntry /ga /c\\CC /n\\C1\P1
The printer added this way won't be useable (e.g. won't show up in the list of available printers) until the Print Spooler service is restarted or a user logs on. You can restart the Print Spooler by typing these commands in the Command Prompt window:
net stop spooler
net start spooler
You can restart the print spooler on another computer by using these commands:
sc \\ComputerName stop spooler
sc \\ComputerName start spooler
You can also use the Computer Management console to restart the print spooler on the other computer:
1. click Start, Administrative Tools, Computer Management
a. in the left pane, right click on the root of the tree (Computer Management (Local)) and select Connect to another computer
b. type the name of the computer (e.g. for the above example this would be CC) and click OK
c. in the left pane, click the + sign beside Services and Applications
d. click Services
2. in the right pane, right click on Print Spooler and select Restart
Another alternative is force the other computer to restart using the command:
Shutdown -r -m \\computername
shutdown -r -m \\cc
1.1. Additional information is available at: http://members.shaw.ca/bsanders/NetPrinterAllUsers.htm
2. When I open Printers and Faxes there are no printers but there were before (my printers disappeared!)
You want to print something, but the printer you used before does not exist anymore -- the application (e.g. Notepad) says there are no printers. You open the Printers and Faxes folder and it is empty. You are absolutely certain you added one or more printers some time ago, but they aren't there any more.
2.1. The service called Print Spooler manages all of the printers as well as the actual printing process. If the Print Spooler service is not running, it's like there are no printers.
The usual reason that the Print Spooler service is not running is because a printer driver has failed, either during its initialization or when you tried to print on a printer that uses that driver.
Printer drivers can fail for all kinds of reasons, but a very common one is that it was built for an earlier version of Windows (e.g. Windows 95) and can't work under the Windows version you are using (e.g. Windows XP). You could have such printer driver without realizing, by, for example:
1. upgrading from an earlier version of Windows without first deleting your printer.
a. you put the CD that came with your printer into your CD drive and it automatically started the printer installation process even though there are no drivers for your Windows version on that CD.
b. you added a network printer and an incompatible driver was automatically downloaded from the print server.
Regardless of how the driver got installed, you have to uninstall it to overcome this problem, then install a Windows XP compliant driver for your printer. Windows XP comes with printer drivers for many, but not all printers. If Windows XP does not have a driver for your particular printer, there's a good chance you can download one from the printer manufacturer's web site.
2.2. Removing an errant printer driver is not always easy, particularly if the Print Spooler service crashes during startup. If the Print Spooler service can be restarted successfully, the easiest way to uninstall a printer driver is to use the Printers and Faxes folder. If the Print Spooler service won't restart, then you have to uninstall the printer driver the hard way.
If you have multiple printers and don't know which one is causing the problem, you may find the easiest thing to do is to delete all of the printers and printer drivers, then add the printers again, ensuring you are using printer drivers that are specifically for the Windows version you have (e.g. Windows XP).
2.3. Here's the easy way to remove printers and printer drivers:
1. open a Command Prompt window and type the command:
a. If you get a message The requested service has already been started, this is OK because the Print Spooler service was already running, so proceed with the remainder of the “easy way”.
b. If you get the message The Print Spooler service was started successfully, proceed with the remainder of the "easy way".
c. If you get a message that indicates the Print Spooler could not be started or failed during startup, you'll have to use the "hard way".
2. open the Printers and Faxes folder
a. right click on the printer and select Delete
b. after the printer is deleted, click File, Server Properties
c. select the Drivers tab
d. select the driver that is causing the problem and click Remove
e. if you don't know which printer driver is causing the problem, repeat the immediately preceding step for all of the drivers
Now you're ready to add the printer(s) again making sure to use only drivers designated as for your Windows version.
2.4. Here’s the hard way to remove printers and printer drivers:
1. Check in Control Panel, Add/Remove Programs; if there is an entry relating to one of the printers, select it, then click Change/Remove. Follow the dialog and Uninstall All or Remove All as appropriate. Some printer software has programs that show up here and it will be a good idea to remove those before going any further.
2. If the Print Spooler service is operational:
a. open the Printers and Faxes folder (Printers for Windows 2000)
b. delete all of the printers
c. click File, Server Properties
d. select the Drivers tab
e. for each entry:
i. select the entry
ii. click Remove
Usually, this will do a pretty good job of cleaning out drivers with Windows 2000 and later (not so with Windows NT
3. If the Print Spooler service is not operational, or you want to make certain there are no printer driver remnants:
a. open regedit (e.g. click Start, type regedit and press Enter) and navigate to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows NT x86\Drivers
b. under this key, there will be the keys Version-2 and Version-3 (one or the other of these may be absent - not a problem)
i. the sub-keys under these contain the printer driver configuration information
ii. delete all the sub-keys inside Version-2 and Version-3, but not these keys themselves
c. navigate to:
i. under this key there will be several sub-keys. These sub-keys have information about Printer Port Monitors
ii. delete all the sub-keys except:
· BJ Language Monitor
· Local Port
· Microsoft Document Imaging Writer Monitor
· PJL Language Monitor
· Standard TCP/IP Port
· USB Monitor
d. open a Command Prompt window
e. key the commands
f. open Windows Explorer
g. navigate to %systemroot%\system32\spool\drivers\w32x86 (systemroot is usually c:\Windows, but it might be c:\winnt or something else; this is set when the OS is installed).
h. inside the w32x86 folder, there will be folders with the names 2 and 3 (one or more of these may be absent - not a problem)
i. delete all of the files and sub-folders in each of the 2 and 3 folders, but not the folders themselves
ii. delete any other folders with names starting with hewlett_packard, hphp or something else
i. restart the print spooler (see steps 8 and 9 above)
At this point, the system should be pretty well back to the way it was before any printers were installed.
2.5. Additional information is available at:
You have a printer connected to a Windows NT, 2000, 2003 or XP computer that is shared. You connect to that share from a Windows 95, 98 or Me computer, but always get prompted for the password for the IPC$ share. You can't find anywhere on the NT, 2000, 2003 or XP computer to set such a password and all passwords you key get rejected.
3.1. You can't find where to set the password because there isn't one!
3.2. When a user attempts to connect to a share (printer or file) on a Windows NT, 2000, 2003 or XP computer, the target computer requests "credentials" from the client. The client computer responds with the logged on username and password. If this does not match any username and password known on the target computer, that computer will send back a "failed authentication" message. A Windows NT, 2000, 2003 or XP computer will respond to this by prompting the user for a username and password. Windows 9x, unfortunately interprets this to mean a request for the password for the IPC$ share instead.3.
3.3. The solution is to logon at the Windows 9x computer with a username and password that is known on the NT, 2000, 2003 or XP computer. Then, when the target computer requests credentials, the Windows 9x computer will send the logged on username and password and that will "authorize" the user on the client to access the target computer.
4. When I click "Add Printer", nothing happens at all or I receive an "Operation could not be completed" error message.
4.1. f you have LanTastic installed, navigate to the %windir%\system32 (usually c:\windows) folder and replace printui.dll with mprintui.dll (mprintui.dll is the original version that the LanTastic installer replaces with its own version). printui.dll is the system component hosting the Add Printer Wizard.
4.2. If you receive this error and do not have LanTastic installed, one of the system DLLs that are needed for the Add Printer Wizard to work may be missing or have been replaced by another file. You will need to restore the old file:
1. open a Command Prompt window
a. click Start, Run
b. key cmd and press Enter or click OK
2. key sfc /scannow to run the system file protection scanner. This may prompt you for the Windows CD to restore the original file versions.
5. When I use the Add Printer Wizard to install a printer, regardless of what printer I am trying to install, when I click "Finish" I get the error "Operation could not be completed".
There seem to be cases where an internal cache file gets corrupted, possible from an earlier power failure. Navigate to the %windir%\inf folder (it's a hidden directory, so by default you won't see it in explorer, either turn on "show hidden files" or use the command line) and delete ntprint.pnf, printupg.pnf, infcache.1 and any oemXXXX.pnf (XXXX being a sequential number). Delete only the .pnf, not the .inf - the .pnf is the cached version of the .inf and will be regenerated if it doesn't exist.
6. When I try to start the spooler I get an error message "the dependency service could not be started".
Some Lexmark printer drivers install a service called LexBCES, and make the spooler dependent on that service. There seem to be a number of cases where the LexBCES service gets hung, and that then blocks the spooler from starting. To fix this:
1. open a Command Prompt window
2. key sc config spooler depend= RPCSS (note the space after depend=) and press Enter. This will probably leave the Lexmark printer non-functional but at least allow printing to other printers. Contact Lexmark support or visit www.lexmark.com to get an updated version of the Lexmark printer driver.
(If you turned on ICF as part of the Blaster fix, this applies to you!)
You’ll need to configure ICF to allow your computers to see your shared printer. You’ll need to open “File and print sharing” ports on the computer hosting the shared printer. Instructions are available at http://www.microsoft.com/security/protect/ports.asp. Some hardware vendors also use some additional ports to send information to your computer: if you have features that aren’t working, you should contact the manufacturer of your printer and ask if they require any additional ports.
You’ll need to open up port 515 in ICF. See the instructions at http://www.microsoft.com/security/protect/ports.asp
If you’re using a printer shared over the network that is hosted on another computer, and Internet Connection Firewall (ICF) is enabled, this may be causing the problem. ICF is doing its job - protecting your computer from receiving possibly insecure new connections from other computers.
If you need this functionality, you could open (on the machine missing the icon) the printing and file sharing ports covered in the section
Microsoft recommends that you do NOT do this on any machine unless it’s for sharing a printer - this configuration reduces the protection ICF can give you.
Last Updated 30 Dec 2004