以完全的权限和环境启动流程

本文关键字:环境 启动 权限 | 更新日期: 2023-09-27 18:26:24

我有一个windows服务在LocalSystem以外的用户帐户下运行,假设用户是mydomain''svcUser

该服务使用process.Start(…)生成一个新进程p。进程p使用用户mydomain''procUser下定义的默认Outlook配置文件。工作良好。

现在,我需要在一个新用户下生成相同的进程pmydomain''procUser,该用户基本上与my domain''svcUser

在获得LogoUser的令牌后,我尝试以多种方式使用CreateProcessAsUser,但它根本不起作用。

现在,如果我将进程的登录用户更改为mydomain''procUser,则派生的进程p具有正常工作所需的所有权限和环境内容。

我非常不知道如何组合要传递给LogoUser和CreateProcessAsUser的参数,这样我就可以在mydomain''svcUser下保持服务运行,但派生的进程p才能在mydomain''procUser

这个链接非常有用,但它只是一篇很好的指导性文章,成功与否取决于如何在调用LogoUser和CreateProcessAsUser时使用标志和其他东西。

以完全的权限和环境启动流程

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

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

请参阅此处