运行任何 .vbs 脚本,Windows Script Host 提示 找不到脚本“xxx.vbs”的脚本引擎“VBScript”。 网页中的 vbscript 脚本无响应,也无任何报错
由于频繁安装和删除软件,一些杀毒软件(如卡巴、瑞星等),改变了注册表中默认打开.vbs脚本的dll库。卸载杀毒软件后,注册表中这些信息仍没有被删除,所以导致打开.vbs脚本时,会去调用杀毒软件程序的dll库,才出现了此问题。之前在网上搜了一些解决办法,都无效。我的系统是win7。
如果系统是xp,网上给出一种解决办法,有人用它解决了此问题。“这里给出无法找到脚本引擎"vbscript"的解决方法: 1)找到文件: C:\WINDOWS\inf\wsh.inf,右键“安装”; 2)开始→运行行里输入: `regsvr32 urlmon.dll shdocvw.dll jscript.dll vbscript.dll /s` 一般使用上述两个步骤就可解决问题。”
但是win7系统的“ C:\WINDOWS\inf\
”文件夹下根本就没有wsh.inf文件。“开始”->“运行”->“regedit
”,
检查以下三个注册表项:
HKEY_CLASSES_ROOT\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}\InprocServer32
HKEY_CLASSES_ROOT\CLSID\{B54F3742-5B07-11cf-A4B0-00AA004A55E8}\InprocServer32
HKEY_CLASSES_ROOT\CLSID\{B54F3743-5B07-11cf-A4B0-00AA004A55E8}\InprocServer32
检查默认值,正常的应该都是为C:WindowsSystem32VBScript.dll,瑞星安装的时候会修改这三项,将所有VBS脚本截到自己的一个DLL。如果没有正确卸载,可能导致这三项没有更改回来。要将它的“默认”值改为“C:\Windows\system32\vbscript.dll
”(不需要引号,此dll库才是windows中默认打开.vbs脚本的程序)。
修改是也许会又有别的问题来了,像我的win7就出现了,参考以下:
1)找到项“HKEY_CLASSES_ROOT\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}\InprocServer32
”,(注册表{b54f3741-}下面是空的,找不到InprocServer32项),下面给出导入注册表的方法:导入注册表(新建txt,改成.reg)
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}]
@="VB Script Language"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}\Implemented Categories]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}\Implemented Categories\{F0B7A1A1-9847-11CF-8F20-00805F2CD064}]
@=hex(0):
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}\Implemented Categories\{F0B7A1A2-9847-11CF-8F20-00805F2CD064}]
@=hex(0):
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}\InprocServer32]
@="C:\\Windows\\system32\\vbscript.dll"
"ThreadingModel"="Both"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}\OLEScript]
@=hex(0):
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11cf-A4B0-00AA004A55E8}\ProgID]
@="VBScript"
2)修改“默认”值时,被拒绝修改,window安全报错,无权限更改。经过百度,是它没有写权限,所以在项“InprocServer32
”上右键选择“权限”—高级—当前所有者—更改为当前—“完全控制”的权限,反正直到能修改为止,再修改即可
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。