Windows服务作为LocalSystem运行,但需要以当前登录的用户身份启动进程

时间:2010-07-02 14:00:15

标签: .net windows-services process impersonation

我正在运行一个Windows服务(使用.NET编写)作为用户 - LocalSystem。

从服务中,我需要启动一个进程,但作为当前登录的用户。如果我使用Process.Start(process_name),它默认运行服务的权限 - 就像LocalSystem一样。如何模拟当前登录的用户并在同一个程序下运行该过程?

编辑:我无法访问用户凭据 - 我不知道登录用户的密码

EDIT2 :标记为答案的帖子中的第二条评论是有帮助的。

2 个答案:

答案 0 :(得分:0)

类似的问题已经被问到Setting Service to Run as Current User

答案 1 :(得分:0)

您可以使用ProcessStartInfo启动流程 - 它允许您为新流程设置用户名和密码,以便:

ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
startInfo.UserName = myUserName;
startInfo.Password = myUserPassword;
startInfo.Arguments = "www.northwindtraders.com";
Process.Start(startInfo);

更新(在更新问题之后)