본문 바로가기
Python

WMI

by irmus 2008. 1. 22.

개요

Windows Management Instrumentation.

WMI는 MS Windows에서 각종 시스템 관련 유틸리티 기능을 제공하는 python module이다. Microsoft의 WMI를 wrapping한 것.




설치

다운로드 받은 파일의 압축을 풀면 아래와 같은 파일들이 만들어진다.

wmi_files.png

WMI 모듈은 설치하지 않고 사용할 수도 있다. 그냥 wmi.py 파일을 가져다 직접 import 해서 쓰면 된다. 설치해서 사용하고 싶다면 setup.py를 이용해서 설치할 수도 있다.

python setup.py install

WMI를 사용하기 위해서는 pywin32 모듈이 있어야 한다.



Demo

D:\WWWDownloads\1.3>python wmi.py
Disks on IRMUS
C: 로컬 고정 디스크
D: 로컬 고정 디스크
E: CD-ROM 디스크
U: 로컬 고정 디스크
위와 같은 간단한 데모를 볼 수 있다. 데모에서는 PC에 있는 모든 디스크 드라이브들의 볼륨 레이블을 보여준다.

사용예

CPU 사용량 모니터

원본 링크 : http://www.goldb.org/goldblog/2006/11/13/CPUMonitorWithPythonAndWMI.aspx

import wmi
import time

c = wmi.WMI()
while True:
   for cpu in c.Win32_Processor():
       timestamp = time.strftime('%a, %d %b %Y %H:%M:%S', time.localtime())
       print '%s | Utilization: %s: %d %%' % (timestamp, cpu.DeviceID, cpu.LoadPercentage)
       time.sleep(5)

위 스크립트를 실행하면 5초 간격으로 CPU usage를 콘솔창에 출력한다.

Tue, 22 Jan 2008 11:34:25 | Utilization: CPU0: 5 %
Tue, 22 Jan 2008 11:34:30 | Utilization: CPU1: 11 %
Tue, 22 Jan 2008 11:34:37 | Utilization: CPU0: 40 %
Tue, 22 Jan 2008 11:34:42 | Utilization: CPU1: 38 %
Tue, 22 Jan 2008 11:34:49 | Utilization: CPU0: 13 %
Tue, 22 Jan 2008 11:34:54 | Utilization: CPU1: 5 %
Tue, 22 Jan 2008 11:35:01 | Utilization: CPU0: 8 %

듀얼코어 CPU에서 CPU0, CPU1 이 출력되는 것을 볼 수 있다.

계량된 소스코드 다운로드 : wmi_sample_cpu_monitor.py


Cookbook의 예제



사용 소감

  • 로딩이 느린 감이 있다.
  • MS Windows에서만 사용가능하다는 점이 약점. Platform independent한 python의 장점을 잃어버린다.



이 글은 스프링노트에서 작성되었습니다.