2009-03-20 4 views
6

Visual Studio 설치 및 배포 프로젝트가 있습니다. 그 안에 .cmd 스크립트를 추가했습니다. 스크립트를 실행하려면 관리자 권한이 필요합니다. 사용자가 setup.exe를 클릭하면 UAC는 사용자에게 관리자 권한을 묻는 메시지를 표시합니다. 그래서 나는 setup.exe 내에서 생성되고 호출 된 모든 프로세스가 관리자 권한으로 실행될 것이라고 생각했습니다. 그래서 다음 코드가 포함 된 콘솔 응용 프로그램을 설치 호출로 만들었습니다.vista에서 관리자로 program.exe cmd.exe를 실행합니다. C#

ProcessStartInfo p1 = new ProcessStartInfo(); 
p1.UseShellExecute = true; 
p1.Verb = "runas"; 
p1.FileName = "cmd.exe"; 
Process.Start(p1); 

관리자 권한으로 실행해야합니다.

나는 관리자로서 C# 프로세스 클래스를 통해 cmd.exe를 실행하려고합니다. Windows Vista를 실행 중입니다.

시도했는데 가 작동하지 않았습니다! 내가 무엇을 할 수 있을지! runas명령을 실행

답변

10

시도 :

... 

using System.Diagnostics; 

... 

string UserName = "user name goes here"; 
ProcessStartInfo p1 = new ProcessStartInfo(); 
    p1.FileName = "runas"; 
    p1.Arguments = String.Format("/env /u:{0} cmd", UserName); 
Process.Start(p1); 

... 

(그리고 난 당신이 명시 적 인 UseShellExecute를 필요가 있다고 생각하지 않습니다)

+0

내가는 adminstrator를 가장하고 싶다. setup.exe에서 자동으로 발생합니다. 이 사람은 암호를 묻습니다! –

+4

관리자를 가장하려고하면 다른 결과가 나올 것으로 예상 했습니까? 그렇지 않으면 코드를 실행하는 모든 사람이 암호를 몰라도 관리자가 될 수 있습니다. 그게 중요한 보안 위험으로 당신을 때리지 않습니까? –

+0

질문에 대해 다시 말해 보겠습니다. 보기 및 의견을 보내주십시오. –

6

그냥이 시도는,이 날 위해 일했습니다.

... 

using System.Diagnostics; 

... 

ProcessStartInfo startInfo = new ProcessStartInfo(); 
    startInfo.UseShellExecute = true;    
    startInfo.Verb = "runas"; 
    startInfo.Arguments = "/env /user:" + "Administrator" + " cmd"; 
Process.Start(startInfo); 

... 

아슈은

+0

나를 위해 작동 .. 고맙다 많이 .. :) –

관련 문제