Skip to main content

Windows 7 Printer Registry


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.".
Thinking there was something wrong with the network, printer driver and/or ports I (attempted to) uninstall/re-install the printer several times - ending up with several copies of the same thing in the process.

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

Popular posts from this blog

Why Me?

Well, here we are, another new year and yet another new blogger. Sigh. Don’t get me wrong, I don’t have anything against blogs - I totally get the point of blogging, I really do! - it’s just that I’m not a journal type of guy. I’m notoriously slack at posting or even returning correspondence on any of these social networking sites. Years have been known to pass before I might get around to letting Bob (not his real name) know that “ yes, I do think that Beck’s is a great beer ”. So why the hell am I writing a blog I hear you ask? Well, 2011 has brought a reasonably significant event in my life: I’m moving. More specifically I’ve left my current job with Company I and will be starting a new job with Company A (not their real names either). I’m also selling my house and moving 832km with my wife and four children from Wollongong, NSW to Melbourne, VIC . Well, slight correction: hopefully selling my house, we haven’t had any offers just yet... so it looks very likely that I’ll be movi...

Connecting to HyperSQL with OpenOffice.org

For those of you who wished for a 'user-friendly' graphical interface for a HyperSQL database, your wait is over! OpenOffice.org Base is the preferred graphical environment for a HyperSQL database as OOo actually utilises HyperSQL as its embedded database engine. Here's what you'll need: A HyperSQL database server. You can download HyperSQL from here: http://sourceforge.net/projects/hsqldb/files/ OpenOffice.org Base. You can download the full OpenOffice.org suite from here: http://download.openoffice.org/   And here's how to get it up and running: 1. Extract the downloaded HyperSQL bundle to a location on your local machine, e.g. C:\hsqldb-1.8.0.10 [optional]: Add the following entries to your system environment variables: name: HSQLDB_HOME value: <path to your HyperSQL installation, e.g. C:\hsqldb-1.8.0.10> name: PATH value: ;%HSQLDB_HOME%\lib; Note: This value should be added to your existing PATH value! 2. Install OpenOffice.org. 3. Confi...