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

WMI を使用して C# でプロセスの所有権を確認する方法

Patricia Arquette
リリース: 2025-01-17 11:41:09
オリジナル
236 人が閲覧しました

How to Determine Process Ownership in C# Using WMI?

WMI を使用して C# アプリケーションのプロセス所有者を識別する

プロセスの所有権を効率的に決定することは、さまざまな C# アプリケーション、特にシステム リソースの管理とセキュリティに重点を置いたアプリケーションにとって重要です。このガイドでは、Windows Management Instrumentation (WMI) ライブラリを使用してこれを実現する方法を説明します。

プロセスの所有権に WMI を活用する

WMI は、プロセスを含むシステム コンポーネントを管理および監視するための強力なツールを提供します。 WMI を利用してプロセス所有者を特定する方法は次のとおりです:

1. System.Management.dll 参照の追加

Visual Studio で、ソリューション エクスプローラー でプロジェクトの 参照 に移動します。右クリックして 参照の追加... を選択し、参照して System.Management.dll を追加します。

2. プロセス 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[] argList = { string.Empty, string.Empty };
                int returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList));
                if (returnVal == 0)
                {
                    return $"{argList[1]}\{argList[0]}"; // DOMAIN\user format
                }
            }
        }
    }
    return "NO OWNER";
}</code>
ログイン後にコピー

3. プロセス名

によるプロセス所有者の取得

このメソッドはプロセス名を使用して所有者を識別します:

<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[] argList = { string.Empty, string.Empty };
                int returnVal = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList));
                if (returnVal == 0)
                {
                    return $"{argList[1]}\{argList[0]}"; // DOMAIN\user format
                }
            }
        }
    }
    return "NO OWNER";
}</code>
ログイン後にコピー

これらの関数は、プロセス所有権情報を取得する簡単な方法を提供し、C# アプリケーションのプロセス管理機能を強化します。 適切なリソース管理のために using ステートメントを使用することに注意してください。

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

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