2010-06-17 5 views
3

내 응용 프로그램은 매우 자주 권한 상승이 필요합니다 ... 관리자 권한으로 실행될 때 올바르게 작동하는 타사 COM 구성 요소를 참조해야합니다.필요한 경우에만 권한 상승

필요할 때만 권한 승격을 요청하고 싶습니다 ... 일반적으로 타사 COM 구성 요소를 사용해야하는 경우가 아니면 내 응용 프로그램이 관리자 권한으로 실행되는 것을 원하지 않습니다.

나는 CoCreateAsAdmin이 잠재적 문제를 해결할 수 있다고 볼 수 있지만, 구성 요소의 저자는 필요한 레지스트리 항목을 설정하지 않고, 나는 C#에서와 런타임-Callable-와 연동 해에 CoCreateAsAdmin를 사용하는 방법을 잘 모르겠어요 tlbimp에 의해 작성된 랩퍼.

또 다른 해결 방법은 다른 프로세스를 생성하는 것이지만, 아직 경험이 없습니다 ... 완전히 별개의 응용 프로그램을 만들고 싶지는 않습니다. 실행되는 어셈블리를 만들어서 누군가가 나에게 그것이 작동하게하는 방법을 보여줄 수 있다면 상승 된 프로세스를 분리했다.

감사합니다 ...이 기사에서

답변

3

프로세스 권한 만 할당 된 프로세스에서 실행되고있는 사용자 토큰을 기반으로 프로세스가 시작됩니다. 따라서 이미 시작한 후에는 프로세스를 향상시킬 수있는 방법이 없습니다. 런타임시 승격시킬 수있는 유일한 확실한 방법은 새 프로세스를 생성하는 것입니다.

다행히도 이것은 매우 쉽습니다. Process 개체를 사용하여 COM 서버를 등록하고 시작하는 명령 줄을 실행합니다. 실행중인 .exe의 앱 매니페스트가 고도가 필요한 것으로 표시되어 있는지 확인하고 사용자가 실행되기 전에 자동으로 메시지가 표시됩니다.

관련 문제