Dogfooding (verb) – Run your day to day computer life using the same software that you are building. Eventually it will reach a point of  “it works” and at that point, it’s ready for your customers.   “It works” is about the highest compliment a programmer will ever provide.

Recently, I’ve gone hook line and sinker into XenDesktop, POOLED using VHD Mounted streamed apps including MS Office 2010, streamed with layered delivery.  Absolutely none of the Citrix components are of a released version.   Development level XenDesktop, development level Citrix Receiver, development level of the online and offline plugins (artists formerly known as the ICA and Streaming Clients), non released versions of Citrix Profile Management and likely a bunch more non-released things.

Building reference architectures is key and giving this stuff exercise is also key.  There’s nothing like an executive that can’t check their mail to get things a bit of focus.  Myself and a bunch of others in Citrix have gone “no parachute” onto this fast changing ground to help prove out the next release.

I am not an administrator

In using the pooled XenDesktop farm, I am a “standard user”.   For me, this is a strange place because as a programmer, I am always “admin”.  Yes, I always have my normal day to day user account as standard user, but historically, I can always upgrade to admin when needed.   On this dogfood world, I am a normal user.

I don’t like being normal.  Well, I am not used to being normal.  The point is that I cannot “promote” myself to admin on this dogfooding farm and this means that I have to debug things from the view of a standard user.    Ahh – now we’ve hit interesting stuff.

That’s an interesting thing and it helps point out places where information is not exposed, that arguably should be.  Admins need to debug things and they generally will be doing it borrowing the user environment.   What does this mean for supportability?

What does it mean to expose things that will allow users to do stupid things like adjust things that they shouldn’t adjust?  I’m going to operate on the theory that information is good – at least for admins.

First up, where is the network server holding my user profile?

As a user, I have rights to the User Profile Manager central store, because … “it’s mine!”.   I know that the central store gets copied to/from at logon and logoff and that it eventually lands in C:\Users\username, but where is the content on the network server?  Which network server?

As an admin, I could turn on UPM logging and see lots of stuff.  As a user, I have to be more creative.

Check with smart people.  We will call him … “Bill”.

Answer: check the event log.  Conveniently, these are readable from user space.  WORKS!

start / run “eventvwr”

  • Event viewer (local)
    • Windows logs
      • Application

Sort by “”source”.

Side note: Normally I would say sort by “date” and then by “source”.  College programming 101 – when writing a sort algorithm, do not unnecessarily change the position of items.  Event viewer seems to have missed this elementary class, so it is useful only to sort by “source”.   The resulting list has all the entries in each “source” group, random.  We get to do a manual grep.

Find the sources that start with “Citrix Profile Management”.

Search this list until you find one with contents reading:

“User username path to the userstore is …”

Mine looks like this

Things to observe

1) It’s wrong.

2) I figured this out from user privilege

3) Unless I looked, nothing bad would be experienced

What’s wrong?

Notice that my username is “josephno” while my domain defined friendly name is “Joseph Nord”.  See the space!  The administrator in the dogfood farm has set the User Profile Configuration to use my human name rather than my username.  Friendly names change, usernames are more persistent.

Interestingly, there’s no CPR to write.  User Profile Manager is using the path that the admin told it to use.  I do though need to follow up with the dogfood farm administrators to get the UPM path to central store, “fixed”, it should be based on the username, not the user’s name.

On the change, they will have two things to adjust

1) Change the AD configuration to point to username rather than the user’s name.

2) robocopy my incorrect directory to the proper directory- preserving DACLs.

3) Later, after I’ve had a chance to logoff, delete the incorrect space.

Repeat the above for every user on the farm.

Lesson #1 – Set it up right the first time.

Lesson #2 – What can the UPM architect do to make it easier to set it up right the first time?  Hum.

Joe Nord
XenDesktop Personalization Architect
App Virtualization, Profile Management