获取受UAC保护的文件夹列表

时间:2011-06-16 13:07:28

标签: c++ windows uac

如何在启用UAC的情况下获取受保护的写文件夹列表? 需要此信息的过程是使用管理员权限(安装程序)启动的。

2 个答案:

答案 0 :(得分:8)

UAC不保护文件夹。 UAC从用户的访问令牌中剥离管理员SID,将其缩减为常规受限(“普通”)用户。应用程序可以通过清单请求提升 - 然后整个流程使用管理令牌运行。

如果文件夹在启用UAC时无法写入,则意味着设置了NTFS安全性,以便普通用户无法写入,但管理员可以。作为补救措施,要么更改这些文件夹的权限,要么提升运行应用程序(或重新设计它以便写入普通用户可以访问的位置)。

如果您的意思是UAC虚拟化(将写入尝试从系统区域重定向到用户配置文件):here是对我复制以下内容的功能的一个很好的描述:

  • 虚拟化仅适用于:
    • 32位互动流程
    • 管理员可写文件/文件夹和注册表项
  • 禁用虚拟化:
    • 64位进程
    • 非互动流程
    • 冒充
    • 的流程
    • 内核模式来电者
    • 具有requestedExecutionLevel
    • 的可执行文件

答案 1 :(得分:1)

据我所知,没有API方法可以做到这一点。要手动执行此操作,您必须尝试写入每个文件夹,看看是否有任何异常。为了进一步使问题复杂化,您可以触发文件虚拟化,在这种情况下您将能够编写,但它会转到不同的位置。