Receiver 4.2 desktop shortcuts

Yeah yeah, long time no blog.  I know.  Life gets in the way.  Work gets in the way.  I have a list of things I need to blog about, and I’ll get to a few of them here shortly.  For now, though, this one really needs to get out there, so I’m shortcutting said list, and getting it out there for you.  You’re welcome.  🙂

There seems to be very little information out there on this topic.  I Googled for hours.  I read the Citrix eDocs.  I read everything I could find.  Sure, lots of other people have blogged about it, but all they did was parrot Citrix’s announcement of the fact that the feature is back.  I highly doubt that even one of them has tried to implement the feature.  Or at least, if they did, they found out how big of a pain in the ass it is, and how the behavior of it is so strange that maybe they are best served by not telling the public about it.

As an anonymous blogger, I don’t have those same worries – making Citrix mad at me.

So, here I am to give you the “straight dope”, as it were.


First – the ADM template that is referenced to be used – I tried it.  I verified that it was applying properly by using GPRESULT /H.  It was working fine to apply the SSO settings.  GPRESULT showed all the shortcut settings I had configured.  Except there were no shortcuts.  It wasn’t doing what it was supposed to do.  The registry entries below were not configured.  NO idea what the deal is with that, but in the environment I was working in, it didn’t get the job done.  Now, maybe there was an environmental issue causing it?  I don’t know.  What I DO know is that I had to find a way to make it work, and so I’ll share that here with you just in case the ADM template doesn’t work for you, either.


PutShortcutsInStartMenu  REG_SZ  true
PutShortcutsOnDesktop    REG_SZ  true
StartMenuDir  REG_SZ  <whatever the directory you want apps to go into in the start menu – leave blank to put them directly in start>
DesktopDir  REG_SZ  <whatever the directory you want apps to go into on the desktop – leave blank to put them directly on the desktop>


SO – What’s this weird behavior?  Well, for starters, it actually has to do with Storefront, not Receiver.  But since Storefront and Receiver function more or less as a pair, and the issue is manifest in Receiver, I’m still blaming that.  Mostly because I’m stubborn, as the issue DOES lie with Storefront.  For the record, this environment was using SF2.6.

The problem is that when Storefront remembers the application subscriptions, apparently a flag is set BY RECEIVER that tells Storefront whether or not it should create the desktop shortcuts.  Thus, if you have Receiver 4.0 or 4.1, and have a bunch of applications subscribed, THEN you upgrade to 4.2 – NOTHING HAPPENS.  No desktop shortcuts, no start menu folder like you specified – NOTHING.  How to fix this?  The official answer from Citrix (that doesn’t seem to be documented ANYWHERE that I can find) is “unsubscribe and resubscribe to all your applications”.  Well isn’t that just peachy.

Ok, fine.  So you’ve done that.

But then – you log into another workstation, and that one isn’t configured for desktop shortcuts.  Then you log back into one that is, and lo and behold – NO SHORTCUTS!

This is just ridiculous.  Why is the data about whether or not to publish an application shortcut stored in Storefront to begin with?  What are the implications for people who use XenDesktop, and access that environment using the HTML5 client?  What then?  I didn’t test this, but I’d imagine it will create a problem as well since naturally the HTML5 client relies on Storefront subscriptions, and is incapable of publishing a shortcut to the desktop on the client machine the browser is being run on.

IMO, the way this SHOULD work is Storefront just keeps track of the subscribed apps, and the Receiver handles creating and publishing shortcuts for any subscribed app.  That way moving amongst machines with different Receiver versions and/or configurations won’t create a problem.  I mean really, Citrix.  You bill yourself as a mobility company, and yet when the rubber meets the road, now you’re saying that “Sure, you can be mobile – as long as all your access devices have the exact same version of Receiver configured the exact same way.”


Doesn’t sound very mobile to me.


Good luck,


Client Drive Mapping irritations

So I have a customer using XD5.6 with Win7 VMs, and XA6.5.  Everything was patched current on both the Microsoft and Citrix side.  The Receiver client in the VDAs was Receiver 3.4 Enterprise, the physical client-side receiver version didn’t matter, everything was tried (even Macs!).

The issue?  The customer needed to be able to map in USB thumb drives from the physical client.  Then, within the XD session, there were network drives mapped in (home drive, etc).  The customer needed to pass in BOTH the physical USB thumb drive as well as the mapped network drives so that content redirection would work properly and seamlessly from all sources within the XD VM.

