【问题标题】:Release writing permission in Windows 7在 Windows 7 中释放写入权限
【发布时间】: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 的混合体。

请问,有没有比我更有经验的人来启发我? 我应该使用其他文件夹吗?问题是不同的用户可能会登录到计算机并且这些设置是通用的,因此明显的用户文件夹不是一个选项。

我无法使用安装程序将用户添加到文件夹的安全性中,因为我不知道域中的哪个用户将使用该程序,并且我无法在启动时从该程序中执行此操作,因为如果用户没有管理员权限该程序将被阻止。

请您对我在这里遗漏什么有任何建议或指示?

【问题讨论】:

    标签: c++ windows-7 uac .net


    【解决方案1】:

    This 可能会讨论您的问题。特别看

    应用程序的安装程序需要在 CSIDL_COMMON_APPDATA 的子目录中设置 ACL,以允许用户根据应用程序的要求访问该目录

    【讨论】:

    • 我相信我已经通过将具有完全控制权的所有人添加到 ACL 中来做到这一点。如果我错了,请纠正我。
    • 如上所述,也许我在问题中没有很好地解释自己。我实际上是在创建组 Everyone 并赋予它对子目录的完全控制权时这样做的。但是,我仍然拒绝访问...
    • 请不要回答这个问题。已按照最初问题中的说明完成此操作。
    • 很抱歉,这并不能解决您的问题。但是我没有任何其他建议。
    猜你喜欢
    • 2012-03-10
    • 2011-09-03
    • 2012-06-09
    • 2012-07-06
    • 2011-08-24
    • 1970-01-01
    • 2012-05-11
    • 2013-01-17
    • 2011-09-02
    相关资源
    最近更新 更多