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,