0

我有一个在 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时如何使用标志和其他东西。

4

1 回答 1

0

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

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

这里

于 2014-10-14T13:32:21.203 回答