我有2个进程。其中一个在管理员帐户下运行,第二个 - 在没有管理进程权限的用户帐户下运行。他们需要相互看到并比较路径,从这里处理执行的位置。但是第一个(用户)进程无法获得第二个进程的路径。使用CreateToolhelp32Snapshot
获取路径 - > OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION)
- > QueryFullProcessImageName
不适用,因为它适用于Vista,Win7及更高版本,我需要Win的较低版本的解决方案。
那么,如何为用户进程授予权限以查看管理进程的路径,或者如何使用访问权限或使用SetNamedSecurityInfo
为用户共享管理进程权限?
使用delphi理想。
答案 0 :(得分:1)
你可以改变这个,是的(*) - 但你真的应该重新考虑你的逻辑。例如,管理进程可以打开具有预定义名称的共享MMF,并存储您需要的任何信息。您可以将此MMF共享给您想要的任何用户或组(您应该考虑仅提供只读访问权限)。这比打开整个世界的过程要安全得多。
(*)在管理进程中:OpenProcess,获取令牌和安全描述符,修改DACL以包含所需用户帐户或组的新权限,设置令牌/ SD。