This post is for programmers and admins who want to peek inside an Application Streaming profile to see the disk and registry content that the profile/target represents without having to actually RUN the application.  

First, some background.  A streaming profile can hold multiple execution images.  The streaming client deals primarily with the execution target and it is the target that holds the execution content.  While the “.profile” is the highest level file, once the streaming client figures out which GUID_ver.cab to open, it doesn’t need the profile anymore. 

These words are confusing – an example is easier to follow.


 
The .profile is the primary file of the profile.  The streaming client though is more interested in the execution target.  For convenience, everything that is represented by the “target” is contained inside a single .CAB container file and this includes the isolated files and isolated registry.

How to view the files

The files are easy to see.  Double click on the .CAB file and all of the files that were “installed” are here.  Sort by “path” and at the root, you will see the files that the streaming profiler adds to the target which support the execution. 

Where’s the isolated registry?

The isolated registry is stored inside the file InstallRoot.tab.  Don’t be mislead though – this is not a 0x09 formatted file!  Seeing the captured registry requires a bit more work.  This post describes how to do it.

Wait – Doesn’t the streaming profiler have a “regedit” launcher to view the isoalted registry?   Yes.  But, that will show you the result of an MERGED registry.  That is, regedit will “see” what the application will see at execution and sometimes you want to see just the layer that was captured during profiling.  How to do that?

Method #1:

When running a streamed application, the streaming client populates isolation layers to present a merged view of the local machine.  While the file content is streamed on demand, the registry content is populated all at once.   You can see it easily after running a streamed application by browsing to

  • HKLM\Software\Citrix\RadeCache\GUID_v where “v” is a number for the version of the execution target.

On the first launch, the space will actually be slightly different as a volitale hive is used to speed execution.  You will see these with a v in the start of the name.  The volitale hives go away after the first reboot after the application is run.  The streaming client background populates the long term space after the application is up.  With the registry space populated, use REG.exe or similar tool to dump the registry space to a .REG file, done.  Yes, that is combersome.

Method #2:

Edit the profile using the streaming profiler.  Point at the execution target with left mouse, then right-mouse-button, update target.  This will put the target into “edit state” which is a fancy way of saying that the execution target will be brought down from the network server (Application Hub) and populated into the file and registry on the profiling machine.  So, it’s local.  Where? 

Answer: HKLM\Software\Citrix\AIE\GUID

Notice no _v during profiling and yes, that’s “AIE”!  While editing the target in the streaming profiler, you can peek all you want at the InstallRoot.tab contents and can dump this space to a .REG file if you like for easier viewing.    When you close the profile in the streaming profiler, or when you quit the profiler application, the registry and disk content populated to assist editing the target are recursively obliterated.  So, it will be “gone” when the profile is closed.  This by the way is “secret sause” on how the profiler works, so don’t get too dependent on it – but you can get to the reg content without loading the application onto an execution machine.

Method #3:

If you need a programatic method, then the Streaming Profiler SDK is your ticket.  Open the profile, open the target, put the target into edit state and then see “2”.  

I have received inquires that a program should be written/released that automates this.  Such things are good things, but until they happen, here’s a way to get the information you may be chasing.

Joe Nord 

Product Architect – Application Streaming

Citrix Systems – Fort Lauderdale, FL