Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mendapatkan Pemilik Proses dalam C# Menggunakan WMI?

Bagaimanakah Saya Boleh Mendapatkan Pemilik Proses dalam C# Menggunakan WMI?

DDD
DDDasal
2025-01-17 11:36:09862semak imbas

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

Dapatkan pemilik proses dalam C#

Kawalan yang tepat dan pengurusan keselamatan memerlukan akses kepada memproses maklumat pemilik. Artikel ini menerangkan kaedah untuk mendapatkan pemilik proses menggunakan Instrumen Pengurusan Windows (WMI).

Pertama, anda perlu memetik System.Management.dll. Ini akan membolehkan anda menggunakan rangka kerja WMI.

Dapatkan pemilik melalui ID proses

Coretan kod berikut mendapat pemilik proses berdasarkan ID prosesnya:

<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>

Dapatkan pemilik mengikut nama proses

Untuk mendapatkan pemilik mengikut nama proses, anda boleh menggunakan coretan kod berikut:

<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>

Dengan menggunakan WMI, anda boleh menentukan pemilik proses dengan berkesan, memperoleh fleksibiliti dan keselamatan dalam mengurus sumber sistem.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Pemilik Proses dalam C# Menggunakan WMI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn