ICA clients

So..  You have a need for legacy ICA clients, do you?  From time to time, I have various customers who require specific legacy versions of the client for one reason or another.  Finding them on the Citrix downloads site has gotten progressively more and more difficult.  Then, I discovered this site:  http://www.xenappblog.com/downloads/?category=2

They have taken the time to collect and list download links for all the various versions from 6.3 forward.  No excuse anymore!


Printing Woes

Citrix printing.  Lets face it, it just sucks.  The world would be SUCH a better place if printers were abolished and we never had to deal with them, right?  Yes, Citrix has made strides with their Universal Printer Driver, and things have gotten better, but really..   Show me someone who has never had printing problems on Citrix and I’ll show you someone that’s never worked on Citrix before.

I’m currently battling with some printing issues for a customer in a XA 6.5 farm.  In my hunt for a solution, I ran across this utility from Citrix called Print Detective.  If you’ve never heard of it, check it out.  There is a short, 7-minute instructional video on how to use it and what it does.  This little utility is definitely a permanent addition to my arsenal of Citrix tools.


Happy printing!


XenDesktop Licensing, Part 2

In part 1, and in the comments, we briefly touched on some of the advanced bits of the XenDesktop licensing.  Here’s some more detailed info:

Licenses are assigned for a 90-day period, as defined by “LP=90” in the license file.  This means licenses are released after 90 consecutive days of inactivity.  NOTE:  If you have multiple farms and want license sharing, all farms must point to the same license server.  There is no communication between license servers!  As mentioned by 3 in the comments of part 1, you can release licenses prior to the 90-day timeout.  To release licenses prior to the 90 days, use the command-line utility UDADMIN.exe.  This is located in \Program Files (x86)\Citrix\Licensing\LS, and you MUST run it locally on the license server.  More info, including switches and syntax:  http://support.citrix.com/proddocs/topic/licensing-119/lic-admin-cmds-list-deletes-user-device-r.html

There is a 30-day free trial option (requires license server 11.9 or higher).  If, after 30 days, you decide you like it, all you need to do is purchase and download a license file to move the evaluation version into production.

For you PowerShell nerds, there are also some PowerShell cmdlets available for v11.9 and 11.10:


Still haven’t gotten enough of XD licensing?  Every question you could possibly think of has most likely already been addressed here:  http://support.citrix.com/article/CTX128013  Take a look if you are having trouble sleeping.  Me?  I’m not.  I just passed XenServer 5.6 today, and I’m beat.


Find Installed ICA Client Version

A coworker just asked me how to do this.  I wasn’t sure, so some quick work in PrimalScript got me the answer.

Set oICA = CreateObject(“Citrix.ICAClient”)
WScript.Echo “ICA Client Version: ” & oICA.ClientVersion

Just save that as a .vbs and run it on the workstation in question.  Easy.


Provisioning Server 6

After attending Partner training, I realized not a lot of people had made the jump to the new version of PVS.  Many people were so disappointed with PVS 5.6 that they chose alternate methods of deploying VMs since the maintenance/upgrades/replication/etc problems with 5.6 were enough to steer them away from it.

6.0 supports maintenance builds!  They are very easy.  I’m not going to go into a lot of super-technical detail in this post, but the short version is you boot a VM in maintenance mode from the standard image, and an .avhd gets created.  Make your changes, shut down the VM.  Assign the avhd to a test VM, make sure you have it how you like it, then mark that version as production.  The next time all the assigned VMs boot, they’ll get the new version, and the changes in the avhd will be merged with the vhd as the client machines request their blocks.  PVS 6 will also automatically keep track of your vhd stores for you, too, so you don’t have to worry about that.  If the PVS server doesn’t have a copy of the vDisk assigned to the target, then it will direct the target to the other PVS server.  Just create a robocopy job to keep them in synch.  I prefer this method, since it provides you with multiple copies of the VHDs, as opposed to some shared storage (like CIFS), where that shared storage could become a single point of failure.  Sure, you could use DFS, but if you don’t already have DFS configured, you’re adding yet another layer of complexity to address a problem that PVS (and robocopy or VBS or PS or…) can handle for you automatically.

This brings us to a couple of points worth noting about PVS.  These have been culled from many different sources, and I apologize for not taking the time to cite each one here.  It’s late, and I’m more interested in getting the information out there.  Rest assured, all this information is available to find on the Internet, I’m just doing everyone the favor of compiling a fair amount of it into one location in a short list.

