How To Fix: Can’t find script engine “VBScript” for script error

Can’t find script engine “VBScript” for script – this error message may occur when you try to run a program that uses VBScript – a Microsoft programming language modeled on Visual Basic and included in Internet Explorer.

I first encountered it while testing a program to quickly create a system restore point but there are thousands of other programs that also use VBScript.

VBScript relies upon a specific file (vbscript.dll) being present and correctly registered in Windows.

If it isn’t (usually caused by a faulty uninstall of an antivirus program) this error message appears – in my own experience, Avast and McAfee are the most likely culprits…

Can’t find script engine "VBScript" error message

Here are two possible fixes to resolve such an error – the first is to correctly re-register the vbscript.dll file and the second If required) is to repair a specific registry setting.

Fix 1. Re-register the Vbscript.dll File

Windows 10, 8, 7 or Vista only:

Click ‘Start’ and then type cmd into the search box.

Right click on the Command Prompt (cmd.exe) program in the search results and select ‘Run As administrator

You may now see a User Account Control message asking “Do you want to allow the following program to make changes to this computer?”. Click on ‘Yes’ to confirm.

This will open an elevated (Administrator) level Command Prompt window – notice that the title of this window is ‘Administrator: Command Prompt’ which shows that it is running with elevated system privileges:

admin command prompt

Now jump to the ‘All Versions of Windows’ section below.

Windows XP only

Click on the ‘Start’ button in the bottom left of the screen and then click on ‘Run’.

Type cmd into the ‘Open’ box and press Enter – a black Command Prompt window opens.

Type the following command then press Enter: cd %windir%\system32

All Versions of Windows

You should now be in the C:\Windows\system32 directory in Command Prompt.

Type regsvr32 vbscript.dll then press Enter.

You should see a message that the operation succeeded – press OK then close the Command Prompt window.

Tip: if the operation says that vbscript.dll was not found (and you’re sure you ran the command from the system32 folder as above) then try to replace the missing vbscript.dll file by using System File Checker.

Now run the program that uses VBScript again and see if this fix works – if you still get the same “Can’t find script engine VBScript” error message, continue on and perform the second fix.

Fix 2. Repair VBScript Language Registry Setting

Be careful when editing the registry – create a System Restore point first for safety or take a backup e.g. with the Tweaking.com registry backup utility.

A. Open the Registry Editor:

  • Windows 10, 8, 7, Vista – click Start and type regedit into the Search box then click on the regedit.exe entry in the search results
  • Windows XP – click Start, then Run and then type regedit into the Run box then press OK

B. In the Registry Editor, browse to the following key:

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

The entry called (Default) should have a value of C:\Windows\system32\vbscript.dll as shown below (ignore the Default Engine and ThreadingModel entries, you may have different ones):

InprocServer32 Default value
Correct value of (Default)

However, an old antivirus may have set the value of (Default) to something else and, when uninstalled, it has not removed it.

So the incorrect value is still shown as below:

InprocServer32 incorrect default value by Avast
Incorrect value of (Default) – set by Avast (long since uninstalled)

If the value of (Default) is not correct then double click it and change its value to:

C:\Windows\system32\vbscript.dll then press OK.

Note: if you get an ‘Error Editing Value’ error message when you press OK, change the permissions of the InprocServer32 registry key then try again.

C. Close the Registry Editor and restart the computer.

D. Now run the program that uses VBScript again

If the incorrect registry setting was the cause of the error, the program should now work ok.

Why Is The Registry Change Required?

The (Default) value defines the .dll file to be used by VBScript – by default this is vbscript.dll

Some antivirus programs change this value to point to their own .dll file so they process the scripts to check them for signs of malicious behavior – a good thing.

However, this becomes a problem if the antivirus is uninstalled (and so deletes its own .dll file) but does not also change the (Default) value back to the original vbscript.dll file location…

In this case, a program may continue to look for the old antivirus .dll file, but that no longer exists – causing the error message that “VBScript” cannot be found.

Conclusion

There are many causes for VBScript error messages but this particular one is most often due to a badly coded uninstall of an antivirus program.

I have seen Avast uninstallation cause this problem many times and McAfee can also be responsible. Consider switching to a better antivirus program – my favorite, which I have used on all my systems for years, is Kaspersky Internet Security.

23 thoughts on “How To Fix: Can’t find script engine “VBScript” for script error”

  1. Thanks for creating these instructions. In case anyone follow these steps from above but script is not working, or script is being launched using csript or wscript executable in SysyWow64 folder. You can follow steps provided but in addition edit “HKCR\Wow6432Node\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}\InprocServer32” string with “C:\Windows\SysWOW64\vbscript.dll” to possibley address script launch issue.

Comments are closed.