我的程序必须以管理员身份运行并创建一些文件。如果我通过右键单击图标并选择“以管理员身份运行”来手动运行它 - 一切正常 - 所有用户都可以访问创建的文件。但是,如果程序通过 ShellExecuteEx 使用“runas”动词从另一个程序启动,则创建的文件没有 BUILTIN\Users 组的访问条目。只有管理员用户才能读取这些文件。
为什么不设置链接器标志(VC2008 及更高版本):
链接器 -> 清单 -> UAC 执行级别:requireAdministrator (/level='requireAdministrator')
编辑:我重新阅读了问题,发现问题可能出在 NTFS 文件安全性上。这不是你的程序的错,而是设计使然。任何创建文件并folders仅授予该用户权限。
以管理员用户身份登录,创建一个文件夹。然后以另一个用户身份重新登录(无论您喜欢什么),并尝试访问/读取/写入/删除该文件夹 - 您不能。权限授予管理员用户,而不是所有人/用户组。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)