Citrix doesn’t seem to support this.  I read CTX after CTX, and forum post after forum post.  I could only find one other person trying to do this, and their question was asked in an active thread with several Citrix employees commenting on it, and as soon as they asked how to map in BOTH, there was nothing but crickets.  Since June.

Well shitty!  What now?  The lack of information out there on the topic certainly doesn’t help my customer, and I’ll be damned if I’m going to give them some half-assed answer.  That’s just not my style.  After hours of messing with the registry, and confirming that the registry key referenced in CTX127872 was an either/or proposition (meaning one way you get the drives from the physical client passed into the XA session, the other way you get the drives from the XD VM passed into the XA session), I realized something had to give.  More investigation eventually brought me to the revelation that “one way, it maps everything WITH a drive letter, and the other way, it maps everything WITHOUT a drive letter”.

Ok, super.  So how to get the physical drives assigned a letter?  AH!  Legacy drive mapping!  It says it’s a XenApp solution, but I figured what the hell, why not give it a shot on XD anyway?  Yeah, no love.  For once, the CTX was actually correct in the scope of products it pertained to.  Go figure.

So I manually mapped one of the devices with net use at the command-line.  Then I opened that mapped drive and double-clicked a Word doc.  Success!  It opened in Word!  Now…  How to get all the drives to automatically map every time a user logs in?

Disclaimer:  I’m NORMALLY a VBScript guy.  Like, HARDCORE.  But, I didn’t have the time to properly write and debug some code, and this worked.  Yeah, yeah, go ahead and give me crap about not being a PowerShell guy.   Call me old, I just haven’t yet FULLY gotten on that bandwagon.  Feel free to re-write this in PS and post it in the comments.  🙂

In any event, what I wrote was this:

@echo off
if exist \\client\c$ net use * \\client\c$
if exist \\client\d$ net use * \\client\d$
if exist \\client\e$ net use * \\client\e$
if exist \\client\f$ net use * \\client\f$
if exist \\client\g$ net use * \\client\g$
if exist \\client\h$ net use * \\client\h$

I deployed it using a login script via GPO.  Again, no love.  The login script processed before CDM had a chance to finish bringing in the drives, so only the fixed disk mapped, not the USB removable drive.  The solution?  Put it in the startup folder in the default profile.

Viola!  Client drives are now mapped from both the end point AND the VDI VM.  Sure, it might be a touch ugly, but if you can get your users to match up something as simple as E: and E$, they should be able to figure it out.

Happy mapping,

Using Receiver Enterprise 3.4 inside a XenDesktop VM

The install string:



Easy, right?  Everyone has done something similar before.  But then, you can’t get the drives (like mapped network drives) to pass-thru into your XenApp server apps.  Why bother?  If there are mapped network drives inside the XD VM, users could simply double-click on a file in their home directory, and using redirection, it will auto-launch the associated application and then pass that file through.  Sweet, right?  Sure.  But, if you use the Enterprise client, it doesn’t work by default.  Fix it like this:

HKLM\SOFTWARE\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\ClientDrive
Value name:  NativeDriveMapping
Type: REG_SZ
Value:  True  (It is FALSE by default)

Problem solved, enjoy!



Mobile Device Receiver Limitations

So yesterday I was at a customer site, and they still use Netware.  Couldn’t get the Receiver client to connect on an iPad.  Hrmmm…  Some quick research found this article on Citrix’s site.  Now, I know what you’re all thinking, the limitation isn’t a limitation of Receiver, its a limitation of Netware, right?  Personally, I agree with you, but…  There ARE those companies out there that continue to use Netware, or, at least, haven’t migrated off of it yet.  If you’re one of them, Windows 2012 is here now, and it’s great!  🙂



Citrix Receiver Automagic URL Configurator

How many times have you had people fat-finger the Receiver URL on their mobile devices, then come screaming to IT about “The site doesn’t work, blah blah blah, fix it”.

Easy fix.  Go here and enter your information.  Then, click generate.  It will provide you with two links you can embed in an email to your end users; one for iOS devices and one for Android devices.  The click the link, and Voila!  Their devices are configured.  The lives of your end users (and by extension, your help desk) just got a LOT easier.



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:

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


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.