전문가칼럼
DBMS, DB 구축 절차, 빅데이터 기술 칼럼, 사례연구 및 세미나 자료를 소개합니다.
심도 있는 WMI 탐색 Scripting Guys 중 한 명은 젊었을 때 발효 음료를 마시고 겨울 캠핑을 하는 두 가지 취미에 심취했었다고 합니다. 아마도 그 두 가지가 서로 관련되어 있다고 생각했었던 모양인데 그 당시 친구들은 "더 열심히 해봐"라고 부추기고는 했다고 합니다. 이번 달에는 이 예전 친구들의 조언을 받아들여서 WMI(Windows Management Instrumentation)의 세계로 깊숙히 들어가 보기로 했습니다. 네임스페이스
WMI 리포지토리는 데이터베이스이며 CIM(Common Information Model)을 저장하는 데 사용됩니다. 이 모델은 개체 지향적이므로 WMI가 관리할 수 있는 항목을 나타내는 설명(WMI 클래스)의 집합으로 모델이 구성된다는 것을 의미합니다. 예를 들어 Win32_Process WMI 클래스는 프로세스를 나타냅니다. WMI 클래스는 WMI 리포지토리의 다른 섹션에 저장됩니다. WMI 리포지토리의 섹션은 네임스페이스로 알려져 있습니다. WMI 리포지토리에 대해 가장 먼저 알 수 있는 사실은 상위 네임스페이스로 구분된다는 것입니다. 그림 1에 스크립트가 나와 있습니다.
그림 1 네임스페이스 표시
심도 있는 WMI 탐색
다행스러운 것은 이번에는 하이킹을 준비할 필요 없이 커피 메이커와 의자만 있으면 된다는 것입니다. 이제부터 스크립트를 사용하여 WMI의 깊은 부분을 탐험해 보겠습니다. 잘 아시다시피 Scripting Guys는 정말 실용적인 사람들입니다. 우리는 실제로는 몇 가지 세부 정보를 빠뜨리고는 잘난 체하는 설명보다는 실제로 무엇인가를 달성할 수 있도록 문제에 대한 실질적인 해결책을 제시하려고 하며 앞서의 부류와 차별화하기 위해 노력하고 있습니다.
이 칼럼은 특정한 시스템 관리 작업을 수행하는 데 초점을 맞추고 있지는 않지만 실용적인 목표가 있습니다. 기본적인 목표는 WMI 인프라에 대한 정보를 제공하는 것입니다. 그리고 이번에는 몇 가지 유용한 탐색 스크립트를 제공하고자 합니다. 메모장을 여십시오. 이번에는 깊게 들어갑니다!
strComputer = "."
Call EnumNameSpaces("root")
Sub EnumNameSpaces(strNameSpace)
On Error Resume Next
WScript.Echo strNameSpace
Set objWMIService=GetObject _
("winmgmts:{impersonationLevel=impersonate}\\ & _