나는 BlockInput() 함수와 NVIDIA의 NVAPI 함수를 포함한 일부 데스크탑 관련 리소스에 액세스 할 수 있도록 관리자로 도우미 대화 형 프로세스를 만드는 시스템 서비스를 가지고 있습니다. 이는 서비스에서 실행할 수 없습니다. 관리자의 구성원이 사용자에 있던 로그온 한 경우,이 일을 다음 SE_TCB_NAME 포함표준 사용자가 로그온 할 때 관리 대화 형 프로세스 시작하기
- 설정 권한 수준을
- WTSGetActiveConsoleSessionId()
- 가 WTSQueryUserToken와 세션 ID의 사용자 로그온하기로 활성 세션 ID를 가져옵니다 SecurityImpersonation
- Launc와 TokenLinkedToken
- 하여 DuplicateTokenEx (()로
- GetTokenInformation()) 에 CreateProcessAsUser와 시간 과정()
, 내가 세션에 로그온 전류가 표준 사용자가 아닌 관리자의 하나가 될 때, 4 단계가 실패, 아마도 표준 사용자 토큰 관리 수준이 없기 때문에 그것과 연결되어 있습니다. 여기서 해결책은 무엇입니까? 나는 관리자 사용자 중 한 명에게 토큰을 가져 가야한다고 가정하지만, 어떻게해야합니까? 그리고 해당 사용자가 로그온 한 사용자가 아닌 경우에도 현재 데스크톱과 상호 작용하는 기능에 계속 액세스 할 수 있습니까?
대상 사용자 세션의 csrss 인스턴스에서 NT Authority \ SYSTEM 사용자 토큰을 복제 해 보셨습니까? 이것은 XP/7에서 작동해야하지만 아직 8에서 시도하지 않았습니다. – hyru
알려진 관리자 구성원 사용자의 토큰을 복제 할 수 있습니까? 표준 사용자 계정에서 데스크톱을 대화 형으로 사용하는 동안 해당 사용자에 대해 UAC가 호출 될 때 알려진 관리자 수준 계정의 암호를 제공하라는 요청을 받게되어 계정이 데스크톱과 상호 작용할 수 있음을 알게되었습니다. 로그인 한 사용자가 표준 사용자입니다. –
@DisplayName : 토큰을 복제하지 않고도 복제 할 수 없습니다. 관리자가 로그인하지 않는 한 관리자가 없습니다. 하지만 당신이하는 일은 위험 할 것입니다 ... BlockInput은 관리자 접근을 필요로하지 않으며, NVAPI 기능을합니까? –