使用Access Tokens共享进程管理员权限

时间:2012-03-06 14:28:01

标签: windows delphi winapi windows-xp

我有2个进程。其中一个在管理员帐户下运行,第二个 - 在没有管理进程权限的用户帐户下运行。他们需要相互看到并比较路径,从这里处理执行的位置。但是第一个(用户)进程无法获得第二个进程的路径。使用CreateToolhelp32Snapshot获取路径 - > OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION) - > QueryFullProcessImageName不适用,因为它适用于Vista,Win7及更高版本,我需要Win的较低版本的解决方案。

那么,如何为用户进程授予权限以查看管理进程的路径,或者如何使用访问权限或使用SetNamedSecurityInfo为用户共享管理进程权限?

使用delphi理想。

1 个答案:

答案 0 :(得分:1)

你可以改变这个,是的(*) - 但你真的应该重新考虑你的逻辑。例如,管理进程可以打开具有预定义名称的共享MMF,并存储您需要的任何信息。您可以将此MMF共享给您想要的任何用户或组(您应该考虑仅提供只读访问权限)。这比打开整个世界的过程要安全得多。

(*)在管理进程中:OpenProcess,获取令牌和安全描述符,修改DACL以包含所需用户帐户或组的新权限,设置令牌/ SD。