1

在我的 manager.exe 中,我试图更改我的 worker.exe 的 CPU 使用率,它由我的 service.exe 启动。Service.exe 在系统帐户下运行,而 manager.exe 在登录用户的帐户下运行。

当我使用 worker.exe 的 PID 在 manager.exe 中调用 OpenProcess 时,procHandle 为 NULL:

HANDLE procHandle = OpenProcess(PROCESS_SET_INFORMATION, 0, pid);

使用 GetLastError() 我看到我收到拒绝访问错误。

有什么办法解决这个问题吗?我可以以某种方式修改 worker.exe 以授予其他进程对其自身的完全控制权吗?

4

1 回答 1

0

你不应该打电话OpenProcess

CreateProcessAsUser从调用或时起,该服务应该已经拥有对工作人员的完全权限句柄CreateProcessWithLogonW。用于DuplicateHandle制作适合管理器进程使用的句柄版本,然后让服务将该句柄发送给管理器。该服务已经与经理联系,对吗?它将需要它DuplicateHandle

或者让经理要求服务更改工作进程。

于 2010-02-19T17:37:53.697 回答