Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Start a process as LocalSystem using ProcessStartInfo

Tags:

c#

.net

I am trying to start a process as the LocalSystem account using this code

    ProcessStartInfo _startInfo = new ProcessStartInfo(commandName);
_startInfo.UseShellExecute = false;
_startInfo.UserName = @"NT AUTHORITY\SYSTEM";
_startInfo.CreateNoWindow = true;
_startInfo.Arguments = argument;
_startInfo.RedirectStandardOutput = true;

using (Process _p = Process.Start(_startInfo)) {
  _retVal = _p.StandardOutput.ReadToEnd();
  _p.WaitForExit();
}

But I am getting always the same error message saying "Logon failure: unknown user name or bad password". The user calling the function is a local admin and should be able to start a process with local system privilege. I also tried different combination but no luck.

I would appreciate any help. Thanks

like image 526
auhorn Avatar asked Apr 23 '10 08:04

auhorn


1 Answers

Unfortunately, I don't think you can do it so simply.

The underlying API that Process.Start() calls accepts a username and password, but since the SYSTEM user isn't a regular user and doesn't have a password I don't believe you can use it with this API.

You would have to use something like psexec (which you can, of course, call from Process.Start()).

like image 197
EMP Avatar answered Sep 21 '22 02:09

EMP