I was reading through the InstallShield 2011 release notes from August 2010 when I noticed the following:
InstallScript Functions ServiceExistsService and ServiceGetServiceState No Longer Require Elevated Privileges
The InstallScript functions ServiceExistsService and ServiceGetServiceState no longer require elevated privileges. Therefore, installations can now call these functions when end users have limited privileges, such as in the Install UI sequence of a Basic MSI installation. This enhancement resolves issue IOC-000059857.
I then remebered blogging about that problem back in May of 2007. ( See: Vista UAC implications of ServiceControlManager API calls )
As I recall, this fix couldn’t have been more then one or two lines of code. Basically you just had to open the SCM API requesting less privs when you were only checking the status of a service. I remember this because I had posted a workaround on the forums myself.
This bug was found in IS12.
Was it fixed in IS2008? Nope.
Was it fixed in IS2009? Nope.
Was it fixed in IS2010? Nope.
It was finally fixed in IS2011 which was released in August of 2010. That’s 39 months to fix a simple defect. Surely all of those maintenance dollars from support contracts could have sped that up a tad. Instead InstallShield continues to live up to their reputation of shipping new features but not fixing existing issues.
I’m going to be keeping that fact in my mind when I think about how long it takes WiX to ship a new release and how InstallShield now loves to throw the “Agile” word around in their marketing.