The Case of the Installer Run-Time Error
Posted by William Diaz on September 1, 2011
To make it easier to fix, reinstall, and install the most common applications we support in our environment, we have a front end tool that is launched from the run menu to facilitate this without the need to go digging around on the file server for batch files or scripts. While trying to reinstall an application, one of our helpdesk technicians was running into the following error while trying to run the tool on a user’s workstation: “Installer. Run-time error ‘-2147024770 (8007007e)’: Automation error – The specified module could not be found.”
I was asked to look and investigate. I copied Process Monitor from our lab, ran it, and set a filter for the front end installer tool (GTFix). Since we were dealing with a missing module, I further filtered the results by only looking for file activity and then from Tools > Count Occurrences did some further filtering for Results.
“PATH NOT FOUND” can be common, but there were only a couple and gave it a look since the other results would probably not be as insightful:
This was interesting because there are file operations on a folder that has nothing to do with the front end installer application, or any applications we support for that matter. Since we were dealing with a missing module, I searched for scrrun.dll in the most common location for system dlls, C:\Windows\System32:
This is the Microsoft Script Runtime module, which is required for the running of Visual Basic script and which the GTFix is dependent upon. So why wasn’t the application able to locate scrrun.dll? I suppose when this trademanager program was installed, it registered scrrun.dll in its program path (C:\Program Files\trademanager\…). At some point, the application fell out favor with the user, they stopped using it, maybe uninstalled, or failed to uninstall, or whatever, and scrrun.dll was deleted without being properly unregistered. To resolve, I simply needed run the regsvr32 scrrun.dll command, which would properly register the module from the system32 folder. Afterwards, the front end installer application launched normally.
I have since looked into this trademanager program, AliIM2011_ATM(6.30.11E).exe, installed it and was able to verify that when uninstalled scrrun.dll is deleted along with the modules folder seen above but that scrrun.dll is not registered back to the system32 folder. Ideally, the program should avoid registering scrrun.dll altogether if it already exist, which is obviously already going to be the case in Windows.