Thoughts from the EPS Windows Server Performance Team
Useful Microsoft Blogs
This is in continuation of the topic discussed by John Dickson in his blog post entitled Installing Windows Vista Print Drivers on Windows Server 2003 http://blogs.technet.com/askperf/archive/2008/09/19/installing-windows-vista-print-drivers-on-windows-server-2003.aspx
With advancing technology and increasing demand for resources, many enterprises are now opting for 64-bit operating systems on their servers. The OS on the client machines could be either 32-bit or 64-bit depending in the customer’s environment and requirements.
We are specifically dealing with Print server in this article. When we deploy a 64-bit print server which is to cater to 32-bit clients, usually the clients use the point and print functionality to connect to the desired print queue on the print server and drivers are mapped.
This requires the 64-bit print server to have 32-bit printer drivers installed.
Following are the steps to install 64-bit printer drivers on a 32-bit server. We will also discuss a common issue that we see during installation. (I’ll also be enumerating the steps implemented vice-versa i.e. Installing 64-bit printer drivers on a 32-bit server)
Note: File and Printer Sharing must be enabled.
Installing 64-bit printer drivers on a 32-bit server:
1. Go to the Printers and Faxes folder.
2. Go to the properties of the print queue for which you intend to add the x64 driver.
3. Go to the Sharing tab and choose Additional Drivers.
4. Choose x64 as the processor type and click OK.
5. When prompted, point to the location of the x64 driver.
This should install the additional x64 drivers required for the x64 clients to print through the x86 servers.
You can also perform the above steps remotely from another machine by connecting to the print server using the UNC path \\printservername and then browsing to the Printers and Faxes folder.
Another option is to install the driver remotely using the Add Driver wizard. To do this:
1. Logon to the 64-bit server with an Administrator account. This account has to have administrative privileges on the 32-bit print server as well.
2. Connect to the print server using the UNC path (Start -> Run -> \\32BitPrintServer)
3. You should see the Printers and Faxes folder. Open this folder
4. Go to File--> Server Properties -> Drivers tab and choose Add Driver. Using this option add the required driver by choosing the appropriate architecture type.
Note: When you add the driver directly it doesn’t check if the driver matches the existing x86 version. If it does not the clients may not be able to download the driver and print successfully. See the section on Issues for details.
A great scenario to use the remote install option is when you don’t have the OEM version of the x64 driver available or if you prefer to install the inbox drivers instead.
When you install remotely by connecting through UNC, it first looks for the driver in the local driver store. If available, it will install the driver without any further prompts. Only if an inbox driver is not available will it prompt for the driver location.
You can also take advantage of this method to install inbox 32-bit drivers, where the print server doesn’t have an inbox driver for the printer, but a later version of the OS has the required drivers inbuilt.
Installing 32 Bit printer drivers on a 64 Bit server:
· Login using a domain administrator account to a 32 bit machine.
· On any one of the clients machine running 32-bit OS
· Access the print server \\PrintserverName\Printers
· Open the printer required to add the 32-bit driver
· Go to properties -> Sharing Tab -> Additional drivers
· Check the box with appropriate architecture type.
In this case it is nothing but using the same steps as in the x64 driver scenario, but in this case the additional driver we will be adding will be a 32bit driver.
Common Issues seen while installing a 32-bit driver on a 64-bit server and vice versa.
1) Option to choose OS architecture i.e. x64 could be grayed out.
2) You may see the error ‘Driver is not installed.’
3) You may see architecture incompatibility errors while trying to install drivers.
The x64 option could be grayed out or not visible if the OS on the print server doesn’t support or is not aware of the x64 architecture. A good example is Windows 2000 print servers where you cannot add an x64 driver.
The option is also grayed out in Windows Server 2003 RTM (without any Service Pack)
The ‘Driver is not installed’ error can occur if the additional driver you installed doesn’t match the existing driver in name and INF parameters.
These names need to be the same if the driver installation is to go through without errors.
An example of this is a recent case I was working where we needed to install a 32-bit driver for an already present (inbox) HP LaserJet 8150 PCL 5 x64 driver.
The obvious thing to do first was to obtain the 32-bit driver from the OEM website for installation. Upon looking for the HP LaserJet 8150 PCL 5 (32 bit) driver, we find that vendor gives us the option to download HP Universal Print Driver for Windows PCL 6. Hence we downloaded and tried installing it, but this failed.
The problem was that when we were using the inbox 64-bit driver to install the HP LaserJet 8150 PCL 6 driver, the actual driver is named “HP LaserJet 8150 Series PCL6”.
However, the HP LaserJet 8150 PCL 6 (32-bit driver) from the HP website is named “HP Universal Printing PCL 6”.
As you see, the names are different and hence the installation errors out. The same installation goes through successfully if we download the HP LaserJet PCL 6 32-bit driver from the website. This is because the driver is named “HP Universal Printing PCL 6”, which is the same name as the 64-bit driver.
I hope this helps to give you a better understanding of some of the nuances of print driver behavior on various types of servers.
Thank you very much for your time,
I had to do just this lately (32 bit drivers onto a 64 bit server).
I hated it - It stunk of bad choices at every level of the chain. Ultimately, MS should encourage vendors to provide a combined 32 bit/64 bit install package and allow both sets to be installed for sharing automatically AND vendors should go out of their way to provide combined driver sets that ensure the printer can be shared correctly between the various types of clients.
Also, I've used Linux based devices (many of the NAS devices are linux based and offer printing, heck even my router does!) that can host printing AND print drivers, but I've never been sure how to put windows printer drivers on it for that task - perhaps this a related area you could cover in a future article?
I tried "Installing 32 Bit printer drivers on a 64 Bit server" according to this article but get an error message:
"A driver Canon Bubble-Jet BJC-6100, Type 3 - Usermode, x86 could not be installed. Access denied".
But why, because I logged in on the 32bit Windows 7 computer as domain administrator? The Printserver is a Windows 2008 R2 64Bit server.
Do you have an idea why there is an "Access denied" message?
Can you help me please?
Thank you for the feedback. I was wondering if you could provide me woth more details about how you are trying to make this work. Also please let me know if this issue is specific to "Canon Bubble-Jet BJC-6100" driver or do you run into the same issue with all drivers?
@Xepol: With Windows Server 2008 R2, all of this has become a whole lot simpler. All you need to do is choose 'Drivers' in the Print Management Console, choose the architecture type and proceed with driver installation.
@Shamu35: Hello Shamu. If you are working with Windows Server 2008 R2 box, then your life just got a whole lot simpler. You don't have to go through the process of installing cross architecture drivers with this OS. All you need to do is access Print Management Console, choose 'Drivers' and add a driver by choosing appropriate architecture. Please let me know if there is something I could do to help you with this.
While the Print Management console allows you to add printer drivers for various printers into a w2k8 R2 box, it doesn't link the drivers to the print Q. Thus when connecting to the 64 bit print q from a 32 bit system, the 32 bit system still and always asks for the 32 bit driver each and every time. Very annoying. I hope someone at microsoft fixes that issue.
On TechNet web page "Update and Manage Printer Drivers" is the following note.
Could you expand/explain how to implement this note.
"You might not be able to extract some printer drivers without installing them. If this is the case, log on to a client computer that uses the same processor architecture as the printer drivers that you want to add to the print server, and install those printer drivers. Then use Print Management from the client computer to connect to the print server, and add the additional drivers from the Additional Drivers dialog box. Windows automatically uploads the drivers from the client computer to the print server."
using the Rundll32 printui.dll utility, I'm able to map out the Printer Share on a 32 bit Print server to a 64 bit client. The problem is that the 64 bit client cannot control the printing preferences and then the interface crashes. The Print Driver names are the same but the version numbers is off (22.214.171.124 vs 126.96.36.199). Would the version number cause the printer driver to load the 32 bit into the 64 bit client ?
I am using windows server 2008 64 bit,in that we installed printer and in our office we have xp,7 client pc,so win 7 is configured sucessfully but xp is creating issue..