>백엔드 개발 >C++ >WMI를 사용하여 C#에서 프로세스 소유자를 어떻게 얻을 수 있습니까?

WMI를 사용하여 C#에서 프로세스 소유자를 어떻게 얻을 수 있습니까?

DDD
DDD원래의
2025-01-17 11:36:09862검색

How Can I Get the Owner of a Process in C# Using WMI?

C#에서 프로세스 소유자 가져오기

정확한 제어 및 보안 관리를 위해서는 프로세스 소유자 정보에 대한 액세스가 필요합니다. 이 문서에서는 WMI(Windows Management Instrumentation)를 사용하여 프로세스 소유자를 얻는 방법을 설명합니다.

먼저 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.