【发布时间】:2012-07-18 06:11:24
【问题描述】:
我正在尝试发布一个 C++ .Net 应用程序,但我对 Windows UAC 感到非常沮丧。我一直没有为 XP 编写这方面的经验。
该程序需要更新一些存储在两个 XML 文件中的属性,如果它没有使用管理员帐户运行,则每次尝试都会被拒绝访问。 我已遵循 Microsoft 的建议,并将所有需要修改的文件写入 CSIDL_COMMON_APPDATA 文件夹。安装程序有一个动作,在后者中创建 [Organization}[Program] 结构,并添加具有完全控制权限的安全组 Every One,因为默认情况下,该目录是只读的。 我已经验证创建的目录 [Organization}[Program] 实际上包含安装后分配的组和权限。 此外,该应用程序有一个带有 requestedExecutionLevel 的清单,我已经尝试过 asinvoker 和 Highestavailable。
除非用户未以管理员身份登录,否则应用程序仍无法写入目录...
机器位于由服务器 2003 控制的域中,但客户端是 XP、vista 和 7 的混合体。
请问,有没有比我更有经验的人来启发我? 我应该使用其他文件夹吗?问题是不同的用户可能会登录到计算机并且这些设置是通用的,因此明显的用户文件夹不是一个选项。
我无法使用安装程序将用户添加到文件夹的安全性中,因为我不知道域中的哪个用户将使用该程序,并且我无法在启动时从该程序中执行此操作,因为如果用户没有管理员权限该程序将被阻止。
请您对我在这里遗漏什么有任何建议或指示?
【问题讨论】: