C ++ Erhalte den Benutzernamen aus dem Prozess

7

Ich habe ein Prozesshandle mit

%Vor%

Wie kann ich den Benutzernamen des Benutzers erhalten, der den Prozess ausführt?

Ich verwende nicht verwalteten Code (kein .NET).

    
modernzombie 21.04.2010, 19:49
quelle

4 Antworten

17

Verwenden Sie OpenProcessToken , um das Token (offensichtlich) zu erhalten GetTokenInformation mit dem TokenOwner -Flag, um die SID des Eigentümers zu erhalten . Dann können Sie LookupAccountSid verwenden, um den Benutzernamen zu erhalten.

    
tyranid 21.04.2010, 19:59
quelle
3

Wenn WMI keine Option ist, verwenden Sie GetUserFromProcess , das die Prozess-ID als Eingabeparameter verwendet und den Benutzernamen und die Domäne zurückgibt:

%Vor%     
dmihailescu 24.01.2012 18:36
quelle
1

WMI ist wahrscheinlich der Weg des geringsten Widerstands. Sie sollten das Token auch mithilfe von OpenProcessToken und GetTokenInformation abrufen können, um die SID des Besitzers zu erhalten. Sie können die SID dann in einen Benutzernamen umwandeln.

    
Stewart 21.04.2010 19:59
quelle
0

WMI sollte Ihnen diese Informationen mitteilen können. Andernfalls müssen Sie sich auf undokumentierten Spaß in ntdll.dll verlassen. Es scheint, dass andere Lösungen gefunden haben, die ntdll.dll nicht verwenden - verwenden Sie sie undokumentiertes Zeug.

    
Billy ONeal 21.04.2010 19:52
quelle

Tags und Links