C# Process
클래스는 프로세스 소유권을 직접적으로 공개하지 않습니다. 그러나 WMI(Windows Management Instrumentation)를 활용하여 이 중요한 세부 정보를 얻을 수 있습니다. 프로젝트에 System.Management.dll
에 대한 참조를 추가하는 것을 잊지 마세요.
이 메소드는 해당 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!