Por que a representação de um processo retorna “O nome do diretório é inválido”?

Tenho um processo que precisa ser executado sob privilégios administrativos. Eu preciso do joe comum para executar o processo, mas não quero dar acesso a todos ... por isso criei uma classe simples que executará essa tarefa como administrador, usando a representação.

O código é MUITO estressante, mas não consigo entender por que isso está falhando. SOCORRO??!

Estou executando isso por meio de um arquivo em lotes e até copiei o arquivo que precisa ser executado no disco rígido local, pensando que isso pode ser um problema de permissão para executar um aplicativo pela rede.

<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>

No código acima, nunca chego a "iniciado". Ele gera um erro no Process.Start (psi) e com uma mensagem de erro "o nome do diretório é inválido".

questionAnswers(1)

yourAnswerToTheQuestion