나는 다음과 같은 코드로 cmd를 명령을 실행하려고 : 내가 관리자로 cmd를 실행하고 완벽하게 작동하지만이 실행되지 않을 때 명령을 입력하면이 명령은, 관리자 privelages을 필요로 실행 상승 과정
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());
관리자 로이 응용 프로그램. 나는 UAC에게 내가 EXE 파일을 열 때마다 묻는 매니페스트 파일에
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
이것에 대해 여러 질문을 보았습니다. 상승 된 응용 프로그램에서 실행되는 프로세스가 모두 동일한 권한을 갖지만이 프로세스가 저를 위해 작동하지 않는다고 생각하는 것 같습니다.
나는 cmd.Verb = "runas";
을 시도했지만 주사위는 사용하지 않았습니다.
변화를 시도'cmd.UseShellExecute'에 'TRUE'를하고 'runas' 동사를 유지한다. – keyboardP
방금 시도했지만이 오류가 발생했습니다. 'IO 스트림을 리디렉션하기 위해 Process 객체의 UseShellExecute 속성을 false로 설정해야합니다.'감사합니다. –
그것이 바로 벅이 멈추는 곳입니다. 두 가지 방법이 있습니다. UAC는 고르지 않은 프로세스가 상승 된 프로세스의 성능을 높이는 것을 방지합니다. 리디렉션 할 수있는 유일한 방법은 먼저 자신을 높이는 것입니다. –