Windows 2012R2 RDS - network printer stops working for specific user on specific RDSH

We have a Windows 2012 R2 RDS farm with 3 RDSH servers, and network printers on a dedicated print server.  Printers are deployed to users (User Configuration) via GPP Printers (apply once).  Every once in a while, some random user will start having a problem printing to the main network printer (PRINT1) that everyone uses the most.  When the issue happens, the user cannot print to PRINT1 at all.  Most apps will act as if the job was sent, but nothing prints and no job is created.  Notepad gives the following error:  A StartDocPrinter call was not issued.

A key fact is that when the issue happens, it is only for that user and only the specific RDSH they were on.    Other users can print to PRINT1 on the same RDSH server with the affected user, and the affected user can print to PRINT1 on the other RDSH servers.  The issue remains for the affected user even if user logs off and on the affected RDSH.  When the issue starts for a user, it starts in the middle of the session, not when they first logon.  In other words, they would be printing fine to PRINT1 throughout the day, and the problem pops up in the middle of the workday without them having logged off and on.  The affected user can print to other network printers on the same print server.  The only way to fix is to delete and re-add the printer for the user.

We have roaming user profiles and redirected folders.  Local profiles are removed from RDSH servers upon logoff.  The problem doesn't seem to be just with the user because otherwise it would follow them to other RDSH servers, and the problem is not just with a RDSH server because other users do not have a problem on that server.  We've tried removing and recreating the printer on the print server.
What printer setting/configuration is getting corrupted that is a combination of a user config and computer config?  This is quite confusing.  Any ideas what might be going on?
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Philip ElderTechnical Architect - HA/Compute/StorageCommented:
Install Print Management on the RDSH servers.

Make sure _all_ print drivers are set to ISOLATED that can be and restart the Print Spooler.

Why roaming and redirected? 2012 R2 uses UPDs (User Profile Disks) that can be network located. Roaming Profiles are no longer needed. Redirected Folders can be used if need be to keep their data somewhere else but otherwise we always use UPDs.
arms145Author Commented:
We tried setting the driver for the problematic printer to isolated and reboot, didn't work.  I'm not sure it's driver related, since it affects only 1 or 2 users when it happens and all other users are fine on same RDSH.   All printers have signed drivers from major makes (HP, Xerox, Kyocera), so should be stable.

We ended up upgrading some drivers, stripped out user configuration printers and went with computer configuration printers, and reboot all RDS servers.  Now we have even more bizarre issues:

One user is getting an error when trying to set certain printers as default (Operation could not be completed, error 0x00000709), but works for other printers.  The user can print to the printers that cannot be set as default.  Other users don't have this issue on same RDSH.

When a user tries to delete some shared printers, they get the expected message "Are you sure you want to remove your connection to the printer...".  For other shared printers, they get a UAC prompt asking for admin credentials.  Trying to delete the same printer has different behavior for one user vs another.

What a mess.  How can this be so unstable for a cleanly built 2012R2 RDS environment...we are banging our heads against the wall, nothing seems to work.  All of this works with no issues in our old Win 2003 SBS environment (no RDS) with all the same printers.
Philip ElderTechnical Architect - HA/Compute/StorageCommented:
Printing has always been a bear to manage in any RDSH setup. That's why there are third party products out there to manage the lot.

Here are some guidelines that work for us:
 + Use Universal Print Drivers for each manufacturer instead of product specific
 + Set ALL drivers to ISOLATED in Print Management
 + Set up internal printers _in_ RDSH Print Management (via IP)
 + Avoid Host-based printers (no PCL engine built-in)

We've had issues with all manufacturer's products. I cannot think of one that is not guilty of issues in a RDSH configuration to date.
Has Powershell sent you back into the Stone Age?

If managing Active Directory using Windows Powershell® is making you feel like you stepped back in time, you are not alone.  For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why.

