wix自定义操作,管理员组

时间:2013-09-03 20:34:54

标签: wix

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

在本地计算机上使用管理员帐户时,安装程​​序正常工作,但在管理员组中使用帐户时,安装程​​序却不能正常工作。我得到关于权限不足的例外,因为我试图将密钥绑定到注册表。使用Impersonate =“no”不是一个选项,因为此操作也需要在本地计算机上拥有管理员权限,不时访问不同的网络共享。我希望“网络共享访问”的级别由用于安装应用程序的帐户(而不是管理员帐户)决定,但似乎无法提供解决方案 - 任何人都会很乐意欣赏。

1 个答案:

答案 0 :(得分:1)

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

当自定义操作模拟启用了UAC的用户it uses the filtered (non-Administrators) security token时。您的自定义操作假定它可以执行Administrators组成员可以执行的操作,但由于您的安全令牌不包含Administrators组,因此它将被拒绝访问。

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

如果您可以完全控制正在安装此计算机的计算机,则可能的解决方法是在安装期间禁用UAC。然后,您可以在安装完成后重新启用它。