以完整的权利和环境启动流程

时间:2014-10-14 13:27:49

标签: c# windows windows-services child-process createprocessasuser

我在LocalSystem以外的用户帐户下运行Windows服务,假设用户 mydomain \ svcUser

该服务使用 Process.Start(...)生成新流程 P 。进程P使用在用户 mydomain \ procUser 下定义的默认Outlook配置文件。工作正常。

现在,我需要在新用户下生成相同的进程 P mydomain \ procUser ,它基本上具有与 mydomain \ svcUser相同的权限

我在使用LogonUser获取令牌后尝试以多种方式使用CreateProcessAsUser,但它只是不起作用。

现在,如果我将流程的“登录”用户更改为 mydomain \ procUser ,则生成的流程 P 具有正常运行所需的所有权限和环境。

我很遗憾如何将要传递给LogonUser和CreateProcessAsUser的参数组合在一起,以便我能够在 mydomain \ svcUser 下保持服务运行,但是生成的进程 P mydomain \ procUser 下正常工作。

此链接非常有用,但它只是一篇很棒的指南文章,成功取决于在调用LogonUserCreateProcessAsUser时如何使用标记和其他内容。

1 个答案:

答案 0 :(得分:0)

使用接收用户凭据的Process.Start的重载

public static Process Start(
string fileName,
string userName,
SecureString password,
string domain
)

请参阅here