Почему олицетворение процесса возвращает «Неверное имя каталога»?

У меня есть процесс, который должен работать с правами администратора. Мне нужен средний joe для запуска процесса, но я не хочу давать всем доступ ... поэтому я создал простой класс, который будет запускать эту ОДНУ задачу как администратор, используя олицетворение.

Код очень прост, но я не могу понять, почему это происходит сбой. ПОМОГИТЕ??!!

Я запускаю это через командный файл, и я даже скопировал файл, который должен быть выполнен, на локальный жесткий диск, думая, что это может быть проблема с разрешением для запуска приложения по сети.

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

В приведенном выше коде я никогда не добираюсь до «начала». Он выдает ошибку в Process.Start (psi) и с сообщением об ошибке «имя каталога недопустимо».

Ответы на вопрос(1)

Ваш ответ на вопрос