📜 ⬆️ ⬇️

How to solve print subsystem problems in a terminal server

Greetings,% habrausername%!

Today I would like to share my experience with troubleshooting printing problems on a Microsoft terminal server.

Details under the cut.

Instead of intro


Surely, almost every system administrator working with Windows and, in particular, with a terminal server, faced with printing problems.
The phone is broken, everyone has the same problem: “I click on the seal - nothing happens!”. We go to watch the logs and see the following picture:
')
image

Familiar? No details, nothing - guess, gentlemen administrators! There are a lot of questions on this topic on Internet forums and very few complete, structured answers. Well, let's try to put together all the solutions.

Causes and Solutions


So, what could be causing this situation? Most of these situations are caused by drivers installed on the server.



And now let's go through all the points in more detail. To begin with, we will install the “Print and Document Services” role on our terminal server.

image

This will allow us to conveniently manage the drivers and printers installed in the system.

Identical drivers


I think there's nothing to talk about here. It is worth remembering that the driver must be taken from the official pages of the manufacturer of the printer. Just one more thing - PCL5 behave the most stable. If there is a choice between PCL5 and PCL6, it is worthwhile to install PCL5 (respectively, server and client).

Driver isolation


In Windows 2008, there was a great opportunity to isolate printer drivers. Now the printer driver is not loaded by Spoolsv.exe but by the special process PrintIsolationHost.exe . When the printer driver crashes , only one instance of PrintIsolationHost.exe flies , and the Print Manager service itself remains operational, which, as you understand, greatly affects the mood of users;)

To enable this feature, we need to open the local group policy editor ( gpedit.msc ) and go through the following way: "Computer settings -> Administrative templates -> Printers". Find and include the following items:


Will look like this:

image

TS Easy Print


Apparently, having heeded at last the groans of the system administrators, Microsoft decided to do something with the need to install a zoo of drivers on the terminal server and spoolsv.exe falling because of this. As a result, TS Easy Print technology was born. The key feature is that we no longer need to install drivers for each printer on the server — instead, the unified driver Remote Desktop Easy Print is used , respectively, we move away from the problem of a falling spooler — after all, all printing operations are performed on the client’s computer.
In order to explicitly determine what we want to use on the TS Easy Print terminal server, it is necessary again to go to the local group policy editor ( gpedit.msc ) in the following way: "Computer settings -> Administrative templates -> Windows components -> Services remote desktops -> Remote Desktop Session Host -> Printer Redirection. We are interested in the following items that need to be included:


The second point is necessary if we want the client to have only his default printer in the terminal.

image

Next, you need to clear our server from unnecessary printer drivers. This can be done in the “Print and Document Services” role manager.
Carefully remove the driver! You need to keep things like “Remote Desktop Easy Print” and “Microsoft XPS Document Writer” alive. They are responsible for the transfer of print to the client.

We now turn to the requirement on the client. There are only two of them - using RDP protocol version 6.1 or higher and .NET Framework 3.0 Service Pack 1 (SP1). More from them is not required.

Third Party Solutions


To get rid of the problem of a falling spooler such software as, for example, ScrewDrivers ( site ) is called. It provides a client-server architecture.
ScrewDrivers server is a component that must be installed on the servers on which you intend to use printing in a terminal session. The ScrewDrivers client must be installed on the workstations. It is this component that allows creating virtual printers on the terminal server that correspond to the user's local printers.
In general, Easy Print reminds, but not for free (however, there are medicines;).

Conclusion


I want to take my leave. Perhaps the information is not complete - I will be glad to hear the additions. I hope this helps someone to avoid hours of hassle;)
Good luck!

Source: https://habr.com/ru/post/140106/


All Articles