반응형
이전 포스팅에서 wmf 를 설치하면 여러가지가 구성이 되는데 이중 wmi 와 dsc에 대해 잘 몰라서 찾아 보았습니다.
🧠 1. WMI (Windows Management Instrumentation)
🔹 개요
WMI는 Windows 운영체제의 시스템 정보를 쿼리하거나 제어할 수 있는 표준 인터페이스입니다. 하드웨어, 서비스, 운영체제 구성, 사용자 정보 등 다양한 정보를 제공하며, PowerShell, VBScript, C# 등 여러 언어에서 사용 가능합니다.
🔹 주요 특징
항목 | 설명 |
표준 인터페이스 | CIM(Common Information Model)을 기반으로 한 관리 인터페이스 |
쿼리 언어 | WQL(WMI Query Language) 사용 – SQL과 유사한 문법 |
원격 관리 지원 | 원격 시스템의 정보도 쿼리 가능 (-ComputerName 옵션 등) |
대상 | 서비스, 디스크, 사용자, 네트워크, 프로세스, 이벤트 로그 등 |
🔹 PowerShell 예시
# 현재 시스템의 운영체제 정보 조회
Get-WmiObject -Class Win32_OperatingSystem
# 원격 시스템의 CPU 정보
Get-WmiObject -Class Win32_Processor -ComputerName "server01"
🔹 언제 쓰나?
- 자산 관리 (CPU, RAM, 디스크 정보 수집)
- 서비스 상태 점검 및 제어
- 사용자/그룹/네트워크 구성 파악
- 이벤트 로그 분석 등
🧠 2. DSC (Desired State Configuration)
🔹 개요
DSC는 PowerShell을 기반으로 하는 구성 관리(Configuration Management) 도구입니다. 시스템이 어떤 상태(설정, 서비스, 파일 등)를 유지해야 하는지 정의하고, 그 상태를 자동으로 유지/복구하도록 만듭니다.
🔹 핵심 개념
요소 | 설명 |
Configuration | 원하는 상태를 기술한 PowerShell 스크립트 |
Resource | 설정할 대상 (예: WindowsFeature, File, Service 등) |
Local Configuration Manager (LCM) | 시스템에서 DSC를 적용·모니터링하는 에이전트 |
🔹 기본 흐름
- DSC Configuration 스크립트 작성
- .mof 파일로 컴파일
- 해당 구성을 대상 시스템에 적용
- 시스템은 지정된 상태를 계속 유지 (자동 복구 포함)
🔹 간단한 예제
Configuration EnableTelnet {
Node "localhost" {
WindowsFeature TelnetClient {
Name = "Telnet-Client"
Ensure = "Present"
}
}
}
EnableTelnet
Start-DscConfiguration -Path ./EnableTelnet -Wait -Verbose
📌 위 스크립트는 "Telnet Client" 기능이 설치된 상태를 항상 유지하도록 설정합니다.
⚖️ WMI vs DSC 비교 요약
항목WMIDSC
역할 | 시스템 정보 조회 및 제어 | 시스템 상태를 정의하고 유지 |
기술 방식 | 쿼리 기반 (WQL, .NET) | 선언적 구성 방식 |
주 사용 목적 | 상태 확인, 모니터링, 간단한 제어 | 구성 자동화, 상태 유지, 정책 적용 |
실행 형태 | 명령 기반 | 스크립트+모니터 기반 |
자동 복구 | ❌ 없음 | ✅ 상태가 벗어나면 자동 복구 가능 |
🧩 정리하면:
- WMI: Windows 시스템의 "현재 상태"를 조회하고 제어하는 API 인터페이스입니다.
- DSC: Windows 시스템이 "이런 상태여야 한다"는 정책을 설정하고 유지하는 자동화 도구입니다.
둘 다 PowerShell과 긴밀히 통합되어 있으며, 시스템 관리 자동화에 핵심 역할을 합니다.
반응형
'DevOps > Powershell' 카테고리의 다른 글
WMF(Windows Management Framework) 란? (0) | 2025.06.05 |
---|
댓글