Here's today's annoyance: Adding a new network printer to Windows 7 failed to update the Windows registry properly.
At work the other day I needed to add a new network printer. Pretty easy huh? After browsing for the network device, installing the correct driver and running of a test page I thought I was done. Apparently I was mistaken.
Here's what happened after the printer was added:
- Applications such as Adobe Reader X fail to "see" the added printer.
- Applications such as Microsoft Word 2010 or Excel 2010 can "see" the printer (kinda) but will not let you select it.
- Could not set and/or change the default printer, fails with "Operation could not be completed (error 0x00000709). Double check the printer name and make sure that printer is connected to the network.".
I found that removing a printer via Device and Printers right-clicking on the device and selecting Remove device does not work if there are items in the print queue - but it will not inform you of this fact (the device disappears, but reappears when you refresh the view). Similarly, the Printer Server Properties will show you the list of ports, drivers etc but will not let you remove them with error "Device in use".
The Printer Server Properties dialog can be accessed from Devices and Printers, highlight a printer then select the Print server properties menu item, or from a command prompt by running: printui /s /t2
The best way to view the current state of your printers, print queues, printer ports etc. is to use the Administrative Tools Print Management snap-in. This will show you all installed printers, drivers and current print queue state and will let you review / delete items as required.
So, once all the duplicate entries had been tidied up, a bit of internet research on the 0x00000709 error message led me to suspect the \HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows registry key was misconfigured. However, I wasn't able to alter the value for Device as suggested in various posts such as this.
I also found that the old printers / ports that I thought I had removed earlier were still listed under \HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices and \HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts. After exporting these keys as a precautionary backup, I remove the redundant entries and under the \HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices I manually added a new String Value entry for my newly installed printer as:
- Name: <printer name from the Printer Properties>, e.g. "Canon iR-ADV C5030/5035 PCL6"
- Value: winspool,Ne<XX>: where <XX> is a unique/unused index number for your printer. e.g. "winspool,Ne01:"
Following an reboot, voila! My applications could now see (and more importantly use) the new printer.
I still need to delve into the reason why the registry isn't being configured properly (and I still can't change the default printer), but for now the immediate printing problem is solved. Kinda.
There's also a Microsoft Support post here that outlines the registry entries for printing (summary below):
Registry Entries for Printing:
- The per-user settings for the current default printer are stored under this key: HKEY_CURRENT_USER\Printers
- The hardware-specific information about drivers and print processors is stored under this key, where Hardware represents the subkey for a specific Windows NT platform, such as Windows NT x86 or Windows NT R4000: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print
Printing Entries for Users:
- The following Registry path contains a description of the default printer, as selected by the current user: HKEY_CURRENT_USER\Printers
- The following Registry paths contain the user preferences for print devices in Windows NT 4.0: HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices, HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion \PrinterPorts
- The Device value in the following Registry path contains the user's default printer: HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows
- The following Registry path contains the user preferences for Print Manager in Windows NT 3.51 and earlier: HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion \Print Manager
Control\Print Entries for the Computer:
- The principal information for printers appears under the following Registry path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print
Print Monitors Entries:
- The entry in the following path defines the DLL filename for the appropriate print monitor: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Monitors \<Provider Network Port>
Printers Entries:
- Each installed printer has a subkey in the following Registry path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers \<printer name>
Print Providers Entries:
- Each print service provider has a subkey in the following Registry path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Providers \<Print Services Name>
Comments
Post a Comment