I'm trying to install a package on a Windows 2008 server. The package is refusing to install. I have run the install with the following command line switched to get a log file:
/lxv InstallLog.txt
This is the error that I see in the file:
Error 2738.Could not access VBScript run time for custom action
I have looked around and found some people saying that this is needed:
Regsvr32 vbscript.dll
This because on a Windows Server 2008 system, the VBScript.dll is not registered for the HKeyCurrent_User only the HKeyLocal_Machine due to security issues. This doesn't quite "smell" right.
I initially tried running the install as an administrator but no luck.
I have written a small VBScript program that displays a message box and it appears to run properly.
In the file: Test.VBS I have this:
msgbox("Hello world")
When I double click on it I get a message box appearing implying that VBScript is indeed functional.
I have disabled UAC on the machine and I still get the error.
As suggested by Evan I have verified the following registration:
HKCU\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11CF-A4B0-00AA004A55E8}
It does exist and looks fine.
As another test, I ran the Regsvr32 vbscript.dll from an Administrator console and tried again. Still no luck, I get the same errors as before.
Best Answer
VBScript for custom actions is bad form. You should slap around whoever made that installer package.
Have you double-checked that the following registry key doesn't exist:
Secondly, when you ran the "REGSVR32 vbscript.dll" command, did you do so from an elevated command-prompt?
The reason that MSIEXEC won't load a VBscript.dll registered in HKEY_CURRENT_USER is that MSIEXEC is running elevated, and an unprivileged user could, potentially, register a trojan-horse VBscript.dll and use that as a mechanism to execute code in an elevated context. It's a security feature, and not a mistake.