小编Mat*_*ark的帖子

MSI的HTA安装程序失败

我正在使用HTA尝试使用WindowsInstaller.Installer作为ActiveXObject安装产品.使用过去使用的相同HTA模型,安装尝试会抛出错误:"Msi API错误:InstallProduct,PackagePath,PropertyValues".

我在Windows Vista和Server 2003上都试过这个,但没有成功.两者都使用IE8,所以我认为它可能是某种ActiveX兼容性问题.然后我在IE6中对它进行了测试并遇到了同样的问题 - 但是,我们过去曾多次将这种格式用于HTA并取得了成功.我试图从两台计算机上的管理员帐户安装,并且MSI本身按预期执行.

到目前为止,我尝试了以下内容:

  1. 将MSI的文件路径更改为绝对路径
  2. 将InstallProduct方法的"命令行设置"(第二个参数)更改为"ACTION = ADMIN"(强制管理员安装)和"ACTION = INSTALL"
  3. 更改IE中的ActiveX设置 - "初始化并编写未标记为可安全执行脚本的ActiveX控件"至"提示"
  4. 将localhost添加到IE中的受信任站点列表
  5. 将兼容性元标记添加到HTA以在IE7Emulation,IE5或IE6模式下运行

这是失败的方法/上下文:

var Software = new Array(
    new Array("..\\Software\\Product.msi", "ProductCode"));

   function run_msi(i)
{
    try
    {
        //Execute MSI application install on error resume next
        var msi = new ActiveXObject("WindowsInstaller.Installer");
        var installer = Software[i][0];
        msi.UILevel = 5; // full interactive mode
        msi.InstallProduct(installer, "");
    }
    catch (e)
    {
        alert ("Unable to launch the Installer Package.  This may be because you do not have permission to …
Run Code Online (Sandbox Code Playgroud)

javascript windows-installer hta failed-installation internet-explorer-8

5
推荐指数
1
解决办法
1860
查看次数