我的程序必须以管理员身份运行并创建一些文件。如果我通过右键单击图标并选择“以管理员身份运行”手动运行它——一切正常——所有用户都可以访问创建的文件。但是,如果 ShellExecuteEx 使用“runas”动词从另一个程序启动的程序 - 创建的文件没有 BUILTIN\Users 组的访问条目。只有管理员用户可以读取这些文件。
问问题
607 次
1 回答
0
为什么不设置链接器标志(VC2008 及更高版本):链接器 -> 清单 -> UAC 执行级别:requireAdministrator (/level='requireAdministrator')
编辑:我重新阅读了这个问题,发现问题可能与 NTFS 文件安全有关。这不是您的程序的错,但这是设计使然。任何创建文件和文件夹的用户仅被授予该用户的权限。
以管理员用户身份登录,创建一个文件夹。然后以另一个用户身份重新登录(无论你喜欢什么),并尝试访问/读取/写入/删除该文件夹 - 你不能。权限授予管理员用户,而不是所有人/用户组。
于 2011-06-19T08:25:35.960 回答