2011-07-13 38 views
5

我试图如何启动控制台应用程序在系统Windows用户帐户下运行?

var process = new Process 
{ 
    StartInfo = new ProcessStartInfo 
    { 
     FileName = filename, 
     UserName = "System", 
     UseShellExecute = false, 
    }, 
}; 

process.Start(); 

,但它产生

Win32Exception是未处理

登录失败:未知的用户名或密码错误

我将不得不使用CreateProcessAsUser? 我如何获得适当的参数传递给该方法?

回答

8

系统账号密码是由Windows interally保持(我认为),即试图通过这种方式提供的凭据启动进程为系统帐户最终注定要失败的。

,但我却发现使用Windows服务描述一个巧妙的方法可以用来运行由(AB)的系统帐户下的进程个论坛上发帖:

Tip: Run process in system account (sc.exe)

或者在Windows的Sysinternals工具PsExec似乎允许您使用-s开关在System帐户下运行进程。

+1

'psexec -s'是我常用的方法。记住'psexec'确实需要一个高架发射器本身。 – Richard

0

名应LocalSystem,如果你想用高权限(这是管理员组的成员)或LocalService正常特权

EDIT运行过程:我的错误本地系统&本地服务不regulary用户,因此,它们不能作为用户名提供。 Kragen的解决方案是正确的

+0

谢谢!但它显示了同样的错误 –

相关问题