开发者

How to start a Console App as running under the System Windows user account?

I tried

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

process.Start();

but it yields

Win32Exception was unhandled

Login failed: unknown user name or wrong password

I will have to use CreateProcessAsUser? How can 开发者_Go百科I get the appropriate parameters to pass to that method?


The System accounts password is maintained interally by Windows (I think) i.e. attempting to start a process as the System account by supplying credentials in this way is ultimately destined to failure.

I did however find a forum post that describes a neat trick that can be used to run processes under the system account by (ab)using windows services:

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

Alternatively the Windows Sysinternals tool PsExec appears to allow you to run a process under the System account by using the -s switch.


The Username should be LocalSystem if you want to run your process with high privileges (it's a member of Administrators group) or LocalService for normal privileges

EDIT: My mistake LocalSystem & LocalService are not regulary users and, therefore, they cannot be provided as a username. Kragen's solution is the right one

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