UDF > WinAPIEx > Processes & Synchronization > Processes >


_WinAPI_GetProcessUser

Obtient le nom d'utilisateur et de domaine du processus spécifié

#include <WinAPIProc.au3>
_WinAPI_GetProcessUser ( [$iPID = 0] )

Paramètre

$iPID [optionnel] Le PID du processus. Par défaut (0) est le processus actuel.

Valeur de retour

Succès: Retourne le tableau qui contient les informations suivantes:
[0] - Le nom de compte de l'utilisateur.
[1] - Le nom de domaine.
Échec: Définit @error <> 0.

Remarque

L'utilisation de cette fonction pour certains processus pourrait nécessiter des droits d'accès complets. utilisez la fonction _WinAPI_AdjustTokenPrivileges() pour activer le privilège $SE_DEBUG_NAME avant d'appeler cette fonction.

En relation

_WinAPI_AdjustTokenPrivileges

Exemple

#RequireAdmin

#include <Array.au3>
#include <WinAPIHObj.au3>
#include <WinAPIProc.au3>

Local $aAdjust, $aList = 0

; Active le privilège "SeDebugPrivilege" pour obtenir les droits d'accès complets à un autre  processus
Local $hToken = _WinAPI_OpenProcessToken(BitOR($TOKEN_ADJUST_PRIVILEGES, $TOKEN_QUERY))
_WinAPI_AdjustTokenPrivileges($hToken, $SE_DEBUG_NAME, $SE_PRIVILEGE_ENABLED, $aAdjust)

; Obtient les noms utilisateur pour tous les processus du sytème
If Not (@error Or @extended) Then
    $aList = ProcessList()
    Local $aData
    For $i = 1 To $aList[0][0]
        $aData = _WinAPI_GetProcessUser($aList[$i][1])
        If IsArray($aData) Then
            $aList[$i][1] = $aData[0]
        Else
            $aList[$i][1] = ''
        EndIf
    Next
EndIf

; Active le privilège SeDebugPrivilege par défaut
_WinAPI_AdjustTokenPrivileges($hToken, $aAdjust, 0, $aAdjust)
_WinAPI_CloseHandle($hToken)

_ArrayDisplay($aList, '_WinAPI_GetProcessUser')