How do you add FTAs to profiled applications that the installer forgot to install? Answer: There are a few steps.
This has been on my list to Blog about for a while, just haven’t gotten around to writing about it, mostly because I hadn’t had a chance to verify the solution would actually work. Conveniently, Karl Muller of I-Access took care of the trial for me, and it worked, so here’s the solution. Thanks Karl.
Backup a couple steps… “FTA what!”
When an application installs, it writes entries to the machine to establish associations between file extensions (multiple) and programs (single). Each file type definition also includes a reference to the ICON that goes with the extension. This is what Windows Explorer uses to show you icons that looks like MS Word for file’s that end in .docx.
The Streaming Profiler runs the installation program under isolation and blocks the installers attempt to set FTAs on the true machine. As part of post processing, the profiler examines all the FTA entries that the installation program TRIED to create and for each of these, creates corresponding FTA entries in the streaming profile XML data – you can see them in the .profile file, if copy to .xml and view with web browser. Easier, just look at the properties of applications captured during profiling and ask to see the FTAs. Yes, that’s much easier.
The Access Management Console (XenApp publishing console) reads the profile information and gets a list of all the captured FTAs. It makes these AVAILABLE for association with applications that you publish. The default is that no FTA will be associated with the published application, so as an admin, you have to go to direct action to establish the FTA by clicking on boxes.
BUT – There’s a catch, you can only establish FTA reference for the FTAs that were captured by the streaming profiler.
Say you know that .DOC9 (.DOC and the number nine), is SUPPOSED to be associated with MS Word, but you note that the installation program seems to have left that one out, or that the streaming profiler seems to have missed this one. Let’s focus on the first one. You have an extra FTA that is SUPPOSED to be associated that seems to be missing from the list. How do you add an extra FTA?
Option 1: Streaming Profiler, application properties, FTAs, Add
Option 2: In the Access Management Console, application properties, FTAs, Add
Both options above would be GREAT, if only they worked. They are both READ-ONLY. You can see the FTAs, but you can’t add a new one.
FTA must be captured during profiling
When profiling, tell the profiler that you want to launch an installer, it will prompt you for the path and name of the installation program, tell it “CMD”. When launch the installer, you will get a command prompt running that is running inside of isolation. Two commands are needed at the command prompt to establish an FTA.
- assoc .doc9=Word.Document.12
- ftype Word.Document.12
If the ftype is already in place, you’re done. If not,
- ftype Word.Document.12=”C:\Program Files\Microsoft Office\Office12\WINWORD.exe” /n /dde
Now, let the streaming profiler do it’s thing to see what the “installer” did and it will discover a new FTA for the .doc9. Save the profile and return to the Access Management Console.
In the AMC, publish a new application, point it at the profile and it will see the FTA that you added. EASY!
There’s a catch
There is always a catch. The catch here is that the FTA will exist only for new application that you publish. Applications that you have already published have already had the FTA data sucked out of the streaming profile and placed into the XenApp publishing infrastructure. The AMC will not “pick up” or automatically update the applications to reflect changes to the profile, so the FTAs won’t exist. If you need that FTA added to an application that is already published, it is necessary to delete the application and republish it.
The other solution
Not recommended, but you can accomplish the same thing by hand editing the XML data in the streaming profile and saving. This isn’t the RECOMMENDED answer, but just between all of us, it will work.