![安装错误:无法访问自定义操作的 VBScript 运行时](https://linux22.com/image/486980/%E5%AE%89%E8%A3%85%E9%94%99%E8%AF%AF%EF%BC%9A%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E8%87%AA%E5%AE%9A%E4%B9%89%E6%93%8D%E4%BD%9C%E7%9A%84%20VBScript%20%E8%BF%90%E8%A1%8C%E6%97%B6.png)
我正在尝试在 Windows 2008 服务器上安装一个软件包。该软件包拒绝安装。我已使用以下命令行运行安装程序以获取日志文件:
/lxv 安装日志.txt
这是我在文件中看到的错误:
错误 2738。无法访问自定义操作的 VBScript 运行时
我环顾四周,发现有些人说这是必要的:
Regsvr32 vbscript.dll
这是因为在 Windows Server 2008 系统上,由于安全问题,VBScript.dll 未在 HKeyCurrent_User 中注册,仅在 HKeyLocal_Machine 中注册。这看起来不太对劲。
我最初尝试以管理员身份运行安装程序,但没有成功。
我编写了一个显示消息框的小型 VBScript 程序,它似乎运行正常。在文件:Test.VBS 中,我有以下内容:
msgbox("Hello world")
当我双击它时,会出现一个消息框,暗示 VBScript 确实可以运行。
我已在机器上禁用 UAC,但仍然出现错误。
根据 Evan 的建议,我已验证以下注册:
HKCU\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11CF-A4B0-00AA004A55E8}
它确实存在,而且看起来不错。
作为另一项测试,我从管理员控制台运行了 Regsvr32 vbscript.dll,然后重试。仍然没有运气,我得到了和以前一样的错误。
答案1
VBScript 自定义操作的形式很糟糕。你应该狠狠地教训一下那个安装程序包的制作者。
您是否仔细检查过以下注册表项是否不存在:
HKCU\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11CF-A4B0-00AA004A55E8}
其次,当您运行“REGSVR32 vbscript.dll”命令时,您是否从升高命令提示符?
MSIEXEC 不会加载在 HKEY_CURRENT_USER 中注册的 VBscript.dll 的原因是 MSIEXEC 以提升权限运行,而无特权的用户可能会注册特洛伊木马 VBscript.dll 并利用该木马在提升权限的上下文中执行代码。这是一项安全功能,而不是错误。
答案2
您是以“管理员”还是“管理员”身份运行安装程序的?如果是前者,那么可能是 UAC 干扰。以管理员身份登录并重新运行安装程序。
最近,ServerFault 上经常出现此问题。如果您坚持在(非终端)服务器上使用 UAC,那么以管理员身份登录是避免此类问题的最简单方法。
JR