将提升安装的用户配置文件更改为自定义操作运行 EXE 的本地配置文件

本文关键字:配置文件 操作 自定义 运行 EXE 安装 用户 | 更新日期: 2023-09-27 18:31:20

我正在安装具有提升权限的每台计算机.msi,该在安装完成之前运行exe。 这个 exe 更改了很多不同的东西,其中之一需要使用我使用 enum 获得environment.specialfolder.userprofile本地用户配置文件。 问题是我的 EXE 和 MSI 需要使用提升的权限运行,因此它使用的是管理员用户配置文件。

这个问题与这个问题非常相似:从WiX提升的安装程序运行未提升的自定义操作

关于如何在不拉出 EXE 的非提升操作并创建另一个自定义操作的情况下解决此问题的任何想法?

将提升安装的用户配置文件更改为自定义操作运行 EXE 的本地配置文件

我有几个想法。第一个是进程外 EXE 通常是一个坏主意,因为您失去了 MSI 的声明性事务性。 MSI 无法撤消、监控、修复它不知道的内容。管理员无法查看或转换 EXE 正在执行的操作。

第二个是管理每用户数据是一个痛苦。 但是,如果必须执行此操作,最好的方法是将每台计算机需要提升的内容拆分为一个自定义操作,并将每用户且不需要提升到另一个自定义操作的内容拆分为另一个操作。 然后,使用活动安装程序注册表项检测其他用户配置文件何时进入范围,并在修复模式下运行 MSI 以将每用户数据应用于新的当前用户。

我必须知道这个EXE在做什么,才能为您提供最佳实践建议,以提高安装程序的整体质量。