How do print servers work?
This is more of a conceptual question than a question about an actual setup in practice.
Let's say I have a network printer, a print server (server A) and workstations B and C that will use the print services. (All of them are in the same subnet).
When workstations B and C want to use the printer through server A, do they:
- Still need the printer driver from the network printer? If they do, then after they download the printer driver, do they still connect to server A for printing?
Or:
- Connecting directly to the network printer instead (since they are all in the same network)?
In general, is a print server used to:
- Just distribute the drivers to the workstations which will then connect to the network printer directly?
Or:
- Manage the printing to the printers, such that workstations will connect to the print server instead of the connecting directly to the printer? If so, why does the workstation still have the printer driver installed?
Solution 1:
In general, print servers are used to both distribute drivers to client computer and centrally process and manage the print jobs. In large environments it's useful to have homogeneous drivers (which will usually contain certain printing configurations that are desirable to control centrally) in addition to having a central location for managing and logging print jobs. For example, the most common setting I see companies want to "push out" to client PCs from the print server is to default to black and white printing, rather than color printing (to save money on the more expensive color ink).
So yes, in the general case, the client computer will connect to the print server, acquire the printer driver from it, and then connect to the server to actually print to that printer. It is possible, though much less common, to connect to a print server just to get the right driver, install the printer directly, with that driver, and then bypass the print server by printing directly to that printer. But note that this is dependent on how the printer is installed on the client. It's either installed "directly" as a stand-alone printer on the client, or installed as a shared printer from the print server, and this is what determines whether the client connects to the printer directly, or through the print server instead. This is where the distinction between a physical printer ("print device") and a logical printer matters - it is actually possible to have the same physical print device installed multiple times as different logical printers. For example, by installing the same print device once directly, and once via the shared printer on the print server.
Since you tagged your question with Server 2012 R2, this Technet doc on Server 2012 Printer Sharing Technologies will probably be of interest. Note the section titled: Enhanced Point and Print, which is a technology that allows clients to print to compatible printers through a Windows Server 2012+ print server without installing a specific driver for the printer on the client. Meaning, of course, that it's also possible to use a print server so that clients don't need to install drivers for specific printers, but it's still most common that a print server will but distribute drivers to client and process/manage client print jobs.
Solution 2:
A printer shared using Windows' file and printing sharing is exported via the SMB/CIFS protocol, which by itself provide little more than a "networked pipe" to the printing device. In other words, the shared printer become nothing more than a networked device, with the client in need to install the correct drivers to use it. The printer-sharing server is in charge to store the required drivers and to provide them to the connection clients.
In recent Windows version, sometime the shared printer is exported via a standard protocol as IPP or WDS. In this case the client don't need to install 3rd party driver simply because Windows has the relative standard drivers already build-in.
Finally, it is sometime possible to configure the print server itself as a real print queue. In this case, the client passes the page's postscript definition to the server, asking it to print the uploaded page. In this case the client does not need any driver, but it is a far less common scenario (one possible drawback is the very limited printing option exported to the client). This requires very recent Windows version (Win8/Win2012+).