1

我有一个使用 wix 构建的安装程序,其中包括在延迟模式下运行的自定义操作,并且需要本地计算机上的管理权限。

在本地计算机上使用管理员帐户时安装程序工作正常,但当我使用管理员组中的帐户时安装程序不能正常工作。当我试图将密钥分配给注册表时,我得到了关于权限不足的异常。使用 Impersonate="no" 不是一个选项,因为此操作还需要在本地计算机上具有管理员权限,并且不时访问不同的网络共享。我希望“网络共享访问”的级别由用于安装应用程序的帐户(而不是管理员帐户)确定,但似乎无法找到解决方案 - 任何人都将不胜感激。

4

1 回答 1

1

听起来您没有正确处理 UAC。我的猜测是该安装适用于管理员用户,因为您的安全策略仅为该用户帐户禁用 UAC,但为管理员组的所有其他成员启用 UAC。

当自定义操作模拟启用了 UAC 的用户时,它使用过滤的(非管理员)安全令牌。您的自定义操作假定它可以执行管理员组成员可以执行的操作,但由于您的安全令牌不包括管理员组,因此访问被拒绝。

您需要如何解决此问题取决于您的自定义操作正在做什么。您是正确的,它需要模拟以用户身份访问网络共享;也许您可以将您的自定义操作分成两个单独的操作:一个模拟和访问网络共享,另一个不执行管理员级别的任务。

如果您可以完全控制要安装它的计算机,那么解决方法可能是在安装过程中禁用 UAC。然后,您可以在安装完成后重新启用它。

于 2013-09-11T07:09:34.773 回答