gpt4 book ai didi

WiX、UAC、托管自定义操作和模拟

转载 作者:行者123 更新时间:2023-12-03 03:44:40 25 4
gpt4 key购买 nike

我使用 WiX 3.6 构建了一个 Windows Installer 程序包,其中嵌入了自定义托管 (C#) 操作。

在此阶段,安装要求

  1. 使用特定的本地管理员帐户(在本例中为 SharePoint 安装程序帐户,即本地管理员)运行安装程序
  2. 禁用用户帐户控制

我确实没有办法绕过要求 #1,因为托管操作只有在 SharePoint 安装程序帐户的上下文中运行时才能执行某些步骤。

我想删除要求 #2,并让安装程序在启用 UAC 的情况下正常运行。

我已经对这个问题进行了相当广泛的研究,但仍然无法让它发挥作用。我在包中设置了 InstallScope="perMachine",这似乎可以正确提示 UAC 提升,但安装程序仍然失败,并出现臭名昭著的 2869 错误。

主要问题是我的自定义操作配置为Impersonate="yes",因为它必须在当前用户的上下文中运行,而不是本地管理员帐户。当我在线搜索时,几乎所有“修复”都指向自定义操作中的 Impersonate="no",但这对我来说不是一个选择。

因此,我的问题是:是否有一种方法可以使用当前用户的身份运行自定义托管操作,而不需要完全禁用 UAC?

最佳答案

当您使用Impersonate="yes"时,您的自定义操作无需管理权限即可使用当前登录用户的凭据运行。

Impersonate="no"时,您的自定义操作在系统上下文中运行。当在系统上下文中运行时,自定义操作具有对系统的完全访问权限。

<小时/>

来自WiX CustomAction element文档,模拟属性:

This attribute specifies whether the Windows Installer, which executes as LocalSystem, should impersonate the user context of the installing user when executing this custom action. Typically the value should be 'yes', except when the custom action needs elevated privileges to apply changes to the machine.

关于WiX、UAC、托管自定义操作和模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12920767/

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