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 サイトの他の関連記事を参照してください。