컴퓨터/기타

WMI 테스터 사용기

k1asd1 2020. 12. 31. 14:57
728x90
반응형

프린터 쪽 관련하여 만들어야 할 게 있어 정보를 찾다가 WMI(Windows Management Instrumentation) 관련 좋은 기능을 알게 되어 글로 남깁니다.

 

WMI는 윈도우의 여러 가지 설정을 확인 및 구성이 가능하고 많은 부분을 관리할 수 있으며 개발할 때 상당히 유용하게 사용될 듯합니다.

 

더욱 자세한 내용은 위키 참조하시면 되겠습니다.

https://ko.wikipedia.org/wiki/%EC%9C%88%EB%8F%84%EC%9A%B0_%EA%B4%80%EB%A6%AC_%EB%8F%84%EA%B5%AC

 

윈도우 관리 도구 - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

 

제가 전부다 사용할 일은 없겠지만 궁금했던 전체적인 클래스나 혹은 해당 클래스가 가지고 있는 객체명 등등 궁금하여 찾던 중 WMI 테스터를 알게 되었습니다.

 

초보라 설명은 잘 못하지만 가끔은 쓰일 듯하여 글로 남겨봅니다.


* 시작

 

현재 PC에 설치된 프린터의 목록을 확인하면서 문득 궁금한 게 생겼습니다.

ManagementObjectSearcher search1 = new ManagementObjectSearcher("SELECT * FROM Win32_Printer");
ManagementObjectCollection coll = search1.Get();

foreach (ManagementObject printer in coll)
{
    string test = printer["Name"].ToString();
    string test1 = printer["PortName"].ToString();
}

FROM절에 있는 Win32_printer(클래스)는 명칭은 어떻게 알 수 있고 이 명칭이 가지고 있는 속성(?)들은 어떻게 알아낼 수 있는지가 너무 궁금하였습니다.

 

더 많은 정보를 안다면 개발하는데 더 도움이 될 것이라 생각했습니다.


* WMI 테스터

- 우선 검색창이든 실행창이든 'wbemtest'라고 입력하고 실행합니다.

wbemtest

 

- 테스트할 환경으로 접속을 시도합니다.

※ 간단하게 클래스 확인과 속성 등의 확인이 목적이므로 다른 설정은 하지 않았습니다.(할 줄 모릅니다.)

 

WMI 테스터

실행된 화면에서 '연결'만 눌러주면 기존에 비활성화되어 있던 클래스, 인스턴스 관련 메뉴들이 전부 활성화됩니다.


* 모든 클래스 찾아보기

 

- 자신이 알고 있는 클래스의 상위 클래스를 알고 싶거나 혹은 전체 클래스를 보고 싶을 경우 '클래스 열거'를 선택합니다.

 

- 전 모든 클래스를 선택하였습니다.

클래스 선택

아까 위 코드의 프린터 목록에 사용되었던 클래스가 보입니다.


*원하는 클래스의 결과값

- 'win32_printer'가 가지고 있는 값이 궁금하면 '인스턴스 열거'를 선택합니다. 그리고 입력란에 'win32_printer'를 입력하고 확인을 누르면 해당 PC에 설치된 프린터의 목록이 조회됩니다.

인스턴스 확인


* 클래스가 가지고 있는 개체 확인

- 위 사진의 DeviceID는 어디에 있을까 싶어 찾아보고 싶은 경우 '인스턴스 열기'를 선택합니다. 그리고 입력란에 'win32_printer'를 입력하고 확인을 누르면 'win32_print' 클래스의 정보가 조회됩니다. 여기서 드라이버명이나 이름, 상태 등등 각종 속성 항목들을 확인할 수 있고 프린터의 이름 변경, 초기화, 테스트 페이지 출력 등의 메서드도 확인 가능합니다. 

 

개체 편집기

아까 위 코드에서 사용되었던 속성들도 보입니다.


* 쿼리

- 코드에서 사용하였던 'SELECT * FROM Win32_Printer'도 조회가 가능합니다. WHERE 절을 조합하여 위에서 확인한 속성으로 검색도 가능합니다.

쿼리문 입력

'인스턴스 열거'의 내용과 동일합니다.


다양한 속성이나 메서드가 있으니 찾아보고 응용하면 멋진 프로그램 만들 수 있겠습니다.

 

 

※ 잘못된 부분이나 틀린 내용이 있다면 지적해주세요.

 

728x90
반응형