WiX:从远程计算机安装时,安装程序在“配置用户”操作中失败



我有一个WiX MSI安装程序,用于在my_server上运行的 ASP.NET 网站。该包是通过一个非常简单的Powershell脚本install.ps1安装的,该脚本仅使用一些参数调用msiexec

问题所在

当我直接在my_server上运行install.ps1时,一切都很好。但是当我想从远程机器在my_server上运行install.ps1时(例如 build_server ),安装失败,错误代码为 1603,MSI 安装日志显示以下错误:

操作开始 14:22:30:配置用户。

配置用户:错误0x80070005:无法添加/删除用户操作

自定义操作配置用户返回实际错误代码 1603

有什么建议吗?

额外信息

  • 我使用以下命令远程运行install.ps1

    Invoke-Command -ComputerName my_server -ScriptBlock { pathtoinstall.ps1 } -Authentication Negotiate
    
  • 我在my_serverbuild_server上使用相同的用户凭据。

  • 在 WiX 定义中,网站使用应用池的特定用户帐户进行设置,如下所示:

    <Component Id="AppPoolCmp"
               Guid="a-fine-looking-guid"
               KeyPath="yes">
      <util:User Id="AppPoolUser"
                 CreateUser="no"
                 RemoveOnUninstall="no"
                 Name="[APP_POOL_IDENTITY_NAME]"
                 Password="[APP_POOL_IDENTITY_PWD]"
                 Domain="[APP_POOL_IDENTITY_DOMAIN]">
      </util:User>
      <iis:WebAppPool Id="AppPool"
                      Name="[APP_POOL_NAME]"
                      ManagedPipelineMode="Classic"
                      ManagedRuntimeVersion="v4.0"
                      Identity="other"
                      User="AppPoolUser">
        <iis:RecycleTime Value="5:00" />
      </iis:WebAppPool>
    </Component>
    

这可能是双跃点问题,您的凭据在第一台服务器的范围之外无效。

您可以使用以下选项执行命令吗:

-Authentication CredSSP

而不是Negotiate.

您还需要使用 -Credentials 标志手动指定凭据,并为 CredSSP 设置客户端和服务器:

Enable-WSManCredSSP -Role Client -DelegateComputer HOSTNAME -Force
Enable-WSManCredSSP -Role Server -Force

此处更详细地解释了这些步骤。

最新更新