2012-12-25 8 views
0

A와 B라는 두 명의 사용자가 컴퓨터에 로그온 한 경우 cmd.exe에서 "query session"명령을 사용하여 각 사용자 이름의 모든 세션 ID를 가져올 수 있습니다.Windows에서 사용자의 세션 ID를 쿼리하는 방법은 무엇입니까?

1, 어떻게 API (사용자 모드 또는 커널 모드)를 통해 지정된 사용자 이름의 세션 ID를 조회 할 수 있습니다 다음과 같이

내 질문

은?

2, API (사용자 모드 또는 커널 모드)를 통해 주어진 세션 ID의 사용자 이름을 어떻게 쿼리 할 수 ​​있습니까?

미리 감사드립니다.

답변

2

이 경우 Remote Desktop Services API을 사용할 수 있습니다.

1, (사용자 모드 또는 커널 모드)을 통해 주어진 사용자 이름의 세션 ID를 쿼리하려면 어떻게해야합니까?

단순히 WTSEnumerateSessions을 사용하는 모든 세션, 그들을 통해 반복 WTSQuerySessionInformation와 사용자 이름을 얻을과 일치 여부를 여부를 확인 얻는다.

해당 사용자에 대해 an access token이있는 경우 GetTokenInformation을 사용하여 해당 세션 ID를 검색 할 수 있습니다.

2, (사용자 모드 또는 커널 모드)을 통해 주어진 세션 ID의 사용자 이름을 쿼리하려면 어떻게해야합니까?

이전 답변에서 추측 할 수 있듯이 WTSQuerySessionInformation을 사용하여 세션 ID에서 사용자 이름을 가져올 수 있습니다.

+0

대단히 감사합니다. 니콜라이. 이것은 단지 내가 원하는 것입니다. – xmllmx

1

GetCurrentProcessId은 프로세스 Id (분명히!)를 얻을 것이며, ProcessIdToSessionId을 사용하여 세션 ID를 얻을 수 있습니다.

다음은 GetUserName 기능입니다.

관련 문제