我正在尝试在 Windows 2008 服务器上安装一个包。该软件包拒绝安装。我已经运行安装并切换了以下命令行以获取日志文件:
/lxv 安装日志.txt
这是我在文件中看到的错误:
错误 2738.Could not access VBScript run time for custom action
我环顾四周,发现有人说这是必需的:
Regsvr32 vbscript.dll
这是因为在 Windows Server 2008 系统上,由于安全问题,VBScript.dll 没有为 HKeyCurrent_User 仅注册 HKeyLocal_Machine。这不太“闻”对。
我最初尝试以管理员身份运行安装,但没有运气。
我编写了一个小的 VBScript 程序,它显示一个消息框并且它似乎运行正常。在文件中:Test.VBS 我有这个:
msgbox("Hello world")
当我双击它时,我会看到一个消息框,暗示 VBScript 确实可以正常工作。
我已经在机器上禁用了 UAC,但仍然出现错误。
正如埃文所建议的,我已经验证了以下注册:
HKCU\SOFTWARE\Classes\CLSID\{B54F3741-5B07-11CF-A4B0-00AA004A55E8}
它确实存在并且看起来不错。
作为另一项测试,我从管理员控制台运行 Regsvr32 vbscript.dll 并再次尝试。仍然没有运气,我得到了和以前一样的错误。
用于自定义操作的 VBScript 是错误的形式。您应该对制作该安装程序包的人进行抨击。
您是否仔细检查过以下注册表项不存在:
其次,当您运行“REGSVR32 vbscript.dll”命令时,您是从提升的命令提示符执行此操作的吗?
MSIEXEC 不会加载在 HKEY_CURRENT_USER 中注册的 VBscript.dll 的原因是 MSIEXEC 正在运行提升,非特权用户可能会注册特洛伊木马 VBscript.dll 并将其用作在提升中执行代码的机制语境。这是一项安全功能,而不是错误。
您是以“管理员”还是“管理员”身份运行安装的?如果是前者,那么它可能是 UAC 干扰。以管理员身份登录并重新运行安装。
这些天来,这个问题在 ServerFault 上出现了很多。如果您坚持在(非终端)服务器上使用 UAC,那么以管理员身份登录是避免此类问题的最简单方法。
JR