WMIC란
WMIC란 Windows Management Instrumentation Command-line라는 이름의 WMI에 대한 명령 줄 인터페이스를 제공하는 툴입니다.
그렇다면 WMI는 무엇일까요?
WMI는 마이크 로소프트가 DMTF(Distributed Management Task Force)로부터 WBEM(Web-Based Enterprise Management)과 CIM(Common Information Model) 표준을 구현한 것이라고 하는데요,
간단한 말로 풀어보자면 PC 나 서버의 상태를 확인할 수 있도록 한 것이라고 볼 수 있습니다.
WMI는 VBscript나 파워쉘등을 이용해서 로컬및 원격으로 윈도용 개인PC또는 서버를 관리할 수 있게 해줍니다.
최신 Microsoft windows OS에는 WMI가 기본적으로 설치되어 있습니다.
WMI의 기능을 살펴보면, Cmd.exe 보다 더 상세한 기능들을 사용할 수 있습니다.
WMI에는 사용자계정관리, 시스템관리, 프로세스관리, 이벤트로그관리, 서비스관리, 네트워크관리 등등 수 많은 기능이 있습니다.
WMI의 구조
- WMI 서비스 (WMI service): WMI 시스템의 Windows에서 구현되는 서비스입니다.
이는 'Windows Management Instrumentation'라는 디이름으로 실행되는 프로세스로
WMI 제공자, WMI 저장소, 애플리케이션 관리 등의 중개 역할을 합니다.
시작 시 자동으로 실행됩니다.
- 관리되는 객체 (Managed objects) : WMI를 통해 관리될 수 있는 임의의 논리적 또는 물리적 컴포넌트 또는 서비스입니다.
기본적으로 성능 모니터와 같은 다른 Windows 도구에 의해 액세스될 수 있는 모든 매개 변수 또는 객체도
WMI에 의해 액세스될 수 있기 때문에 방대한 구성 요소 배열을 포함합니다.
- WMI 제공자 (WMI providers): 특정 객체로부터의 이벤트 및 데이터를 모니터링하는 객체입니다.
WMI 제공업체에는 다양한 유형이 있습니다.
일부는 일반적이고, 일부는 장치에 특화되어 있으며, 윈도에는 수많은 WMI 제공자가 내장되어 있습니다.
- 클래스 (classes): WMI 제공자가 WMI 서비스에 데이터를 전달하기 위해 사용합니다.
여기에는 데이터의 실제 캡처 및 설정을 허용하는 이벤트 및 속성이 포함됩니다.
WMI 시스템 클래스는 미리 정의되어 있으며 이중 밑줄로 시작합니다.
- 메소드 (methods): 특정 클래스에 속하며, 그에 포함된 데이터를 기반으로 액션을 수행할 수 있습니다.
예를 들어, 원격 컴퓨터에서 프로세스를 시작하고 중지하는 데 메소드를 사용할 수 있습니다.
메소드들은 스크립팅 애플리케이션을 통해 또는 네트워크 관리 애플리케이션을 통해 액세스될 수 있습니다.
- WMI 리포지토리(WMI repository): WMI와 관련된 모든 정적 데이터를 저장하는 데이터베이스입니다.
- CMI 오브젝트 매니저(CMI Object Manager) : Management Application과 WMI Provider 사이에 위치하는 시스템입니다.
provider에게 데이터를 요청한 후 다시 요청 애플리케이션으로 반환해줍니다.
- WMI API :애플리케이션이 디바이스 독립적인 WMI 인프라에 액세스할 수 있는 방법을 제공합니다.
- WMI Consumer: Object Manager를 통해 Object로 query를 보내는 entity입니다.
일반적으로 WMI Consumer는 PRTG 네트워크 모니터와 같은 모니터링 애플리케이션,
관리 애플리케이션 또는 파워셸 스크립트와 같은 스크립트입니다.
WMI Query 실행하기
1. 윈도에서 cmd.exe 를 실행후, WMIC를 타이핑후 엔터 칩니다 (명령프롬프트 열기)
2. 그러면 아래와 같이 wmic:root\cli> 가 나오는데요, 여기서 WMI 쿼리를 실행할 수 있습니다.
3. 가장 기본적으로 CPU 정보를 확인해보겠습니다.
아래와 같이 CPU 라고 타이핑해봅시다
4. 커맨드창에서 곧바로 WMIC CPU 라고 타이핑하여도 동일한 결과가 나오는것을 확인할 수 있습니다.
총평
유닉스계열은 pc / 서버를 컨트롤하고 정보를 확인하려면 다양한 툴을 사용해야하지만,
윈도OS는 WMI / WMIC라는 강력한 툴이 있어 이거 하나만으로도 강력하게 서버관리를 할 수 있습니다.
오늘은 CPU 정보만 확인해보았지만, 나중에 시간이 된다면 원격으로 관리할 수 있는 방법이라던지,
다른 유용한 것들은 무엇이 있을지 확인해보겠습니다.
최근 WMIC에서 가장 유용하게 사용한것은 taskkill 로도 없애지지 않은 윈도 좀비프로세스 kill하는 것이였습니다.
taskkill /F로 강제로 종료하려고 해도 안되다가 아래 명령어로 해결되었습니다!
WMIC process where name="프로세스명" delete
WMIC란, WMIC 사용법, WMIC 사용방법, wmic, WMI, wmi
#WMIC,#WMI,#Windows,#window,#microsoft,#마이크로소프트,#윈도,#윈도우,#윈도우즈,#관리도구,#관리툴,#wmi
댓글