Heim > Backend-Entwicklung > C++ > Wie kann ich mithilfe von WMI den Besitzer eines Prozesses in C# ermitteln?

Wie kann ich mithilfe von WMI den Besitzer eines Prozesses in C# ermitteln?

DDD
Freigeben: 2025-01-17 11:36:09
Original
861 Leute haben es durchsucht

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

Prozesseigentümer in C# abrufen

Eine genaue Steuerung und Sicherheitsverwaltung erfordern Zugriff auf die Informationen des Prozessinhabers. In diesem Artikel wird eine Methode zum Ermitteln des Eigentümers eines Prozesses mithilfe der Windows-Verwaltungsinstrumentation (WMI) beschrieben.

Zuerst müssen Sie zitieren System.Management.dll. Dadurch können Sie das WMI-Framework verwenden.

Eigentümer anhand der Prozess-ID ermitteln

Der folgende Codeausschnitt ermittelt den Eigentümer eines Prozesses anhand seiner Prozess-ID:

<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>
Nach dem Login kopieren

Eigentümer anhand des Prozessnamens ermitteln

Um den Besitzer anhand des Prozessnamens zu ermitteln, können Sie den folgenden Codeausschnitt verwenden:

<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>
Nach dem Login kopieren

Durch die Verwendung von WMI können Sie den Eigentümer eines Prozesses effektiv bestimmen und so Flexibilität und Sicherheit bei der Verwaltung von Systemressourcen gewinnen.

Das obige ist der detaillierte Inhalt vonWie kann ich mithilfe von WMI den Besitzer eines Prozesses in C# ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage