Comment obtenir le nom d'utilisateur ou le propriétaire d'un processus .net
Comment puis-je trouver le propriétaire d'un processus donné en C#? Le Système de classe.Diagnostics.Le processus ne semble pas avoir des propriétés ou des méthodes qui va me faire de cette information. Je me dis qu'il doit être disponible parce qu'il est indiqué dans le Gestionnaire des Tâches de Windows sous le "Nom d'Utilisateur" de la colonne.
Mon scénario consiste en la recherche de l'instance d'un processus (tels que taskhost.exe) qui est en cours d'exécution en tant que "Service Local". Je sais comment trouver toutes les instances de taskhost à l'aide de
Process.GetProcessesByName("taskhost")
Alors maintenant, j'ai juste besoin de savoir comment identifier celui qui est en cours d'exécution en tant que service local.
OriginalL'auteur |
Vous devez vous connecter pour publier un commentaire.
Utiliser WMI pour récupérer des instances de la Classe Win32_Process, puis d'appeler le Méthode GetOwner sur chaque instance pour obtenir le nom de domaine et le nom d'utilisateur de l'utilisateur sous lequel s'exécute le processus. Après l'ajout d'une référence à la Système.Gestion de l'assemblée, le code suivant devrait vous aider à démarrer:
OriginalL'auteur
Vous pouvez utiliser la propriété Handle sur le processus et de le passer à GetSecurityInfo par le P/Invoke couche pour obtenir la sécurité de l'information sur le processus.
C'est le même que celui de la question:
Comment puis-je obtenir le SID /session de l'arbitraire d'un processus?
OriginalL'auteur
Pourriez vouloir essayer le code à ce lien
Premier résultat de la recherche google pour "C# get processus de propriétaire"
Probablement le gestionnaire des tâches utilise l'API Win32 via C pour ce faire. Ce processus est également décrite dans le lien ci-dessus.
OriginalL'auteur