2013-04-29 2 views
0

관리자 권한이 필요한 일부 설정 기능이 있습니다.이 기능은 권한이 상승되지 않은 다른 응용 프로그램에서 사용하는 결과입니다. 따라서 실제 단위 테스트를 실제로 반영하려면 설정 기능을 호출하고 고도를 낮춰야하므로 설정을 사용하는 함수를 호출 할 수 있습니다. 합리적으로 쉬운 방법이 있습니까? 내가UAC 가장 및 유닛 테스트

CreateRestrictedToken

ImpersonateLoggedOnUser 거기

예제를 사용할 수있게한다고처럼 보인다?

답변

0

UAC 권한 상승은 프로세스 시작시에만 수행됩니다. 프로세스가 실행되기 시작하면 입면도를 올릴 수 없습니다. 따라서 시도하려는 작업을 수행하려면 별도의 프로세스가 필요합니다.

  1. 처음에는 .exe를 실행하지 않고 초기 설정 기능을 호출해야 할 때 새로운 향상된 프로세스를 시작할 수 있습니다. 승격되지 않은 프로세스는 "runas" 동사와 함께 ShellExecute/Ex()을 사용하거나 타사 CreateProcessElevated() 구현을 사용하여 새 프로세스를 상승 된 상태로 시작할 수 있습니다.

  2. 처음 실행 한 .exe를 실행하고 설정 기능을 호출 한 다음 CreateRestrictedToken()CreateProcessAsUser()을 사용하여 소비자 기능을 호출해야 할 때 별도의 승격되지 않은 프로세스를 시작하십시오.

  3. setup 함수를 COM 개체로 이동 한 다음 비 상승 된 상태에서 .exe를 실행하고 설치 기능을 호출해야 할 때 COM Elevation Moniker을 사용하여 상승 된 상태로 COM 개체를 인스턴스화합니다.

쉬운 관리를위한 # 1, # 2, 들어, 당신은 그것을 알려주는 명령 줄 매개 변수를 전달 단지 자체의 새 복사본을 실행 한 .exe 파일에 모든 코드를 가질 수있는 전화를 걸고 즉시 종료하는 기능.