Benutzername eines Prozesses
-
Hi,
wie bekomme ich den Benutzernamen eines Prozesses raus (oder das, was im windowsXP Taskmanager bei Benutzername steht), bzw. allgemeiner, wie bekomme ich heraus, ob ein bestimmter Prozess keine Systemprozess oder Dienst ist?
Danke,
Aggro
-
Schwierige Frage...
Den Namen (oder besser gesagt die SID) bekommst Du mittels:
- OpenProcess
- GetSecurityInfo
raus.Ob es einen einfacheren Weg gibt bin ich gerade überfragt...
Warum brauchst Du das überhaupt?
-
Danke

Ich muss einen Prozessmanager schreiben
-

-
So nen Programm, wo man die Prozesse und deren Module sehen kann

Anyway, ich habe jetzt doch ein Problem. Wie bekomme ich denn die SID des aktuellen Benutzers raus (LookupAccountName? <- Was muss ich als zweiten Parameter angeben?)
-
Warum willst Du denn LookupAccountName verwenden... Du willst doch die SID, oder?
Eine Möglichkeit ist:
OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken); GetTokenInformation (hToken, TokenUser, &oUser[0], sizeof (oUser), &u32Needed);
-
OK, das klappt jetzt
Nur leider weiß ich jetzt nicht, was ich mit der SID, die ich bekomme, anfangen soll. Wie kann ich nun gucken, ob die SID zu einem Systemprozess oder zu einem userprozess gehört?
-
Siehe: WELL_KNOWN_SID_TYPE
http://msdn.microsoft.com/library/en-us/secauthz/security/well_known_sid_type.aspVermutlich "WinLocalSystemSid" vergleichen mittels "EqualSid"