Powershell WiX:从远程计算机安装时,安装程序在ConfigureUsers操作中失败

Powershell WiX:从远程计算机安装时,安装程序在ConfigureUsers操作中失败,powershell,wix,wix3.7,Powershell,Wix,Wix3.7,我有一个WixMSI安装程序,用于运行在my\u服务器上的ASP.NET网站。该软件包是通过一个非常简单的Powershell脚本install.ps1安装的,该脚本只调用带有一些参数的msiexec 问题 当我直接在我的服务器上运行install.ps1时,一切正常。但是,当我想从远程计算机(例如,build\u server)上运行install.ps1时,安装失败,错误代码为1603,MSI安装日志显示以下错误: 操作开始14:22:30:配置用户 ConfigureUsers:错误0x8

我有一个WixMSI安装程序,用于运行在
my\u服务器上的ASP.NET网站
。该软件包是通过一个非常简单的Powershell脚本
install.ps1
安装的,该脚本只调用带有一些参数的
msiexec

问题 当我直接在我的服务器上运行
install.ps1
时,一切正常。但是,当我想从远程计算机(例如,
build\u server
)上运行
install.ps1
时,安装失败,错误代码为1603,MSI安装日志显示以下错误:

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

ConfigureUsers:错误0x80070005:添加/删除用户操作失败

CustomAction ConfigureUsers返回了实际错误代码1603

有什么建议吗

额外信息
  • 我使用以下命令远程运行
    install.ps1

    Invoke-Command -ComputerName my_server -ScriptBlock { path\to\install.ps1 } -Authentication Negotiate
    
  • 我在
    my\u服务器
    build\u服务器
    上使用相同的用户凭据

  • 在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
而不是谈判

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

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

这些步骤将进行更详细的解释。

Ok,因此在为CredSSP设置服务器和客户端之后,安装脚本现在似乎运行时没有出现错误。然而,我确实收到一个弹出窗口,询问我的密码,我没有使用它。由于脚本应该使用服务帐户在构建服务器上自行运行,因此是否可以使用CredSSP而不必内联写入密码?这似乎是我唯一的选择。我会很感激任何其他提示,但我会继续并将您的答案标记为已接受。我还没有找到一种不以某种形式存储密码的方法来实现这一点。