Citrix Printing Basics (and not-so-basics)
“As simple and elegant as a do-it-yourself oil refinery kit”
—anonymous LRS developer
When I first joined the Alliance Partnership group at LRS, my manager tasked me with researching a VPSX-based solution to manage Citrix printing. I thought to myself… how hard could this be? It’s just Windows, right? Simply pop in a Windows printer and “Bob’s your uncle” (as my British colleagues say).
When it comes to adding a Windows printer, there are three questions to be answered; which printer, when to add it, and to which machine to add it. For most of us, those are relatively easy questions. Add the printer by my desk on my machine and do it now. No problem. However, Citrix adds several layers of complexity to this notion.
First, what is Citrix?
Citrix has actually been around for many years. Very simply, it is a way of having a Windows desktop or application run somewhere other than the machine on my desk. While it may appear that the Excel spreadsheet on my screen is crunching away on my desktop, in reality the processing is crunching away on a server sitting in a rack in some data center, and the crunching is being shared by a couple of dozen other users. My “Personal Computer” is really not very personal anymore.
IT departments like this model. A lot. Because when my friendly neighborhood IT guy needs to update Excel, he doesn’t need to venture from machine to machine to update it, nor keep an inventory of which user is running which version. He updates it in a single server farm, and, suddenly everyone is running the new version. Licensing is simplified, and the IT guy can go back to his World of Warcraft game instead of dealing with software inventory.
Users that walk around a lot to do their jobs love this model as well. As a mobile user, I can log in from any number of places and maintain the same, personal environment everywhere I go. I don’t have to wonder where Excel is being kept from one machine to another. In fact, my open spreadsheet can follow me around in whatever state it is in. Nice!
But these advantages suddenly make those three little questions so much more difficult. Let’s take a look.
Which printer to add?
Well, that depends doesn’t it? Earlier I said “the printer by my desk.” But what if my work location moves around? Maybe I want my printer to move around. I always want the printer by my desk, even if I have a different desk every five minutes. Oh, and naturally, I don’t want a zillion printers to choose from, just the one by my desk.
Where to add the printer?
Even in the simplest of Citrix environments, this can become complicated. There is the desktop (or maybe terminal) at my desk, but there is also that server farm in the IT department. And when I hop from one place to another, my session may move around inside that data center – on different servers. Do I add the printer to my local machine? What happens to that printer when I move to another area? If I add it to the server environment, and then disconnect, that printer “goes away.” That means I have to add it every time I sign in. What a pain!
What’s worse, Citrix printer drivers can be unstable. So when a driver crashes in that server environment, everyone logged on that server goes away. Arghhh!
When to add the printer?
Now. And I move, so time to add another printer. Now. Oh, and delete that one I added a minute ago. Now. And now. And now.
Well, I never solved the problem posed by my manager. I had a few ways of dealing with it that I could recommend, but nothing that really did the trick. It took someone with a fresh view to see the solution.
A couple of my colleagues were able to look at this with fresh eyes and realize a few things.
1) Users log in and out of the environment.
2) Citrix knows where they are located when they log in.
3) Not all workers have the same pattern.
4) VPSX had added Print Driver Management (PDM) functionality, which adds Windows printers when told to do so.
The answer became clear to them: build the printer using PDM when the user logs in. If the user wants to have different printers based on location, then build a table that relates each login location with the nearest printer, and use that one. As with all good answers, the basic solution is simple.
While the implementation is complex, VSPA (Virtual Session Printer Agent) manages to accomplish these simple tasks with elegance and grace. So much so, in fact, that even Citrix competitors like VMWare are beginning to see the value of this approach.
Citrix and VMWare are pervasive in most industries today. Whether Healthcare, Manufacturing, Finance, or whatever, customers need and use these virtual desktop environments. All the more reason to find a simple, straightforward solution to this vexing print challenge.