ホームページ > バックエンド開発 > C++ > WMI を使用して C# でプロセスの所有者を取得するにはどうすればよいですか?

WMI を使用して C# でプロセスの所有者を取得するにはどうすればよいですか?

DDD
リリース: 2025-01-17 11:36:09
オリジナル
861 人が閲覧しました

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

C# でプロセス所有者を取得する

正確な制御とセキュリティ管理には、プロセス所有者情報へのアクセスが必要です。この記事では、Windows Management Instrumentation (WMI) を使用してプロセスの所有者を取得する方法について説明します。

まず、System.Management.dll を引用する必要があります。これにより、WMI フレームワークを使用できるようになります。

プロセス ID で所有者を取得

次のコード スニペットは、プロセス 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>
ログイン後にコピー

プロセス名で所有者を取得

プロセス名で所有者を取得するには、次のコード スニペットを使用できます:

<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>
ログイン後にコピー

WMI を使用すると、プロセスの所有者を効果的に決定でき、システム リソースの管理における柔軟性とセキュリティが得られます。

以上がWMI を使用して C# でプロセスの所有者を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート