NT Authority\System & SDDL 错误

NT Authority\System & SDDL Error

安装我公司软件包的客户在 运行 以管理员帐户身份无提示安装软件包时没有问题。软件和服务均正确安装并启动 post 安装。但是 - 他们需要将此应用程序推送到特定组中的所有计算机。

他们用的是SCCM(不知道版本),软件包是InstallShield .exe打包的.msi

当他们尝试使用 NT Authority\System 用户将软件包推送到他们的测试设备时,安装在包含的第 3 方软件包完成后不久就失败了。错误日志显示这是一个 SDDL 错误 1943。知道为什么这会发生在 NTA\System 帐户而不是给定计算机的本地管理员帐户上吗?

我们使用的静默安装字符串是 setup.exe /s /v" /qn AgreeToLicense=Yes SetupType=Typical"

我不是开发人员,所以我无法直接访问软件中的任何代码,只是与客户合作的第 3 层技术支持。

听起来您的 MSI 正在使用 MsiLockPermissionsEx table 在其安装或配置的某些资源(文件、目录、服务或注册表项)上指定 SDDL 字符串。要么 SDDL 字符串配置错误(不太可能,如果它在一个帐户上工作但不能在另一个帐户上工作),要么目标 directory/service/registry 密钥上的 ACL 已损坏,这并非完全闻所未闻。

您可以尝试让客户以本地管理员身份将域帐户部署到计算机,然后将 SCCM 设置为 运行 使用此帐户的程序包。我不推荐这样做,因为它有其自身固有的安全风险。

恐怕这可能是您的开发人员(或创建 MSI 的任何人)需要与客户一起解决的问题,以找出有问题的资源并推进诊断。

抱歉,我无法提供进一步的帮助。

我想我已经找到了问题所在。在安装过程中,.msi 将一个文件写入桌面,以便在安装时读取该文件的配置设置。当我尝试调用系统用户进行安装时,我已经将文件(我相信客户也这样做了)写入了桌面。这似乎是一个 ACL 问题,参考系统用户 read/writing 到本地用户桌面。当文件被删除时,我收到错误 1406,它无法写入一个键的值。在桌面上看,该文件也从未写入本地桌面。当文件已经存在时(与之前的安装一样),我在原始 post 中收到错误。在这一点上,我正在继续将其作为 ACL 错误进行测试,并将我的发现通知开发人员。