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
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()
).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With