2011-07-13 27 views
5

me trataron¿Cómo iniciar una aplicación de consola como se ejecuta bajo la cuenta de usuario de Windows del sistema?

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

process.Start(); 

pero produce

Win32Exception fue controlada

Sesión Error: nombre de usuario desconocido o contraseña incorrecta

que tendrán que utilizar CreateProcessAsUser? ¿Cómo puedo obtener los parámetros apropiados para pasar a ese método?

Respuesta

8

La contraseña de las cuentas del sistema se mantiene internamente por Windows (creo) es decir, intentar iniciar un proceso como la cuenta del sistema proporcionando credenciales de esta manera está destinado al fracaso.

Yo sin embargo encontrar un mensaje en el foro que describe un truco que puede ser utilizado para ejecutar procesos en la cuenta del sistema por (ab) uso de servicios de Windows:

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

Como alternativa, la herramienta de Windows Sysinternals PsExec parece permitirte ejecutar un proceso bajo la cuenta del Sistema usando el interruptor -s.

+1

'psexec -s' es mi enfoque habitual. Recuerde que 'psexec' requiere un lanzador elevado. – Richard

0

El nombre de usuario debe ser LocalSystem si desea ejecutar su proceso con privilegios elevados (que es un miembro del grupo de administradores) o LocalService de privilegios normales

EDIT: Mi error LocalSystem & LocalService no son usuarios regulary y, por lo tanto, , no se pueden proporcionar como nombre de usuario. La solución de Kragen es la correcta

+0

Gracias! Pero mostró el mismo error –

Cuestiones relacionadas