Maison > développement back-end > C++ > Comment puis-je obtenir le propriétaire d'un processus en C# à l'aide de WMI ?

Comment puis-je obtenir le propriétaire d'un processus en C# à l'aide de WMI ?

DDD
Libérer: 2025-01-17 11:36:09
original
861 Les gens l'ont consulté

How Can I Get the Owner of a Process in C# Using WMI?

Obtenir le propriétaire du processus en C#

Un contrôle précis et une gestion de la sécurité nécessitent un accès aux informations sur le propriétaire du processus. Cet article décrit une méthode pour obtenir le propriétaire d’un processus à l’aide de Windows Management Instrumentation (WMI).

Tout d'abord, vous devez citer System.Management.dll. Cela vous permettra d'utiliser le framework WMI.

Obtenir le propriétaire par ID de processus

L'extrait de code suivant obtient le propriétaire d'un processus en fonction de son ID de processus :

<code class="language-csharp">public string GetProcessOwner(int processId)
{
    string query = "Select * From Win32_Process Where ProcessID = " + processId;
    ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
    ManagementObjectCollection processList = searcher.Get();

    foreach (ManagementObject obj in processList)
    {
        string[] argList = new string[] { string.Empty, string.Empty };
        int returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList));
        if (returnVal == 0)
        {
            // 返回 DOMAIN\user 格式
            return argList[1] + "\" + argList[0];
        }
    }

    return "NO OWNER";
}</code>
Copier après la connexion

Obtenir le propriétaire par nom de processus

Pour obtenir le propriétaire par nom de processus, vous pouvez utiliser l'extrait de code suivant :

<code class="language-csharp">public string GetProcessOwner(string processName)
{
    string query = "Select * from Win32_Process Where Name = \"" + processName + "\"";
    ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
    ManagementObjectCollection processList = searcher.Get();

    foreach (ManagementObject obj in processList)
    {
        string[] argList = new string[] { string.Empty, string.Empty };
        int returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList));
        if (returnVal == 0)
        {
            // 返回 DOMAIN\user 格式
            string owner = argList[1] + "\" + argList[0];
            return owner;
        }
    }

    return "NO OWNER";
}</code>
Copier après la connexion

En utilisant WMI, vous pouvez déterminer efficacement le propriétaire d'un processus, gagnant ainsi en flexibilité et en sécurité dans la gestion des ressources système.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal