如果应用以管理员身份运行,则会出现奇怪的文件

时间:2011-04-09 12:26:17

标签: c++ winapi uac shellexecute runas

我的程序必须以管理员身份运行并创建一些文件。如果我通过右键单击图标并选择“以管理员身份运行”手动运行它 - 一切正常 - 所有用户都可以访问创建的文件。但是如果程序由ShellExecuteEx从另一个程序启动并带有“runas”动词 - 创建的文件没有BUILTIN \ Users组的访问条目。只有管​​理员用户才能读取这些文件。

1 个答案:

答案 0 :(得分:0)

为什么不设置链接器标志(VC2008及更高版本): 链接器 - >清单 - > UAC执行级别: requireAdministrator(/ level ='requireAdministrator')

编辑:我重新阅读了这个问题,发现问题可能与NTFS文件安全性有关。这不是你的程序的错,但这是设计的。创建文件和文件夹的任何用户仅被授予该用户的权限。

以管理员用户身份登录,创建一个文件夹。然后重新登录为另一个用户(无论你喜欢),并尝试访问/读/写/删除该文件夹 - 你不能。权限授予管理员用户,而不授予所有人/用户组。