ホームページ > バックエンド開発 > C++ > WMI を使用して C# でプロセスの所有者を見つける方法

WMI を使用して C# でプロセスの所有者を見つける方法

Linda Hamilton
リリース: 2025-01-17 11:46:12
オリジナル
372 人が閲覧しました

How to Find the Owner of a Process in C# Using WMI?

WMI 経由で C# でプロセス所有権情報を取得する

C# の Process クラスは、プロセスの所有権を直接明らかにしません。 ただし、Windows Management Instrumentation (WMI) を活用して、この重要な詳細を取得できます。 プロジェクトに System.Management.dll への参照を忘れずに追加してください。

プロセス ID を使用した所有者の識別

このメソッドは、指定された ID のプロセス所有者を取得します。

<code class="language-csharp">public string GetProcessOwner(int processId)
{
    string query = $"Select * From Win32_Process Where ProcessID = {processId}";
    using (var searcher = new ManagementObjectSearcher(query))
    {
        using (var processList = searcher.Get())
        {
            foreach (ManagementObject obj in processList)
            {
                string[] ownerInfo = new string[2];
                int result = Convert.ToInt32(obj.InvokeMethod("GetOwner", ownerInfo));
                if (result == 0)
                {
                    return $"{ownerInfo[1]}\{ownerInfo[0]}"; // DOMAIN\user format
                }
            }
        }
    }
    return "NO OWNER";
}</code>
ログイン後にコピー

プロセス名を使用した所有者の識別

この代替案では、プロセス名を使用して所有者を見つけます:

<code class="language-csharp">public string GetProcessOwner(string processName)
{
    string query = $"Select * from Win32_Process Where Name = '{processName}'";
    using (var searcher = new ManagementObjectSearcher(query))
    {
        using (var processList = searcher.Get())
        {
            foreach (ManagementObject obj in processList)
            {
                string[] ownerInfo = new string[2];
                int result = Convert.ToInt32(obj.InvokeMethod("GetOwner", ownerInfo));
                if (result == 0)
                {
                    return $"{ownerInfo[1]}\{ownerInfo[0]}"; // DOMAIN\user format
                }
            }
        }
    }
    return "NO OWNER";
}</code>
ログイン後にコピー

これらの関数は、プロセスの所有権を決定するための堅牢な方法を提供し、システム管理とセキュリティ分析に貴重な洞察を提供します。 using ステートメントを使用すると、リソースが適切に破棄されます。

以上がWMI を使用して C# でプロセスの所有者を見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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