2010-12-15 1 views
1

내가 만든 파일이 현재 사용자의 로그온 세션 중에 생성되었는지 어떻게 알 수 있습니까? Win32_LogonSession.LogonId는 세션 당 정말로 고유합니까?내가 만든 파일이 현재 사용자의 로그온 세션 중에 생성되었는지 어떻게 알 수 있습니까?

EDIT :
나는 파일을 쓰고 있는데, 파일에 logonid를 식별자로 쓸 계획이다. 그 전에 미안해. 주변을 둘러 보았지만 내 win32 지식은 여전히 ​​있어야하는 곳이 아닙니다. 현재 프로세스를 실행하는 사용자의 로그온을 어떻게 찾을 수 있습니까?

나는 현재 세션이나 다른 세션에서 파일이 생성되었는지 나중에 확인할 수있는 세션에 대해 고유 한 식별자를 찾아야합니다.

답변

1

LogonId는 LUID입니다. 64 비트 숫자입니다. 두 번의 재부팅간에 고유성이 보장되지만 OS를 다시 시작하면 가능한 값의 풀이 효과적으로 재설정됩니다.

LogonId, 파일 생성 시간 및 시스템 부팅 시간의 조합에 의존 할 수 없다면 명시된 목적으로 사용할 수 있다고 생각하지 않습니다. 시스템 부팅 전에 파일을 만든 경우 파일을 만든 현재 세션이 아니 었습니다. 그렇지 않으면 LogonId의 값에 의존하여이 구분을 할 수 있습니다. 한 가지주의 할 점이 있습니다. 파일 작성 시간은 사용자가 조정할 수 있으므로 상황에 따라 많은 영향을받습니다 (환경에 따라 달라질 수 있습니다).

+0

방금 ​​내 질문을 업데이트했습니다. 더 이상 생각해? –

+0

OpenProcessToken (또는 LogonUser 및 가장을 수행하는 경우 OpenThreadToken)을 호출하고 TokenStatistics를 사용하여 GetTokenInformation을 호출하고 결과 구조의 AuthenticationId 필드를 사용하여 LogonId LUID를 가져올 수 있어야합니다. – martona

관련 문제