I received an inquiry from TRM/SE recently that had me puzzled.  Why are the “enable” / “disable” settings for scripts no longer present in the streaming profiler?  The report said that the GUI exists to manipulate these settings in the 1.3 profiler, but that the ability to change these settings was … missing from 5.0, 5.2 and 6.0. Hum. 

I looked into it and to my surprise; there was indeed no selection for enabled – disabled!   (There really is).

Here’s the screen of importance with the red circle showing where the enabled/disabled “should” be.

Why do you need “disabled” scripts

The streaming system supports pre-launch and post-exit scripts.  Each script can be run inside or outside of isolation and here’s the important part, all scripts are BINARY.   There can also be an unlimited number of scripts.

A batch file is a common concept of a script, but a script can also be an executable program or even data.  If you want to implement a script as an executable and IF that executable has a dependence on a DLL, then you must somehow ensure that the DLL is available for the executable at execution time. 

The streaming system by design extracts ALL scripts to the execution directory before ANY of the scripts are executed, but it very purposefully doesn’t carry any “bonus” files along for the ride.  If the file it isn’t a defined as a “script”, it isn’t copied into the script space for execution; all scripts must be PART OF the profile/target.

The report from this customer was that the “enable/disable” property of scripts was “gone” and all scripts were executed by the streaming client, which worked poorly when ShellExecuteEx encountered a DLL,  ultimately generating a failure and causing the application launch to abort.  Knowing how the profiler stores stuff, I told them how to set the enabled/disabled script property via manual XML edit and we pushed on.  Then, I followed up with developers and testers to find out what really happened. 

Did we really send out 3 official releases with nobody noticing that this wasn’t right? 

Answer: Nope, it’s there, just not where the architect, customer or other smart people expected it to be.

Take another look at that profile properties / scripts screen, this time look at the yellow.

The “enabled/disabled” is controlled by that little check box!  OH!!!  It’s so simple now!

When checked, the script is enabled and when clear, disabled.  This control USED to be over there on the right where it was on equal screen footing with “Isolated” or not isolated and that screen space is now “blank territory”, which I think contributed to confusion.

If you get burned by this same action, please join the club and comment here so I can feel better.

Joe Nord

Product Architect – Application Streaming and User Profile Manager

Citrix Systems XenApp Product Group