Site Tools


Failed to Create VBScript Error

Developer: RhinoScript
Summary: Discusses the “Failed to create instance of VBScript engine” error.

Problem

When you run Rhino, you receive the following error message:

Cause

The RhinoScript plug-in, included with Rhino, uses Microsoft's Visual Basic Script, or VBScript. The “Failed to create instance of VBScript engine” message is a result of RhinoScript's inability to connect with VBScript.

This error can be caused by the following:

  1. VBScript is not installed.
  2. VBScript is not properly registered.
  3. Script blocking software is preventing VBScript from running.
  4. Security settings are preventing VBScript from being accessed.

VBScript is not installed

Rhino 3.0, 4.0, and 5.0 (32-bit) use the 32-bit version of the VBScript dynamic-link library, VBSCRIPT.DLL. On English-language versions of 32-bit Windows, VBSCRIPT.DLL is located here:

C:\Windows\System32

On English-language versions of 64-bit Windows, 32-bit VBSCRIPT.DLL is located here:

C:\Windows\SysWOW64

Rhino 5.0 (64-bit) use the 64-bit version of VBSCRIPT.DLL. On English-language versions of 64-bit Windows, VBSCRIPT.DLL is located here:

 C:\Windows\System32

If you search these folders and you are unable to locate VBSCRIPT.DLL, then you will need to re-install VBScript.

Installing VBScript

Install the latest Visual Basic Script engine from Microsoft for your Windows version

Windows 2000Download and install VBScript version 5.6 for Windows 2000 from Microsoft
Windows XPDownload and install VBScript version 5.7 for Windows XP from Microsoft
Windows Vista or Windows 7No download necessary. The latest VBScript is already included with Windows Vista and Windows 7

Note, you can also install the latest VBScript by simply download and installing the latest version of Microsoft Internet Explorer.

VBScript is not properly registered

In order for applications to use VBScript, it must be properly registered in the Windows Registry.

Rhino 3.0, 4.0, and 5.0 (32-bit) use the 32-bit version of VBScript. On English-language versions of 32-bit Windows, VBScript is registered here:

HKEY_CLASSES_ROOT\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}

On English-language versions of 64-bit Windows, 32-bit VBScript is registered here:

HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}

Rhino 5.0 (64-bit) use the 64-bit version of VBScript. On English-language versions of 64-bit Windows, VBScript is registered here:

HKEY_CLASSES_ROOT\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}

If, using REGEDIT.EXE, you search for these keys and you are unable to locate them, then you will need to re-register VBScript.

Note that you must be logged in as administrator or logged in as a user with administrator privileges for the computer to execute these steps.

  1. Click Start ⇒ All Programs ⇒ Accessories ⇒ Command Prompt. (Windows Vista and Windows 7 users: right-click on Command Prompt and select Run as administrator)
  2. In the command prompt window, change to the folder where VBSCRIPT.DLL resides by typing either CD C:\Windows\System32 or CD C:\Windows\SysWOW64 and then press Enter.
  3. In the command prompt window, type REGSVR32 VBSCRIPT.DLL and then press Enter.
  4. A message should appear stating DllRegisterServer in VBSCRIPT.DLL succeeded. If you see a message with error code 0x80004005, the command window was not opened as an administrator. You might also need to disable anti-virus, personal security, and firewall applications before performing this task.

Disable script blocking software

Many anti-virus, personal security, and firewall applications contain “script blocking” features that will prevent applictions from accessing VBScript. For example, Norton Antivirus has a Script Blocking feature what will disable VBScript. McAfee also has one that is even more destructive. See the second update below for details. Kaspersky also was found to be blocking VBScripting.

If you are running anti-virus, personal security, and firewall applications, you may have to disable their script blocking features. Check your product documentation for details.

Update 2 June 2011

Hey, had number of users who were getting the failed to created vbscript error when trying to start up both Rhino by itself and Matrix…even after trying everything on the wiki page that is available for that still no fix….remoted into users computer and found that all the users were using the latest McAfee Internet Suite and it renamed the path to the vbscript file in the registry to their own dll….changing this back got both Rhino and Matrix running…. HKEY_CLASSES_ROOT\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}\InprocServer32 and value Default should be pointing to the C:\Windows\system32\vbscript.dll file…

On those users systems with McAfee it had pointed it to it’s own dll in it’s folder ( I guess to redirect…who knows)…anyway..putting this value back to correct (C:\Windows\system32\vbscript.dll) fixed….

Even trying to register would not fix this…had to manually edit this reg setting….

Hadn’t seen this on newsgroup or on wiki and thought if saved you guys any time would be worth it as took us awhile to track down and it prevents Rhino from running with any script support by itself…

-Chris Hancock

Update 4 January 2013

I just ran into another example of this. A user got a new computer from Dell with a 30-day trial version of a McAfee anti-virus tool. Even after uninstalling it, the two registry keys listed above, were pointing to place holder DLLs in the McAfee folders instead of where the two vbscript.dll files really were as indicated above. Even worse, their botched installer had stripped full rights from the Administrator account to edit the registry keys. I used PSEXEC as described below to restore full permissions to the Administrator account so I could manually change the keys to point back to the 32 and 64-bit vbscript.dll files.

To get Rhino sorted, you will probably have to manually edit your registry settings. There are two keys that tell Windows where VBScript.dll is on the local drive. These keys will be pointing to the wrong file and locations.

I think you'll find that:
[HKEY_CLASSES_ROOT\CLSID{B54F3741-5B07-11cf-A4B0-00AA004A55E8}\InprocServer32]
points to:
C:\Program Files\McAfee\VirusScan Enterprise\scriptcl.dll
which is wrong. This causes VBScript to fail when any application tries to use it. A complete uninstall of McAfee will leave this key unmodified, causing VBScipt to fail since this McAfee dll no longer exists.
Manually changing the registry key to the windows default:

[HKEY_CLASSES_ROOT\CLSID{B54F3741-5B07-11cf-A4B0-00AA004A55E8}\InprocServer32]
to:
C:\Windows\System32\vbscript.dll
fixes the problem for 64-bit V5 Rhino.

For 32-bit V5 on 64-bit Windows, this key:
HKEY_CLASSES_ROOT\Wow6432Node\CLSID{B54F3741-5B07-11cf-A4B0-00AA004A55E8\InprocServer32}
should point to:
C:\Windows\SysWOW64\vbscript.dll

-John Brock

Windows Registry security issue

If VBSCRIPT.DLL is present on your system and the module is properly registered, then you might not have enough rights to read the Windows Registry.

Note that you must be logged in as administrator or logged in as a user with administrator privileges for the computer to execute these steps.

Run REGEDIT.EXE and find the appropriate registry key in HKEY_CLASSES_ROOT, either:

HKEY_CLASSES_ROOT\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}

or

HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}

Right-click on the key (in the left pane) and pick Permissions… from the context menu. For example:

Users should have the Read permission checked. If this is not the case, then the users permissions have been modified, which is causing RhinoScript to not be able to read this key. Registry permissions issues are often caused by security policies have been pushed down onto the workstations that are members of an Active Directory domain.

Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor.

To set the permissions, navigate to the top of the hive, HKEY_CLASSES_ROOT, and try to set the proper permissions from there. In doing this, all keys below this hive will inherit the permissions (and hopefully the problem will be solved). If you are unable to do this, then you will need to contact your computer support staff and ask for assistance.


developer/scriptsamples/vbsfailed.txt · Last modified: 2014/01/23 (external edit)