2014-02-15 3 views
-1

관리자가 아닌 사용자가 로그온 한 사용자 username, domainname 및 SID를 얻을 수 있습니까? 그렇다면 누군가가 예제 코드를 제공 할 수 있습니까? 아니면 단계를 시작해야합니까? 사전에현재 로그온 한 사용자 이름, 도메인 이름 및 비 관리자 사용자의 사용자 sid를 얻는 방법은 무엇입니까?

감사합니다! 이 같은

+0

"사용자 이름 가져 오기"등을 추가하려는 특정 프로그램을 실행하는 현재 사용자의 이름을 의미합니까, 아니면 "이 컴퓨터에 현재 로그온 한 모든 사용자 나열"을 의미합니까? 후자가 공개적으로 사용할 수있는 API를 통해 보안상의 이유로 불가능하다는 것은 확실합니다. –

+0

@MatsPetersson : 내 말은, .exe가 있고, myapp.exe입니다. 관리 사용자가 로그인되어 있습니다. 관리자라고합시다. 그러나 myapp.exe는 관리자가 아닌 사용자가 실행하면 시작됩니다. 올 가을에 누가 로그온했는지 알 수 있습니까? – kampi

+0

그럴 수도 있지만 C++는 이상적인 언어가 아닐 수도 있습니다. 분명히, 작업 관리자의 "사용자"탭에이 정보가 표시되어 정보를 사용할 수 있습니다. sysinternals.com에는 psloggedon 도구가있어 원하는대로 할 수 있습니다. 어떤 C 또는 C++로 작성된,하지만 그들은 소스 코드를 게시하는 의심 (그들은 다른 도구를 위해 않는) –

답변

2

시도 뭔가 :

  1. 사용 ProcessIdToSessionId() 프로세스가 실행되는 세션 ID를 얻을 수
  2. 를 사용 WTSQuerySessionInformation() 세션과 관련된 사용자 이름과 도메인을 얻을..
  3. LookupAccountName()을 사용하여 도메인 사용자의 SID를 가져옵니다.
+0

대단히 감사합니다! 이것은 완벽하게 작동하지만'LookupAccountSid'의 insted는'LookupAccountName'을 사용해야했습니다. – kampi

+0

당신 말이 맞아요. 내 잘못이야. 나는 그 수정을했다. –

관련 문제