1.  By default, Server 2008 R2 will only cache block-level storage.  This means if you decide to use the CIFS share method to serve up your VHDs, you’ll need to modify the registry.
2.  If your PVS is a VM, disable the memory management feature of the hypervisor tools.  Due to the way System Cache works, the memory is not technically marked as “used”, and is thus available to be stolen by other applications.  The balloon driver is one such application.
3.  The minimum required amount of RAM for a PVS box is 2GB.  If you run it with less than 16GB you are doing yourself and your target VMs a tremendous disservice.
4.  Use multiple NICs in your PVS box, and consider teaming.
5.  One of the benefits that seems to be often overlooked, especially in the XenDesktop world, is that it literally cuts your storage IOPS in half.  Why?  All the read IOPS are being sent across the network, not across your storage subsystem.  But wait, they have to be read by the PVS box, right?  No.  See System Cache.
6.  Want PVS for your XenApp deployment, but can’t afford Platinum licensing?  Trade up to XenDesktop Enterprise.  The cost is less than you might think, and PVS is included with XD Enterprise.
7.  If your hypervisor is VMware, make CERTAIN you give each of the target VMs some hard disk.  Why?  Because if you don’t, VMware won’t put a SCSI controller in the VM, so when you try to boot, they’ll bluescreen from not being able to find the system disk.  Brilliant, huh?
8.  Use dynamic disks for your PVS VHDs.  Why not fixed?  Dynamic is bad, right?  Well, sort of.  There is a HUGE article written all about this (this one I will link to because it’s very in-depth – http://blogs.citrix.com/2012/02/13/fixed-or-dynamic-vdisks/), but the short version is that any of the performance hits you would normally take are voided by the way PVS works.  Think about it:  The VHD doesn’t grow – you are never writing to the VHD after it is initially created and the image is taken from the source machine, so having fragmented files is no longer a concern.  Even read performance isn’t a concern since all the blocks will be stored in RAM in the System Cache.   So save yourself some disk space (not to mention time!) and use dynamic.
9.  On the topic of disks, make sure your write cache vDisks in the target VMs are NOT thin provisioned.  They should be eager zero, or thick, or fixed, or…  Why cripple your write cache when the read side of your infrastructure is so speedy?
10.  If you are PXE booting physical machines from PVS, make sure to configure PortFast on your switches.  How can you tell?  If a cold boot results in them not being able to contact the PXE server, but then giving them the old three-finger-salute gets them to boot, STP is probably your problem.  The warm-boot means that the port didn’t have to renegotiate and was all ready to go.
11.  Use multiple PVS servers for redundancy!  Think about it – if your PVS server goes down, none of the target VMs will function anymore!
12.  Use the PVS PXE service instead of configuring option 66 and 67 in your DHCP scope.  Why?  You can only enter a single IP and filename in DHCP.  By using the PXE service on EACH of your PVS servers, you can get PXE redundancy, too.  Imagine:  You have 4 PVS servers, but 66 & 67 are configured in DHCP.  If the ONE server specified in DHCP goes down, well, you may as well not have any PVS servers.  Get it?

There are more, but this should be plenty to get you started. I’m sure Geeks 2 and 3 will chime in with some of their favorite best practices as well, making this a more comprehensive list.

Happy Provisioning,

Comments Off on Provisioning Server 6 Posted in PVS

Upgrading XenDesktop 5.5 to 5.6

Is there an in place upgrade from XenDesktop 5.5 to version 5.6 you ask?  Well yes Virginia, there is.  In fact, I recently did it.  There really is nothing to it.

You will need to upgrade your license server to at least version 11.10. (Supported Platforms: Windows 7 (32/64bit), Windows Server 2008R2, Windows Server 2008 (32/64bit), and Windows Server 2003 (32/64bit).  This shouldn’t present a problem for anyone but check and back up your system and licenses before upgrading.

Download the upgrade from Citrix’s web site.  Of course a login is required.  As you may know, the full download of XD is a hefty 20.6 GB.  This includes everything.  You can do a custom download and only select the pieces you need.

The installation was literally a wizard with a couple of clicks and Finish.  When you start Desktop Studio for the first time after the upgrade, there will be an option in the center console to upgrade the database.  Both an automatic and manual option are available.  If you select Manual, it gives you the Powershell commands to upgrade the database yourself if you are so inclined or have a need to do so.  I selected Automatic.

That was about it.  Happy upgrading.


Comments Off on Upgrading XenDesktop 5.5 to 5.6 Posted in XenDesktop

XenDesktop Licensing

Sure, everybody knows about the 2-for-1 trade up that Citrix is offering to get into XenDesktop from XenApp, right?  Of course.  But – it switches you from Concurrent licensing to User, right?  Well, sort of.  I recently went through some Citrix training, and XD licensing now works like this:

User mode is now called User/Device mode.  That’s right.  Device licensing.  What’s better?  The Citrix license service automatically switches back and forth between User and Device on a per license basis to ensure you are consuming the fewest possible licenses.  That’s right, Citrix is trying to save you money!  It works like this:

User A logs in from a PC.  User A consumes a User license.
Shift change.  User B logs in from the same PC.  The license server says “Oh, I can use a device license here”.  Boom.  Two users, one device.  Then, User A logs in from an iPad.  User A is now consuming a user license, and ANYONE who logs in from that same PC will only consume a device license.  This is GREAT news for any companies that run multiple shifts of users on the same devices, provided they don’t go home and connect from an iPad or an iPhone or whatever.

But – there’s another cool feature.  With XenDesktop, you also get a 10% “overdraft” on your licenses.  So, you have 500 seats of XenApp.  You do the 2-for-1 trade up deal and get 1000 User/Device licenses of XenDesktop.  THEN, you get a free 10% overdraft, meaning you can actually consume 1100 licenses.  So, you effectively more than doubled the number of  concurrent connections you are licensed for (provided, of course, that they all come from the same 1100 PCs).  The penalty for overdraft?  NOTHING.  NADA.  ZIP.  How long can you overdraft for?  YES.  That’s right, perpetual.

Cool, huh?