2010-04-23 14 views
5

Estoy tratando de iniciar un proceso como la cuenta LocalSystem utilizando este códigoIniciar un proceso como LocalSystem usando ProcessStartInfo

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(); 
} 

Pero estoy siempre el mismo mensaje de error que dice "Error de inicio: nombre de usuario desconocido o mala contraseña". El usuario que llama a la función es un administrador local y debería poder iniciar un proceso con el privilegio del sistema local. También probé una combinación diferente pero no tuve suerte.

Agradeceria cualquier ayuda. Gracias

Respuesta

3

Desafortunadamente, no creo que pueda hacerlo tan simplemente.

La API subyacente que llamadas a Process.Start() acepta un nombre de usuario y una contraseña, pero como el usuario de SYSTEM no es un usuario normal y no tiene una contraseña, no creo que pueda usarla con esta API .

Tendría que usar algo como psexec (que puede, por supuesto, llamar al Process.Start()).

+0

Esta es la versión que usaré :-) ¡Gracias! – auhorn

0

Tuve algunas dificultades con esto hace un tiempo. Al final lo logró. Lo que probablemente te estás perdiendo es algún permiso u otro. Ver mi previous question/answer.

Cuestiones relacionadas