728x90
이전 게시물에서 우리는 모든 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 속성에서 몇 가지 흥미로운 속성 값:
여기에서 진단과 관련된 모든 게시물을 볼 수 있습니다.
728x90
'프로그래밍' 카테고리의 다른 글
[C#] 텍스트 파일 읽기 (0) | 2023.02.06 |
---|---|
[C#.NET]여러가지 머신레벨의 시스템 정보 얻는 방법 (0) | 2023.02.05 |
[C/C++]sizeof 사용 없이 배열의 sizeof 찾기 (0) | 2023.01.29 |
[C#] quartz 모듈 사용하기 (0) | 2023.01.28 |
파이썬 사용해보기 - 5 (0) | 2023.01.27 |