安装我的公司软件包的客户在作为管理员帐户运行时静静地安装软件包没有问题。软件和服务既正确安装,又可以启动后安装。但是 - 他们需要将此应用程序推向特定组中的所有计算机。
他们使用的是SCCM(我不知道版本),而软件包是一个installshield .exe打包.msi。
当他们尝试使用NT Authority System用户将软件包推向其测试设备时,安装将在包含在内的第三方软件包完成后不久就会失败。错误日志显示它是SDDL错误1943。任何想法为什么会发生在NTA System帐户上,而不是在给定计算机的本地管理员帐户上发生?
我们正在使用的静音安装字符串is setup.exe/s/s/v"/qn conseTolicense = yes setuptype =典型"
我不是开发人员,所以我无法直接访问软件中的任何代码,只是与客户合作的第3层技术支持。
听起来您的MSI正在使用MSILOCKPERMISSERSEX表来在其安装或配置的某些资源上指定SDDL字符串(文件,目录,服务或注册表条目)。SDDL字符串是错误配置的(如果它是从一个帐户起作用而不是另一个帐户起作用的),或者是目标目录/服务/注册表密钥上的ACL已被损坏,这并不是完全闻所未闻的。
您可以尝试让客户将域帐户作为本地管理员部署到计算机,然后将SCCM设置为使用此帐户运行包。我不建议这样做,因为它具有固有的安全风险。
我恐怕这可能是您的开发人员(或创建MSI的人)与客户一起工作以找出哪些资源有错并进行诊断。
对不起,我再也没有帮助。
我想我已经找到了这个问题。在安装过程中,.msi将文件写入桌面,以读取用于安装的服务的配置设置。当我尝试调用系统用户以安装时,我已经写了文件(而且我确定客户也这样做了)。关于系统用户读/写入本地用户桌面,这确实是一个ACL问题。删除文件后,我收到错误1406,它无法写入密钥的值。在桌面上,该文件也从未写给本地桌面。当文件已经存在时(如先前的安装),我会在原始帖子中获得错误。在这一点上,我正在向前探讨这一点,以作为ACL错误并通知我发现的开发人员。