У меня есть процесс, который должен запускаться с правами администратора. Мне нужен средний joe для запуска процесса, но я не хочу давать всем доступ ... поэтому я создал простой класс, который будет запускать эту ОДНУ задачу как администратор, используя олицетворение.
Код ОЧЕНЬ трудоемок, но я не могу понять, почему это происходит сбой. HELP ?? !!
Я запускаю это через командный файл, и я даже скопировал файл, который должен быть выполнен, на локальный жесткий диск, полагая, что это может быть проблемой с разрешением для запуска приложения по сети.
</p>
<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;
}
В приведенном выше коде я никогда не добираюсь до «начала». Выдает ошибку в Process.Start (psi) и с сообщением об ошибке «имя каталога недопустимо».