arms145Author Commented:
Thanks, will try that except setting up IP printers in RDSH.  We have a dedicated print server...managing the printers separately on each RDSH would be cumbersome and not a good option for us.  It's baffling how a fundamental feature like printing can be broken this badly on RDS, doesn't anyone actually use this product without 3rd party software?
Regarding Host-based printers, what is that and how can we tell if one is installed?  All of the drivers on the print server are type 3 or type 4.
Philip ElderTechnical Architect - HA/Compute/StorageCommented:
We find that users connecting from home with some sort of consumer grade printer will have issues as a result of them being host-based. That means the print rendering gets done on the originating machine within the driver set and sent to the printer as a print ready stream.

As far as RDSH and printing we try and limit our setups to one or two printer manufacturer's products at best. With that we use their universal print driver installed in Print Management to limit the number of print drivers installed.

The more print drivers installed the more likely things are to not work.

We have one out of many that has required third party because of the way the print driver and print security components work. The native drivers do not allow those settings through to the RDSH.
arms145Author Commented:
We did a printing root canal:
1.  Cleared out all printer connections from every user's profile.
2.  Removed all computer printer connections from each RDSH.
3.  Removed all printer drivers from each RDSH and cleaned up printer-related registry items.
4.  Removed all unused printer drivers from print server, and made sure only the latest Win2012 R2 included drivers (with Windows Update) were used for only 2 manufacturers (Kyocera and HP).
5.  Set all drivers on print server to isolated.
6.  Applied GPO to force isolated drivers.
7.  Applied GPO to disable client-side rendering.
8.  Applied GPO to create user printer connections for only 2 out of our 12 printers.
9.  Logged on as testuser to each RDSH, verified printer connections, and set all the downloaded drivers from the print server to isolated (likely redundant due to GPO in #6 above, but just in case).

After all of the above and probably other cleanup I can't recall, we lasted for 2 days, then the same issues re-occurred for one user, and later another user, and the next day more users.

What a nightmare, we had been rolling along nicely with this shiny new environment and printing has derailed everything.  My best guess is that something in RDS is not properly isolating user print sessions and they are corrupting each other.

Is anyone using straight Win 2012 R2 RDS with a Win2012 R2 print server, and all printing works?  I've read about the strategy of having a GPO to delete all printers from user profile on every logout and recreate them on every login, but that is not an option for us because there are per-user printer preferences that need to be preserved.
Philip ElderTechnical Architect - HA/Compute/StorageCommented:
TSPrint is one option for problematic setups. We use this product for RDSH environments where copiers require security and account controls for one example.
arms145Author Commented:
TSPrint looks like a solution for issues with printing to local RDP client printers, which isn't our issue.  In any case, unless Microsoft will reimburse us for a 3rd-party solution after we paid for their broken product, we've already busted our budget trying to resolve this mess.  Furthermore, this shouldn't be a problematic setup, it is about as plain vanilla as you can get, all setup cleanly from the ground up with a new domain.
arms145Author Commented:
The only thing that worked to significantly mitigate, but not completely resolve, the issue was to run a nightly script to delete the following registry key and reboot, for every RDSH host:
"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Provider".  This has been a very frustrating and costly bug after months of headbanging, but hopefully now manageable.  Fingers crossed...

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Philip ElderTechnical Architect - HA/Compute/StorageCommented:
Some guidance may be found here too:
arms145Author Commented:
Good info, I wonder if they bothered to fix in 2012R2.  More evidence that RDS is not enterprise ready, I guess that's why Citrix is popular.  In any case, doesn't apply to our issue -  "You enable client printer redirection on the RD Session Host server." - We disabled client printer redirection from the outset.
Philip ElderTechnical Architect - HA/Compute/StorageCommented:
There is another one that I can't seem to find at the moment. The KB has a script in it to run to clear out all redirected printers that remote clients had. I'll keep digging.
arms145Author Commented:
The only approach that helped.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Windows Server 2012

From novice to tech pro — start learning today.