gpt4 book ai didi

c# - 使用 NT AUTHORITY\SYSTEM 而不是登录用户的 Windows 安装程序

转载 作者:太空宇宙 更新时间:2023-11-03 22:44:01 25 4
gpt4 key购买 nike

我有一个 Windows 安装程序,它在安装过程中创建一个数据库。安装应用程序时 CREATE DATABASE 过程失败,因为 Windows 安装程序使用了错误的用户。它使用 NT AUTHORITY\SYSTEM 而不是使用登录用户。 NT AUTHORITY\SYSTEM用户没有创建数据库的权限。

有没有办法强制安装程序使用登录用户?

将 Windows 10 环境与 VS 2017 和 MS Visual Studio 2017 安装程序项目结合使用。

最佳答案

简短的回答是,您不能在 InstallAllUsers 安装的 Visual Studio 安装中执行此操作,因为所有 VS 安装程序生成的自定义操作都以系统帐户运行。因此,您需要使用 Orca 等编辑工具更改 MSI 文件中的自定义操作设置。您会在 MSI 文件的 CustomAction 表中找到自定义操作,查看类型值(可能是类型 3074),然后关闭 msidbCustomActionTypeNoImpersonate 位,以便它以安装用户的身份运行。

https://msdn.microsoft.com/en-us/library/windows/desktop/aa368069(v=vs.85).aspx

请注意,以安装用户身份运行有其自身的一系列问题,因为它与以交互式用户身份运行不同。未加载用户配置文件,因此与用户关联的对象(例如 HKCU、用户配置文件文件夹)非常不可靠。

许多人在第一次启动应用程序时使用单独的程序填充数据库,以便它作为交互式用户正常运行,并且可以作为独立程序进行开发和调试。如果在安装过程中填充失败,您要么放弃安装并回滚,要么继续安装并最终得到一个空数据库,为此您可能需要一个程序来填充它。

关于c# - 使用 NT AUTHORITY\SYSTEM 而不是登录用户的 Windows 安装程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50838413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com