2015-03-06 2 views
0

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

Мне нужно запустить эту команду от администратора. Я изменил requireAdministrator в манифесте. Но я хочу отключить разрешение управления доступом к пользователю.

Вот мой код:

 Process cmd = new Process(); 
     cmd.StartInfo.FileName = "cmd.exe"; 
     cmd.StartInfo.WorkingDirectory = @"C:\Windows\System32"; 
     cmd.StartInfo.Verb = "runas"; 
     cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
     cmd.StartInfo.RedirectStandardInput = true; 
     cmd.StartInfo.RedirectStandardOutput = true; 
     cmd.StartInfo.CreateNoWindow = true; 
     cmd.StartInfo.UseShellExecute = false; 
     cmd.Start(); 
     cmd.StandardInput.WriteLine(command); 
     cmd.StandardInput.Flush(); 
     cmd.StandardInput.Close(); 
     Console.WriteLine(cmd.StandardOutput.ReadToEnd()); 
+5

Вы не можете отключить UAC. Если бы вы все могли, то ОАК был бы бесполезен. –

ответ

0

При запуске хост-программы (Shift + щелкните правой кнопкой мыши -> Выполнить как), как пользователь, вы хотите запустить cmd.exe, он должен автоматически запускаться cmd.exe вы запускаете в своей программе в качестве одного и того же пользователя.

0

Ваше приложение не может программно управлять поведением UAC, поскольку это функция безопасности на системном уровне.

Что вы можете сделать, в вашей системе (где вы являетесь администратором), заключается в создании повышенной ярлыка для вашего приложения exe и использовании этого, чтобы открыть приложение и избежать диалога UAC.

Смотрите здесь:

http://www.thewindowsclub.com/create-elevated-shortcut-run-programs-bypass-uac

Смежные вопросы