2011-02-13 1 views
0

시스템 권한을 삭제하고 현재 사용자 권한을 사용하여 다른 응용 프로그램을 실행하려면 ImpersonateLoggedOnUser을 사용하는 Windows 서비스가 있습니다.ImpersonateLoggedOnUser가 실패한 조건

ImpersonateLoggedOnUser에 대한 호출에 실패하면 서비스에 의해 실행되는 응용 프로그램에 의도적으로 시스템 권한이 있어야하는데 이는 좋지 않습니다. 반환 값을 확인하여이 문제를 해결했습니다.

이제 해당 함수 호출이 실패 할 수 있는지 판단하려고합니다.

응용 프로그램을 수정하지 않고 관리자 권한없이이 문제가 발생할 수 있습니까? (물론 픽스가없는 경우)

그렇다면 어떻게됩니까?

HANDLE hToken; 
OpenProcessToken(hProcess, MAXIMUM_ALLOWED, &hToken); 
ImpersonateLoggedOnUser(hToken); 
[...] 

고마워요!

답변

1

가장 권한이 없거나 해당 핸들이 유효하지 않은 경우 ImpersonateLoggedOnUser가 실패합니다.

API에 다른 실패 모드가 있는지 확실하지 않습니다.