Deploying Printers via GPO in 2008 R2 - How do I improve it's performance?


We've got some 60 users spread across 3 RDS Servers all using Server 2008 R2.  All users stick to their own RDS Server, only changing if there is an issue preventing them from connecting to it, and they use one of the others.  All users see all of the print queues.

We set up all of the print queues in Print Management and then deployed them from there to a GPO using the 'per user' setting, but have noticed that there is quite a performance hit from how the printers were set up in our old 2003 server, where we had all printers set up as local printers.  Performance hit as in - when they first log in it takes a while to populate all 25 print queues (yes 25 for 60 users - we have managed to cut this down from 40-50-odd in the old 2003 enviro!), and also if they do a resource intensive job, such as running a report that populates an Excel spreadsheet with data from our SQL Server - the report takes about 30secs to run.  About 30 secs to 2 mins after the report has been finished - or they have logged onto the server they printers appear again.... gradually.  Physical printing wise - there are no issues.  Often if a user's default printer doesn't appear within a given timeframe, it will select the first printer on the list..... to the annoyance of the user!

So, how can I improve the speed at which printers populate?  In terms of what processing is done, is the a difference between deploying by computer and deploying by user?  From my reading I understand that when you update printer preferences it will by default auto update - by user it will do this for each user - does it do the same per computer?  Or does it just do it once per computer?  Is there anywhere else that we can gain performance in the GPO?

Please note - I'm not looking for 'stab in the dark' answers - I'm after informed, experienced advice in this field.  We seem to be pioneers with this in our own circle of IT providers - but I can't believe that there isn't more experienced knowledge out there that we can tap!
Who is Participating?
For other reasons we have also set the local profiles to delete when the user logs out.  

This does unfortunately mean a performance hit - the profile has to be downloaded to the server and the printers in the profile or the GPO have to be-regenerated for the user profile :(

I'm not sure if I can offer other suggestions to improve it I'm afraid.
There has always been printing performance issues with RDS or ICA solutions, and you're not alone.  Currently we deploy printers per user, because it suits us to do so.  In my environment however, it's the FIRST login which is slow - subsequent logons are not

We use GPO's too, but we rely on the "Printers" policy in the Client Side Extensions, rather than making Print Management create GPO's for us.  Individual printers can still be filtered out per user or per group.  

Printers Client Side Extention
Use "Run in logged-on user's security context (user policy option)" to ensure it propagates to the user's profile, and this is where you set Item-level targetting for per user or per group.

Additional Settings
If you're using print management, then it is probably creating one policy per printer - this does not help you at all - increased policies means slower login performance.

Another thing to note - printers which are deployed at a user level are stored in the user's profile, which is why I use the action "Update" rather than "Create".  With Update, if the printer is there, it doesn't recreate it

And lastly - do you use roaming profiles for these users?  If they're getting a new profile each time they are logging on, the only way you will be able to improve the speed is to install the printers on the servers.

Try with a group of users, deploying the printers via a new single policy which contains all the printers, plus all the targetting you desire - and see if this improves performance.

I do remember supporting an office where they had 34 personnel and 37 printers.
bosshognzAuthor Commented:
Hi Lester - thanks for replying!
Print Management - reason I chose this is because it seems to be the best/easiest way to deploy printers - according to MS..... I mean you set up the printers in Print Management - you create a GPO on AD and then you add the printers to the GPO by right clicking on them - it seems so simple that anything else seems to be a legacy way of doing it.

The 'Per Computer' 'Per User' settings are in the Printer Deployment window when you deploy from Print Management - but basically it just picks what side of the GPO it uses - User or Computer Config.

We have 2 Print GPOs - for the different groups of users that never use each other's printers - not doing 1 GPO per Printer.

Roaming profiles - yes we use these as we want the user experience across the 3 RDS servers to be the same - IE: no matter what server they log into they see the same.  For other reasons we have also set the local profiles to delete when the user logs out.  

I have added one printer to a new GPO on using the 'Per Computer' setting to see what performance gains (if any) we can get from it.

To be honest - we'd love to have 1 print queue per printer - there are only 12 printers in the organisation - but each printer has to have 2-3 queues.  No way around it.  We did cut it down from 4-6 queues per printer - so we are making some way into it!
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.

I'm going to head down a different route..and look to reduce the queue count, thus speeding it up.

"To be honest - we'd love to have 1 print queue per printer - there are only 12 printers in the organisation - but each printer has to have 2-3 queues.  No way around it.  We did cut it down from 4-6 queues per printer - so we are making some way into it!"

Why is this?
bosshognzAuthor Commented:
For the user's sake - and our sanity.  It is a long story and completely off topic - short story is that all print jobs are charged to clients and they don't like making mistakes by printing double or single sided by mistake.  As I said - completely off topic - and is not able to be changed.

I don't want to go back to local printer creation on each of the RDS servers - I used to spend DAYS on these when fixing issues across all the queues on all the printers.  The idea was to eleviate IT Support work and  human error by consolidating all printers to the one place and publish out via GPO.  I would like to see success coming from what using what looks like MS Best Practice way of doing things - I know thats not always possible.

Can anyone tell me about per user vs per computer - is there a performance gain using one over the other?  Whats the difference between the two on an RDS enviro?  I haven't found any documentation on them as yet.
bosshognzAuthor Commented:
We've split out the printer GPO into  further - meaning people have less print queues to load on log in.  There is a slight noticeable difference.  

And we're also revisiting the local profile deletion on the servers.  This will of course improve performance no end.

Thanks for the help :)
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.