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.
It wasn't a really important bug I guess. The functionality worked, but it showed an UAC popup. No big deal if you ask me.
ReplyDeleteI don't recall it working. When did you see a UAC popup?
ReplyDeleteMy memory is I created an MSI for Windows XP and advertised it wish (/jm) and then ran the install (/i) as a non-priv user. This is part of my standard "elevated / managed" installation test thread that verifies everything requiring privs is scheduled in the execute as deferred with no impersonation.
Eitherway, as much as I used to love InstallScript, it's pretty much OBE by C#/DTF today IMO. I'll probably post another blog explaining why some time.
I went back through the thread on the community forum and sure, you could hack around the problem by elevating your UI ( not a best pratice ) but you'd still have problems during subsequent repairs and maintenance operations because the UI wasn't elevated.
ReplyDeleteBTW, the "big deal" IMO is this points to how InstallShield roles. They announce some big feature ( for IS12 it was Vista / UAC support ) then it takes them years to fix the the bugs that actually go along with that feature.
This is how they get the bad reputation from people who call them "InstallSUCK" and what not.