WMI(Windows Management Instrumentation)는 Windows 컴퓨팅 시스템의 네트워크에 있는 장치 및 애플리케이션 관리를 통합하기 위한 Microsoft의 사양 세트입니다. WMI는 사용자에게 로컬 또는 원격 컴퓨터 시스템의 상태에 대한 정보를 제공합니다.
WMI의 목적은 관리자가 원격 시스템을 포함한 다양한 Windows 운영 환경을 관리하도록 돕는 것입니다. WMI의 가장 큰 장점 중 하나는 유지 관리 및 기업 네트워크 구성 요소 관리 비용을 줄여준다는 것입니다.
WMI는 Microsoft의 최신 운영 체제에 사전 설치되어 제공됩니다. 공급업체는 Windows 10 이전 OS에서 WMI 명령줄(WMIC)이라는 WMI용 명령줄 인터페이스(CLI)를 제공했습니다. WMIC는 이전 Windows 버전의 기존 셸 및 유틸리티 명령과 호환됩니다.
WBEM 구현으로서의 WMI
WMI는 지원되는 Windows 플랫폼을 위한 Microsoft의 WBEM(웹 기반 엔터프라이즈 관리) 이니셔티브 구현입니다. WBEM은 기업 IT 환경에서 다양한 하드웨어 및 소프트웨어 관리 시스템의 정보에 액세스하고 결합하기 위한 관리 인프라 표준을 개발하기 위한 업계 전반의 이니셔티브입니다.
WBEM은 장치 및 응용 프로그램 특성을 정의하기 위한 컴퓨터 산업 표준인 CIM(Common Information Model) 스키마를 기반으로 구축되었습니다. CIM을 사용하면 시스템 관리자와 관리 프로그램이 여러 제조업체나 소스의 장치와 응용 프로그램을 제어할 수 있습니다. 이는 DMTF(이전의 분산 관리 태스크 포스)가 주도합니다.
WMI 심층 분석
WMI는 사용자에게 엔터프라이즈 네트워크의 Windows 작동, 구성 및 상태에 대한 일관된 모델을 제공합니다. 로컬 또는 원격 컴퓨터 시스템의 상태에 대한 관리 정보에 액세스할 수 있는 COM API를 제공합니다. 원격 WMI 연결은 DCOM(Distributed Component Object Model)을 통해 이루어집니다.
WMI 도구 키트는 Windows 드라이버 모델의 다양한 확장을 제공합니다. 이 모델은 중요한 정보와 다양한 유형의 알림을 위한 운영 체제 인터페이스를 제공합니다.
개발자와 IT 관리자는 WMI 스크립트나 응용 프로그램을 작성하여 원격 컴퓨터에서 관리 작업을 자동화할 수 있습니다. 이러한 스크립트나 애플리케이션을 생성하기 위해 특정 SDK(소프트웨어 개발 키트)를 다운로드하거나 설치할 필요가 없습니다. 관리 응용 프로그램이나 스크립트는 다양한 프로그래밍 언어로 WMI를 통해 작업을 수행하거나 데이터를 가져올 수 있습니다.
WMI는 스크립트 지원 외에도 Microsoft SCOM(System Center Operations Manager) 및 WinRM(Windows Remote Management)을 비롯한 운영 체제 및 제품의 다른 부분에도 관리 데이터를 제공합니다.
WMI는 다음과 같은 작업을 지원합니다:
- 보안 설정 구성
- 시스템 속성 설정 및 변경
- 승인된 사용자 및 사용자 그룹에 대한 권한 설정 및 변경
- 드라이브 라벨 할당 및 변경
- 특정 시간에 실행되도록 프로세스 예약
- 개체 저장소 백업
- 오류 로깅 활성화 또는 비활성화
Windows Management Instrumentation 아키텍처
WMI는 WMI 클라이언트 응용 프로그램과 스크립트가 여러 시스템 API를 호출할 필요가 없도록 통일된 인터페이스를 제공합니다. 또한 유연하고 확장 가능한 아키텍처는 새로운 장치, 애플리케이션 및 기타 향상된 기능을 지원합니다.
WMI 아키텍처의 세 가지 핵심 요소는 다음과 같습니다.
- 관리 인프라
- 관리 데이터에 액세스하는 통일된 방법을 애플리케이션에 제공하는 CIMOM(CIM 개체 관리자)
- 관리 데이터의 중앙 저장 영역인 CIMOM 개체 저장소
- WMI 공급자
- CIMOM과 관리 개체 간의 중개자
- 주요 기능:
- WMI API는 관리 개체의 데이터를 CIMOM에 제공합니다.
- 관리 애플리케이션을 대신하여 요청을 처리합니다.
- 이벤트 알림 생성
- WMI 소비자
- 관리 애플리케이션, WMI 인프라와 상호 작용하는 스크립트:
- 데이터 쿼리, 열거
- 제공자 메소드 실행
- 이벤트 구독
PowerShell의 CIM 통합을 위한 일부 cmdlet입니다. Windows Management Instrumentation 구성요소
주요 WMI 구성요소는 다음과 같습니다:
- 관리 개체: 개체는 하드 디스크 드라이브, 네트워크 어댑터 또는 OS와 같이 WMI를 통해 관리되는 물리적 엔터티/구성 요소 또는 서비스입니다.
- WMI 공급자: WMI에 대해 하나 이상의 관리 개체를 모니터링하는 구성 요소 개체 모델(COM) 개체입니다.
- WMI 인프라: WMI 코어와 WMI 저장소로 구성된 Windows 운영 체제 구성 요소입니다.
- WMI 저장소: CIMOM에서 관리하고 WMI 공급자가 정의하는 클래스와 같은 개체에 대한 정적 데이터를 저장하는 WMI 네임스페이스로 구성되는 중앙 저장소 영역입니다.
- WMI 서비스: 관리 애플리케이션(공급자)과 WMI 리포지토리 간의 중개자 역할을 합니다.
- WMI 소비자: WMI용 COM API 또는 WMI용 스크립팅 API를 호출하여 쿼리를 보내는 관리 애플리케이션 또는 스크립트입니다.
관리자는 WMI를 어떻게 사용하나요?
관리자는 모든 Windows 기반 응용 프로그램에서 WMI를 사용할 수 있습니다. 특히 엔터프라이즈 애플리케이션과 관리 스크립트에 효과적입니다. WMI의 일반적인 용도는 다음과 같습니다:
- 원격 컴퓨터 관리
- 애플리케이션 간 관리 정보 공유
- 일관된 방식으로 모든 소스의 관리 데이터에 액세스
- Windows 기반 시스템 및 네트워크 모니터링
- UEBA(사용자 개체 행동 분석) 시스템의 일부로 기업 네트워크 전반의 활동 모니터링
- 비정상적인 이벤트와 잠재적으로 의심스러운 행동을 모니터링하고 내부 위협을 확인합니다.
WMI 쿼리 실행
WMI 쿼리를 실행하는 가장 쉬운 방법은 표준 Windows 명령 프롬프트에서 WMIC를 실행하는 것입니다.
- 명령 프롬프트를 엽니다.
- WMIC를 입력하고 Enter 키를 눌러 프로그램을 호출합니다.
- WMIC 명령 프롬프트가 열리면 다양한 WMI 쿼리를 실행하고 필요한 정보를 출력으로 가져옵니다.
- 결과는 명령 프롬프트에 표시됩니다.
PowerShell은 WMI(Windows 관리 인터페이스)와 인터페이스하여 관리자가 WMI 데이터와 함께 PowerShell 스크립팅 언어를 사용할 수 있도록 할 수 있습니다. WMI 서비스 시작 및 중지
winmgmt.exe 서비스를 사용하면 WMI가 로컬 컴퓨터에서 실행될 수 있습니다. WMI는 시스템 시작 시 자동으로 시작되거나 첫 번째 관리/모니터링 응용 프로그램 또는 스크립트가 WMI 네임스페이스에 대한 연결을 찾을 때 자동으로 시작됩니다.
WMI 서비스를 시작하려면:
- 명령 프롬프트로 이동
- net start winmgmt[/
입력 ] - WMI 서비스에 따라 일부 서비스는 자동으로 시작되지 않습니다.
WMI 서비스를 중지하려면:
- 명령 프롬프트로 이동
- net stop winmgmt 입력
참고:WMI 서비스를 중지하면 모든 종속 서비스도 중지됩니다.
Windows 관리 인프라
현재 세대의 WMI는 Windows 관리 인프라(MI)로 알려져 있습니다. MI API에는 개발자가 기본 WMI 공급자 및 클라이언트를 만드는 데 필요한 인터페이스, 열거형, 구조 및 공용체가 포함되어 있습니다. Microsoft에 따르면 WMI는 이전 버전의 WMI와 완벽하게 호환됩니다. 즉, MI 프레임워크를 사용하여 작성된 최신 버전은 WMI 스크립트 및 응용 프로그램을 사용하여 액세스할 수 있습니다.