Install Error: Could not access VBScript run time for custom action

11,383

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:

HKCU\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11CF-A4B0-00AA004A55E8} 

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.

Share:
11,383

Related videos on Youtube

John Dyer
Author by

John Dyer

Updated on September 17, 2022

Comments

  • John Dyer
    John Dyer over 1 year

    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.

  • John Dyer
    John Dyer almost 15 years
    I have been holding off on running "REGSVR32 vbscript.dll" because it just doesn't seem right. I'm trying to not mess around too much so that I know what exactly fixes the issue in the end.
  • Spence
    Spence almost 15 years
    +1 for changing one thing at a time. You're safe to run the "REGSVR32 vbsript.dll" from an elevated command prompt because you can easily undo it. If that doesn't resolve the issue, a "REGSVR32 /u vbscript.dll" will undo the changes made. I predict, however, that you'll find that the installer works fine after doing that from an elevated command-prompt. Make the change, try the install, and if it fails, back-off the registration with the "/u" version of the command.
  • John Dyer
    John Dyer almost 15 years
    The domain account I'm using is also a local administrator on the machine.
  • John Rennie
    John Rennie almost 15 years
    If UAC is on then just being a member of the local administrators group does not give you the same privileges as the local administrator account. Strange but true. Try logging on as the local administrator instead of some domain account that happens to be in the local administrators group.
  • John Dyer
    John Dyer almost 15 years
    As stated above, I disabled UAC and it still would not install. However, I took your advice and logged in as a local user in the Administrator group and then the install worked. I'm at a loss as to why a domain user in the Administrator group would be any different from a local user in the Administrator group. Why would some Administrators be different that others?