¿Por qué suplantar un proceso devuelve "El nombre del directorio no es válido"?

Tengo un proceso que debe ejecutarse con privilegios administrativos. Necesito el promedio de Joe para ejecutar el proceso, pero no quiero dar acceso a todos ... así que he creado una clase simple que ejecutará esta tarea ONE como administrador, utilizando la suplantación.

El código es MUY avanzado, pero no puedo entender por qué esto se está bloqueando. ¡¡¿¿AYUDA??!

Estoy ejecutando esto a través de un archivo por lotes, e incluso he copiado el archivo que debe ejecutarse en el disco duro local, pensando que esto podría ser un problema de permiso para ejecutar una aplicación en la red.

<pre><code> public static Process ImpersonateProcess(string exe, string args, string Username, string Password) { ProcessStartInfo psi = new ProcessStartInfo(exe); psi.Arguments = args; psi.UseShellExecute = false; psi.UserName = Username; psi.Password = new SecureString(); foreach (char c in Password.ToCharArray()) { psi.Password.AppendChar(c); } Process proc = null; Console.WriteLine("starting..."); proc = Process.Start(psi); Console.WriteLine("started"); return proc; } </code></pre>

En el código anterior, nunca llego a "comenzar". Lanza un error en Process.Start (psi) y con un mensaje de error de "el nombre del directorio no es válido".

Respuestas a la pregunta(1)

Su respuesta a la pregunta