WMI를 사용하여 C# 애플리케이션에서 프로세스 소유자 식별
프로세스 소유권을 효율적으로 결정하는 것은 다양한 C# 애플리케이션, 특히 시스템 리소스 관리 및 보안에 초점을 맞춘 애플리케이션에 매우 중요합니다. 이 가이드에서는 WMI(Windows Management Instrumentation) 라이브러리를 사용하여 이를 달성하는 방법을 보여줍니다.
프로세스 소유권을 위해 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!