Some Applications are very easy to virtualize, but others are not supported and very hard to create! I had a big challenge with a project software which they use in our school, but I found a solution to get the APP-V package to work. 😎
The software inside the sequenzer worked well and I was able to create the APP-V package. But my joy was just for a short while because the problems began to start as I did test the package in our productive environment.
The first problem was that a license prompt appeared. You can only work with that application if you type in the correct license information. It seems that the installation code which I’ve used during the installation process was no longer valid and something generally changed with the package.
First I did analyse if the Installer Code change again when I start the package from different virtual machines.
Result: The Installer Code didn’t change and was on every machine the same! I asked the support for the license information to that installer code and they gave me the information. I typed in the license information and monitored with two system snapshots which files/registry informations on the system have changed. The only file that was interessting after the compare was located in the local APP-V Cache directory.
Workaround 1: OSD Scripting
I did copy this Cachefiles (which including now the license information) away to a netshare and my idea was to send this Cachefiles back to the APP-V Temp Direcotry before the application starts. First I had a timing problem, that the application was faster than my copy script, but then I discovered this APP-V diagram which was very helpful. You can find useful informations about OSD Scripting here.
With the „Pre Stream Option“ in the scripting part, I’ve reached my goal! It worked, but I got a user reclamation that they lost their settings inside the application if they close the application and open it again!
Inside the appliation was a Information Menu. I think for support purposes the programmers of that software put in an option which do a summary about the system configuration where the application is running. Inside that report I discovered a little detail which was interessting for me.
I could see the local volumes and the mapped network shares. For every volume we have the filesize, the partition type and a 8 digit number.
I did check that system report on a Win7 machine and a WinXP System. Volume X: is the hidden APP-V Volume and I could see that this 8 digit number was in both cases the same.What is this number? I remember me that The Volume ID Number has also 8 digits. A quick check showed me that this thought was true. 🙂
On my sequenzer machine I did change the Volume ID of X: to 1010-1010
And yes, the license check read out the Volume ID Number. I did update the package and start the application inside the sequnzer now with the updated Volume ID Number. The license check with the same Insaller Code appaerd. I put in the license information which was now identical with the one when you start the package in the productive environment.
The changes that the user made are no longer lost when he close the application and open it again. But if he gets a new Desktop and start the application again there are still some settings lost. To prevent this I wrote a little script which will only be applied for the users of that application group. After the user logs off, the scipt copy the cache files of that application away to a folder in the personal homedirectory. When the User starts the application again the Cachefiles are copied back to the APP-V temp Directory before the applicaton starts. Job Done!