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
Lepaskan: 2025-01-17 11:36:09
asal
861 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan