[C#.NET] 모든 WMI 클래스 속성 찾아내기

2023. 2. 4. 19:58프로그래밍

728x90

 

 

Finding all WMI class properties with .NET C#

In this post we saw how to enumerate all WMI – Windows Management Intrumentation – namespaces and classes. Then in this post we saw an example of querying the system to retrieve all loc…

dotnetcodr.com

 

이전 게시물에서 우리는 모든 WMI(Windows Management Intrumentation) 네임스페이스 및 클래스를 열거하는 방법을 살펴보았습니다. 그리고 이 게시물에서는 우리는 모든 로컬 드라이브를 검색하기 위해 시스템을 쿼리하는 예를 보았습니다:

ObjectQuery objectQuery = new ObjectQuery("SELECT Size, Name FROM Win32_LogicalDisk where DriveType=3");
 

우리가 원하는 속성은 Win32_LogicalDisk의 "Size"와 "Name"과 같은 것이었습니다. 

객체 쿼리를 이용해서 이에 대한 모든 속성을 찾아 올 수 있으므로 간단한 솔루션이 있습니다. 

다음 메서드는 WMI 클래스에서 사용할 수 있는 모든 속성, 해당 유형 및 값을 인쇄합니다:

private static void PrintPropertiesOfWmiClass(string namespaceName, string wmiClassName)
{
    ManagementPath managementPath = new ManagementPath();
    managementPath.Path = namespaceName;
    ManagementScope managementScope = new ManagementScope(managementPath);
    ObjectQuery objectQuery = new ObjectQuery("SELECT * FROM " + wmiClassName);
    ManagementObjectSearcher objectSearcher = new ManagementObjectSearcher(managementScope, objectQuery);
    ManagementObjectCollection objectCollection = objectSearcher.Get();
    foreach (ManagementObject managementObject in objectCollection)
    {
        PropertyDataCollection props = managementObject.Properties;
        foreach (PropertyData prop in props)
        {
            Console.WriteLine("Property name: {0}", prop.Name);
            Console.WriteLine("Property type: {0}", prop.Type);
            Console.WriteLine("Property value: {0}", prop.Value);
        }
    }
}
 

VS를 관리자로 실행해야 할 것입니다. 또한 인증이 없으므로 이 코드를 사용하여 우리는 로컬 컴퓨터의 클래스 속성을 조사 할 것입니다. 아니면 네트워크의 또 다른 컴퓨터에서 WMI 개체를 읽는 예제에 대한 위에 언급한 게시물 링크를 참조하십시오.

 

cimv2/Win32_LocalTime 클래스에 무엇이 있는지 살펴봅시다:

PrintPropertiesOfWmiClass("root\\cimv2", "Win32_LocalTime");
 

나는 다음과 같은 결과를 얻었습니다.

다른 것도 하나를 봅시다:

PrintPropertiesOfWmiClass("root\\cimv2", "Win32_BIOS");
 

내 PC의 BIOS 속성에서 몇 가지 흥미로운 속성 값:

 

여기에서 진단과 관련된 모든 게시물을 볼 수 있습니다.

 

Diagnostics

Creating and deleting event logs with C# .NET Writing to the Windows Event Log with C# .NET Reading and clearing a Windows Event Log with C# .NET 4 ways to enumerate processes on Windows with C# .N…

dotnetcodr.com

 

 

728x90