안녕하세요, 웬디입니다.
WMI(Windows Management Instrumentation) 커맨드를 사용하면서도 전체 구조에 대한 이해 부족으로 혼동을 많이 겪었습니다. 가끔은 그로 인해 불편하기도 합니다. 그래서 WMI(Windows Management Instrumentation)를 맘 먹고 정리해 보았습니다. 이 정보가 여러분에게도 유용하길 바랍니다.
WMI란?
엔터프라이즈의 전역에 분산된 시스템의 관리 정보를 얻기 위해 운영체제나 제조사에 구애받지 않는 산업 표준이 개발되었는데, 그것이 CMI, Common Information Model입니다. CMI는 관리 정보를 표현하기 위한 산업 표준이며, 다양한 시스템과 애플리케이션의 정보 통합을 위한 공통 모델을 제시합니다. 각 제조사는 그들의 제품 정보를 CIM에 맞게 표현하는 방법을 구현하는데, Micorsoft는 WBEM, web-based enterprise management를 고안하여 관리 정보에 로 접근할 수 있도록 하였습니다. 그리고 이것이 지금의 WMI로 발전하게 됩니다.
WMI는 윈도우 운영체제에서 CIM을 따르는 관리 정보를 검색하고 관리할 수 있는 도구입니다. WMI를 사용하면 로컬 시스템뿐만 아니라 원격 시스템에서도 다양한 컴포넌트 정보를 검색하고, 서비스 재구성, 시스템 재부팅 등 여러 작업을 수행할 수 있습니다. WMI는 모든 Windows 데스크톱 및 서버 플랫폼에 기본적으로 설치됩니다.
WMI 아키텍처

1. WMI Provider and managed objects
제품별 Provider는 각 제품에서 수집한 정보를 CIM(Common Information Model) 형식으로 변환하여 WMI에 전달합니다. WMI Provider는 물리적으로는 dll 파일과 mod(Managed Object Format) 파일로 구성되며, C:\Windows\System32\wbem 에서 찾을 수 있습니다.

2. WMI Infrastructure
WMI는 다양한 프로바이더가 제공하는 정보를 읽어 사용자에게 전달하는 시스템 관리 인프라입니다. WMI Infrastructure는 WMI core와 WMI repository로 이루어집니다.
(1) WMI core
WMI core는 Provider, WMI repository, 및 Consumer 사이에는서 중개자 역할을 당담하며, Windows 서비스 Winmgmt가 이 역할을 수행합니다.

(2) WMI repository
WMI Repository는 정적 데이터를 저장하는 일종의 데이터베이스로 C:\Windows\System32\wbem\Repository에 위치합니다.

(3) WMI 네임스페이스와 클래스 이해하기
WMI는 제공되는 데이터를 네임스페이스로 구분하여 관리합니다. 네임스페이스는 WMI에서 클래스와 데이터를 조직하는 논리적 구획인데, 기본적으로 네임스페이스는 특정 제품이나 기능과 연관되어 있습니다. 각 네임스페이스는 하나 이상의 클래스를 가지고 있는데, 이 클래스가 실제로 관리해야 하는 정보를 정의하고 있습니다.
GUI를 통해서 WMI의 네임스페이스를 탐색해 보겠습니다. 컴퓨터 관리를 여세요. 컴퓨터 관리 > 서비스 및 응용 프로그램 > WMI 컨트롤을 선택하고 마우스 오른쪽 버튼 > 속성을 클릭하여 WMI 컨트롤 속성 창을 열고 보안 탭으로 이동하면 네임스페이스를 확인할 수 있습니다.

3. WMI Consumers
WMI Consumers는 Object Manager를 통해 객체에 쿼리를 보내는 엔티티입니다. 일반적으로 WMI Consumers는 모니터링 및 관리 애플리케이션, 또는 PowerShell 스크립트일 수 있습니다. 그럼 powershell로 사용하여 데이터를 검색해 볼까요?
프로세스 가져오기
Powershell을 관리자로 실행합니다. WMI 클래스의 인스턴스 또는 사용 가능한 클래스에 대한 정보를 가져오려면 Get-WmiObject를 사용합니다. 네임스페이스는 기본적으로 root\CIMV2로 설정되어 있습니다.
#로컬 컴퓨터에서 프로세스 가져오기
Get-WmiObject -Class Win32_Process
#원격 컴퓨터에서 서비스 가져오기
Get-WmiObject -Class Win32_Service -ComputerName 172.16.4.128
결론
WMI의 기본 아키텍처에 대해 살펴보았습니다. WMI(Windows Management Instrumentation)는 Windows 환경에서 시스템 관리와 모니터링을 효과적으로 수행할 수 있는 강력한 도구입니다. 이 강력한 기능을 잘 활용하여 시스템의 효율성을 극대화하고, 문제를 신속하게 진단하며, 관리 작업을 원활하게 진행해 보시기 바랍니다.
'OS > Windows' 카테고리의 다른 글
| 볼륨 섀도 복사본 서비스 (1) | 2024.09.25 |
|---|---|
| [Sysinternals] 프로세스 모니터 (0) | 2024.08.15 |
| 블랙 스크린(Black Screen) 초기 대응법 (1) | 2024.08.01 |
| Windows 디버거를 사용하여 블루 스크린 문제 분석 (0) | 2024.07.21 |
| 안정성 모니터(Reliability Monitor) (0) | 2024.07.20 |