我使用Wix Toolset创建了一个非常简单的安装程序。我的用户抱怨他们无法将此安装程序部署为系统用户。他们必须以用户身份做到这一点。但是,我了解到安装程序可以部署为系统用户。谁能告诉我在wxs文件中需要做什么,以便他们可以将其作为系统用户进行部署?
答案 0 :(得分:3)
我们通常使用Microsoft SCCM作为SYSTEM部署我们的MSI。我们使用PSEXEC调用CMD提示作为SYSTEM,在将其发送到SCCM之前进行我们的开发测试。安装程序因SYSTEM而失败有两个原因:
1)用户错误:我无法告诉你有多少次我看到包含无效命令行参数的软件包。我最喜欢的一个是引号通过电子邮件传输变成Unicode引号。另一种是登录到不存在的目录。另一个是忘记告诉MSI默默运行。它只是坐在那里挂起。另一个很棒的是输入错误的MSI名称。它特别棒,因为当我要求MSI日志时,它们几乎给我一个SCCM日志。没有MSI日志意味着它不是MSI的错误。
2)安装程序设计错误:您是否测试了静默安装?您是否有任何自定义操作可以对用户上下文/环境进行假设?我最喜欢的一个(不是)是InstallShield InstallScript自定义操作,由于设计不良的DCOM接口与MSI会话句柄通信而失败。自那以后已经过去差不多10年了,但我偶尔会遇到安装人员。另一个例子是假设用户将拥有另一台机器或互联网的权利(SYSTEM通常既没有在公司环境中。)
我首先使用PSEXEC进行SYSTEM测试。记录安装并查看错误。否则你没有给我们任何细节给出具体答案。
答案 1 :(得分:1)
您应该让他们对安装时发生的事情进行详细记录。有时与用户特定位置有关的问题,例如进入用户个人文件夹的文件,这对系统帐户意味着什么?或者安装或自定义操作可能会假定为用户映射的驱动器号是系统范围的(它们不是 - 它们是每个用户)并且可能导致错误。这也是克里斯所说的 - 背景很重要。系统帐户无权访问交互式用户的桌面,网络,对非交互式帐户无意义的配置文件位置等。
答案 2 :(得分:0)
我也是SCCM用户,并定期通过SCCM部署应用程序...这个WIX安装程序也使我发疯。但是克里斯托弗的反应帮助了我...
1)如果使用PSexec对Wix安装程序进行了测试,则它们可能可以工作,SCCM,我不知道它是什么,但是安装会由于没有明显的原因而失败。 (但由于系统为真,因此安装失败) 解决方案:将psexec合并到SCCM中的脚本中... 在您的源文件夹中添加setup.exe和psexec.exe。在安装脚本中使用以下语法:
将psexec.exe复制到您的软件源位置。
%〜dp0PsExec.exe -accepteula \ 127.0.0.1“%〜dp0setup.exe” --quiet
2)@WIX开发团队:也尝试使用SCCM进行测试!
3)如果以上操作失败,您还可以通过以下方式扩展建议:
在安装脚本中添加以下语法:
c:\windows\system32\net.exe user /add WixHelpInstaller PaSSW0rd
c:\windows\system32\net.exe localgroup administrators WixHelpInstaller /add
%~dp0PsExec.exe -accepteula -u .\WixHelpInstaller -p PaSSW0rd \\127.0.0.1 "%~dp0setup.exe" --quiet
c:\windows\system32\net.exe user WixHelpInstaller /delete