The Windows default printer is a magical thing. This is the printer that is selected by default when you print in an application. Depending on your particular printing workflow this may be the only printer you ever use. Some applications have a quick print functionality that sends a print job to the default printer using default settings and no prompts (for example, portrait orientation and a single copy). To make a printer your default, simply right-click it and select default printer.
When you use Citrix, a Windows default printer is still a Windows default printer. The difference is that Citrix has administrative policies to help you decide what will be the default.
I recently ran into an issue with a new XenDesktop v7.6 environment where users could select a new default printer using the method above but the next day when they logged on to their desktop it was set back to Microsoft XPS Document Writer. A quick note on Microsoft XPS Document Writer, as you may have noticed it installed on your computer, it is really a print-to-file driver Microsoft created to allow you to save print output in the Microsoft XML Paper Specification. If you have never used it, do not feel bad, it is more likely you have used the immensely popular PDF format made popular by Adobe before becoming an open standard in 2008.
By default, the user's current printer is used as the default printer for the session. For example, my laptop's default printer is HP Deskjet 3520 series (Network). When I logon to my Citrix desktop it will redirect the laptop printers into the session including my default printer. That is ideal for a laptop user.
For my next example, I am using a thin client that does not have a default printer because it does not have an OS. It can only connect to a Citrix desktop. When I logon from the thin client it will not see a default printer so it will make the first printer on the Citrix desktop the default. Often times this ends up being the Microsoft XPS Document Writer instead of the HP Deskjet 3520 series (Network).
At first, the issue seemed related to a Windows user profile issue since everyone lost their setting from one logon to the next. After verifying that other Windows user settings were being retained (i.e. wallpaper, Office settings, and the printer mappings themselves), I moved on to Citrix print policies. There is a specific policy I found interesting:
Looking closer at the policy it defaults to "Set default printer to the client's main printer". Most of the time this will result in using the default printer on the user's endpoint (e.g. laptop or desktop). If that endpoint is a thin client or even an iPad it will not have a default printer to redirect so you will end up with the first printer in the session.
I made a new policy and set it to "Do not adjust the user's default printer" and gave it a higher priority then the others and assigned it to my test user account.
I then ran a gpupdate on each test worker to verify it had the new policy. To test, I logged on with the test user, changed my default printer to a network printer. I then logged out and put that test server in maintenance mode ensuring my next logon would go to the other test server. Success, my new default printer was retained. To be extra sure there was not anything cached locally, I rebooted both non-persistent workers and logged in again. Success. The final steps were to make the policy apply to more users and have them test before rolling it out to everyone on both the test and production workers.
Printing is rarely thought of as complicated but it always is. If you are running into a similar issue then this policy change could be your answer.