C++ Obtenir Identifiant De Processus
J'ai un handle de processus avec
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, 0, THE_PROCESS_ID);
Comment puis-je obtenir le nom d'utilisateur de l'utilisateur qui exécute le processus?
Je suis en utilisant le code non managé (no .NET).
OriginalL'auteur modernzombie | 2010-04-21
Vous devez vous connecter pour publier un commentaire.
Utilisation OpenProcessToken pour obtenir le jeton (évidemment), puis GetTokenInformation avec le
TokenOwner
drapeau pour obtenir le SID de la propriétaire. Ensuite, vous pouvez utiliser LookupAccountSid obtenir le nom d'utilisateur.OriginalL'auteur tyranid
si WMI n'est pas une option, puis GetUserFromProcess ci-dessous qui prend l'ID de processus comme un paramètre en entrée et renvoie le nom d'utilisateur et de domaine:
OriginalL'auteur
WMI est probablement le chemin de moindre résistance. Vous devez également être en mesure d'obtenir le jeton à l'aide de OpenProcessToken, puis GetTokenInformation pour obtenir le SID de la propriétaire. Vous pouvez ensuite activer le SID dans un nom d'utilisateur.
OriginalL'auteur Stewart
WMI devrait être en mesure de vous dire que de l'information.
Sinon, vous devez vous appuyer sur les sans-papiers de plaisir dans ntdll.dll.Il apparaît d'autres ont trouvé des solutions qui ne les utilisent pas ntdll.dll -- les utiliser plutôt que de sans-papiers choses.Je suis d'accord. C'est pourquoi je n'ai pas entrer dans les détails.
à l'aide de wmi soit dans
c#
ouc++
est lent...OriginalL'auteur Billy ONeal