Запустить процесс с повышенными привилегиями

Я пытаюсь запустить команду cmd со следующим кодом:

ProcessStartInfo cmd = new ProcessStartInfo("cmd.exe");
cmd.RedirectStandardInput = true;
cmd.RedirectStandardOutput = true;
cmd.RedirectStandardError = true;
cmd.UseShellExecute = false;
cmd.CreateNoWindow = true;
cmd.WindowStyle = ProcessWindowStyle.Hidden;
Process exec = Process.Start(cmd);
exec.StandardInput.WriteLine("sc create \"BaliService\" binPath= \"{0}\\BaliService.exe\"", Directory.GetCurrentDirectory());

Эта команда требует привилегий администратора, если я запускаю cmd от имени администратора и набираю команду, она работает отлично, но не когда я запускаю это приложение как админ. Я добавил

в файл манифеста, который запрашивает uac каждый раз, когда я открываю exe.

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

Я пробовал cmd.Verb = "runas"; , но без кубиков.

5
задан Kiquenet 22 August 2014 в 08:10
поделиться