Microsoft App-v – starting application packages locally
In this blog I will show you how to configure your Microsoft App-v client and application packages to test a application without using a management server for streaming.
You probably wonder why I wanted to run a application package locally and not use the management server for streaming. For a project we are upgrading the Citrix environment from 4.5 to 7.5, servers will also be upgraded from Windows 2003 to Windows 2008R2.
The last thing I want to happen is that we alter the current environment while we still are working on the new one. However I want all current application packages to be tested for compatibility with the new environment to determine the work that lays ahead of us.
The easiest way I could think of was to create a copy of the content share, place it on a server and change the application packages so that they can be ran locally. No interference with the current environment while making progress preparing the new one.
To got this working you need a little few things, not that many however.
First you need a sequence machine to alter the package for you application package probably doesn’t have the new operating system listed.
The second machine you need is a machine where the Microsoft Application Virtualization client is installed. On this machine I also created the content share on a separate disk, E: in my case. The client is installed as default as possible as you can see in the screenshot below.
And that all you really need to test your packages and alter them without disturbing the production environment.
Setup the client side
First let’s see what needs to be done at the client side.
When you look at a Microsoft App-v application package is consists of several files, the OSD file is the one that is most interesting for us. So let’s open it with an editor.
Everything revolves around the OSD file, so let’s open the OSD file I copied from the content share.
Looking at the OSd file you see a line starting with CODEBASE and referring with a protocol to a location to find the application package. This is the way it’s used by default with a management server and in any production environment.
To change the way Microsoft App-v starts the application package we alter the lines a bit.
Instead of RTSP as a protocol we add FILE to tell App-v that it should look directly for the file we want to start without calling to a management server first.
Secondly we change the parameter that points to that management server and add the location of the content share there. Here I changed it to E:/Content, mind the forward / in the lines.
Next step is to make sure the operating system is supported to start the application on. If these are old application packages you have Windows 2003 listed but not 2008R2.
So I added
You can change this also from the Sequence console, and simply add the operating systems with the arrow marks. Both options have the same effect, some might prefer the GUI and some like myself the OSD editing.
If you forgot about this step, the following error message will appear.
It pretty clear isn’t it? the file will not work on the current operating system. You didn’t add the operating system you’re using to test the package.
Allow Independent file streaming
Once all of this has been set we’re almost ready for testing, one more thing needs to be set to convince App-v to use a file instead of the management server. In the registry you need to set a setting to allow independent file streaming.
Open Regedit and browse to HKLMSoftwareWow6432NodeMicrosoftSoftgrid4.5ClientConfiguration
There you will find a key called “AllowIndependentFileStreaming”
This key is set to 0 by default and should be set to 1 for this purpose.
This key determines whether streaming from file is allowed regardless of how the client is configured.
If you didn’t set this setting you will be facing this error, so please change the registry key.
Proof of the pudding
As they say, the proof of the pudding is in the tasting, so let’s see if this works.. theory is nice but only a real test will show if it’s true.
I’ve change both the packages for Irfanview and 7-Zip, yes I know not the hardest ones. My point was to show that you can start an application not to show that the hardest ones can start.
First one is 7-Zip, as you can see the OSD is edited and points to a local content share, the operating system is added and the application is starting just fine.
The same goes for IrfanView of course.
There is another way to set some of the basic settings (Thanks for mentioning it Frans), on the server where you want to launch the application you could set the source location and the allow independent file streaming via a group policy.
I didn’t think about that at first for I wanted to have nothing to do with the domain, but of course a local policy would work also…don’t use them that much 🙂
running GPUpdate /Force after this only leaves you with adding the Operating system to the OSD. A much faster way I think. I thought I have to add this also so you have a choice.
It’s not to hard to get this working and it creates a neat testing environment. I’ve made a copy of the OSD files before I changed them just to be sure but changes are easy to make and can be reverted also.
Hope this helps you in your work, it’s about 4.6 for we don’t really like 5 at this moment. Don’t have a 5 environment present right now but surely the configuration won’t be very much different.