If you have published mstsc as an application and then also wanted local printing to work you would have more than likely come across a slight issue. The issue being that no printers are mapped due to the mstsc target not knowing about the Citrix universal printing driver (CUP).
Now the CUP driver is not really a driver as such so you cannot simply locate it and install it on the mstsc target (if only it were that simple). But If you really need to use MSTSC and local printing then you need to disable CUP and manage printing in a slightly modified old skool way.
I’ve only found this method out due to my own fiddling and it works on our current set up but obviously it may be the cure for all instances of this problem or it may cure only ours, (if you read this and try it out then feedback on its result would be great).
Firstly you have to disable CUP on the xenapp server to do that open up the LGPO tool (gpedit.msc) on the xenapp server. You will notice that it has a couple of different entries than you would normally expect to see. Click on the Citrix Policies under User Configuration and click on the Settings Tab. Scroll down top PrintingUniversal Printing and click Add on the Universal Printing Setting. Then edit the setting to say “use only printer model specific drivers”. I’ve blogged about setting this previously but the bare bones of the instructions still apply.
After you have set the driver usage then reboot the server for the changes to take effect. The next bit is the bit that had me scratching my head for a while.
There are 3 links in the chain for the drivers to correctly map. Client/xenapp/ts target
Firstly the client must have the driver installed (kind of obvious)
Secondly the Xenapp server must have the same driver installed, if you can get at the clients installation media then alls the better otherwise download it from the usual sources. Now the xenapp server needs to have the x64 driver installed and not the 32 bit (because server 2k8 R2 is x64 only), It does not make any difference to have both installed but I’ve found installing the x64 driver is the required bit!
The TS target also needs to have the driver installed (whatever is suitable for the targets platform be it 32/64 bit. Once all three of these are catered for then printing should map correctly and work as expected.
Now if you’ve managed TS printing for any length of time then you will be aware that for drivers to work the drivers must have the same name, so if you goto the printers and faxes control panel applet then goto file/server properties the actual name of the driver is the same across all the three steps (So do not get confused with the name of the logical printer object the servers do not need to have logical printers created for each driver you add).