항목
    about_WMI_cmdlets
    
간단한 설명
    WMI(Windows Management Instrumentation) 및 Windows PowerShell에 대한 배경 
    정보를 제공합니다.
           
자세한 설명
    이 항목에서는 WMI 기술, Windows PowerShell용 WMI cmdlet, WMI 기반 원격, 
    WMI 액셀러레이터 및 WMI 문제 해결에 대해 설명합니다. 또한 WMI에 대한 자세한 
    내용을 볼 수 있는 링크도 제공합니다.

                 
  WMI 정보 

      WMI(Windows Management Instrumentation)는 엔터프라이즈 환경에서 관리
      정보에 액세스하기 위한 표준 기술을 개발하는 업계 이니셔티브인 WBEM(Web-Based
      Enterprise Management)의 Microsoft 구현입니다. WMI는 CIM(Common Information
      Model) 산업 표준을 사용하여 시스템, 응용 프로그램, 네트워크, 장치 및 기타
      관리되는 구성 요소를 나타냅니다. CIM은 DMTF(Distributed Management Task Force)에서
      개발하고 유지 관리합니다. WMI를 사용하여 로컬 컴퓨터와 원격 컴퓨터를 모두 관리할
      수 있습니다. 예를 들어 WMI를 사용하여 다음을 수행할 수 있습니다.

          -- 원격 컴퓨터에서 프로세스를 시작합니다.

          -- 컴퓨터를 원격으로 다시 시작합니다.

          -- 로컬 컴퓨터나 원격 컴퓨터에 설치된 응용 프로그램의 목록을 가져옵니다.

          -- 로컬 컴퓨터나 원격 컴퓨터의 Windows 이벤트 로그를 쿼리합니다.

 
  Windows PowerShell용 WMI Cmdlet

      Windows PowerShell은 기본적으로 Windows PowerShell에서 사용할 수 있는 cmdlet
      집합을 통해 WMI 기능을 구현합니다. 이러한 cmdlet을 사용하여 로컬 컴퓨터와
      원격 컴퓨터를 관리하는 데 필요한 종단 간 작업을 완료할 수 있습니다.
 
      다음과 같은 WMI cmdlet이 포함되어 있습니다.

      Cmdlet                 설명
      ------------------     ----------------------------------------------
      
      Get-WmiObject          WMI 클래스의 인스턴스 또는 사용 가능한 클래스에 
                             대한 정보를 가져옵니다.

      Invoke-WmiMethod       WMI 메서드를 호출합니다.

      Register-WmiEvent      WMI 이벤트에 가입합니다.

      Remove-WmiObject       WMI 클래스 및 인스턴스를 삭제합니다.

      Set-WmiInstance        WMI 클래스의 인스턴스를 만들거나 수정합니다.

    
  샘플 명령

      다음 명령은 로컬 컴퓨터에 대한 BIOS 정보를 표시합니다.
         
          C:\PS> get-wmiobject win32_bios | format-list *

        
      다음 명령은 세 원격 컴퓨터의 WinRM 서비스에 대한 정보를 표시합니다.
        
          C:\PS> get-wmiobject -query "select * from win32_service where name='WinRM'" -computername server01, server01, server03
                 

      다음의 더 복잡한 명령은 프로그램의 모든 인스턴스를 종료합니다.
         
          C:\PS> notepad.exe
          C:\PS> $np = get-wmiobject -query "select * from win32_process where name='notepad.exe'" 
          C:\PS> $np | remove-wmiobject


  WMI 기반 원격 

      WMI를 통해 로컬 시스템을 관리하는 기능이 유용하긴 하지만 WMI를 강력한 관리 
      도구라고 할 수 있는 것은 원격 기능 때문입니다. WMI는 Microsoft의 DCOM(Distributed
      Component Object Model)을 사용하여 시스템에 연결하고 시스템을 관리합니다.
      DCOM 연결을 허용하기 위해 일부 시스템을 구성해야 할 수 있습니다.
      방화벽 설정과 잠긴 DCOM 사용 권한은 WMI의 시스템 원격 관리 기능을 차단할
      수 있습니다. 
   

  WMI 유형 액셀러레이터

      Windows PowerShell에는 WMI 유형 액셀러레이터가 포함되어 있습니다. 이러한 
      WMI 유형 액셀러레이터(바로 가기)를 사용하면 유형 액셀러레이터 이외의 방법이
      허용하는 것보다 직접적으로 WMI 개체에 액세스할 수 있습니다. 

      다음과 같은 유형 액셀러레이터가 WMI에서 지원됩니다.

          [WMISEARCHER] - WMI 개체를 검색하기 위한 바로 가기입니다.

          [WMICLASS] - 클래스의 정적 속성 및 메서드에 액세스하기 위한 바로 가기입
                       니다.

          [WMI] - 클래스의 단일 인스턴스를 가져오기 위한 바로 가기입니다.

      [WMISEARCHER]는 ManagementObjectSearcher의 유형 액셀러레이터입니다. 이 유형
      액셀러레이터는 문자열 생성자를 사용하여 검색기를 만들 수 있으며 사용자는
      이 검색기에서 GET()을 수행할 수 있습니다.

      예를 들면 다음과 같습니다.
    
      PS> $s = [WmiSearcher]'Select * from Win32_Process where Handlecount > 1000'
      PS> $s.Get() |sort handlecount |ft handlecount,__path,name -auto

      handlecount  __PATH                                              name
      -----------  ------                                              ----
      1105         \\SERVER01\root\cimv2:Win32_Process.Handle="3724"   powershell...
      1132         \\SERVER01\root\cimv2:Win32_Process.Handle="1388"   winlogon.exe
      1495         \\SERVER01\root\cimv2:Win32_Process.Handle="2852"   iexplore.exe
      1699         \\SERVER01\root\cimv2:Win32_Process.Handle="1204"   OUTLOOK.EXE
      1719         \\SERVER01\root\cimv2:Win32_Process.Handle="1912"   iexplore.exe
      2579         \\SERVER01\root\cimv2:Win32_Process.Handle="1768"   svchost.exe


      [WMICLASS]는 ManagementClass의 유형 액셀러레이터입니다. 이 유형 액셀러레이
      터에는 WMI 클래스의 로컬 또는 절대 WMI 경로를 사용하고 이 클래스에 바인
      딩된 개체를 반환하는 문자열 생성자가 있습니다. 

      예를 들면 다음과 같습니다.

      PS> $c = [WMICLASS]"root\cimv2:WIn32_Process"
      PS> $c |fl *
      Name             : Win32_Process
      __GENUS          : 1
      __CLASS          : Win32_Process
      __SUPERCLASS     : CIM_Process
      __DYNASTY        : CIM_ManagedSystemElement
      __RELPATH        : Win32_Process
      __PROPERTY_COUNT : 45
      __DERIVATION     : {CIM_Process, CIM_LogicalElement, CIM_ManagedSystemElement}
      __SERVER         : SERVER01
      __NAMESPACE      : ROOT\cimv2
      __PATH           : \\SERVER01\ROOT\cimv2:Win32_Process

      [WMI]는 ManagementObject의 유형 액셀러레이터입니다. 이 유형 액셀러레이터에는
      WMI 인스턴스의 로컬 또는 절대 WMI 경로를 사용하고 이 인스턴스에 바인딩된
      개체를 반환하는 문자열 생성자가 있습니다. 

      예를 들면 다음과 같습니다.

      PS> $p = [WMI]'\\SERVER01\root\cimv2:Win32_Process.Handle="1204"'
      PS> $p.Name
      OUTLOOK.EXE
 

  WMI 문제 해결 

      다음 문제는 원격 컴퓨터에 연결하려고 할 때 발생할 수 있는 가장 일반적인 
      문제입니다.      

    문제 1: 원격 컴퓨터가 온라인 상태가 아닙니다. 

      컴퓨터가 오프라인 상태인 경우 WMI를 사용하여 컴퓨터에 연결하지 못할 수 있습니다.
      다음과 같은 오류 메시지가 나타날 수 있습니다.

          "원격 서버 컴퓨터가 없거나 사용할 수 없습니다."


      이 오류 메시지가 나타나는 경우 컴퓨터가 온라인 상태인지 확인합니다.
      원격 컴퓨터에 Ping을 수행합니다.
 
 
    문제 2: 원격 컴퓨터에서 로컬 관리자 권한이 없습니다.
 
      원격으로 WMI를 사용하려면 원격 컴퓨터에서 로컬 관리자 권한이 있어야 합니다. 
      로컬 관리자 권한이 없으면 원격 컴퓨터에 대한 액세스가 거부됩니다.

      네임스페이스 보안을 확인하려면:

          a. 시작을 클릭하고 내 컴퓨터를 마우스 오른쪽 단추로 클릭한 다음 관리를 클릭
             합니다.

          b. 컴퓨터 관리에서 서비스 및 응용 프로그램을 확장하고 WMI 컨트롤을 마우스
             오른쪽 단추로 클릭한 다음 속성을 클릭합니다.

          c. WMI 컨트롤 속성 대화 상자에서 보안 탭을 클릭합니다.
     
 
    문제 3: 방화벽이 원격 컴퓨터에 대한 액세스를 차단합니다. 

      WMI는 DCOM(Distributed COM) 및 RPC(원격 프로시저 호출) 프로토콜을 사용하여
      네트워크를 통과합니다. 기본적으로 많은 방화벽이 DCOM 및 RPC 트래픽을 차단합니다.
      방화벽이 이러한 프로토콜을 차단하는 경우 연결이 실패합니다. 예를들어 Microsoft
      Windows XP 서비스 팩 2의 Windows 방화벽은 DCOM 및 WMI를 비롯한 모든 원하지
      않는 네트워크 트래픽을 자동으로 차단하도록 구성 되어 있습니다. 기본 구성에서
      Windows 방화벽은 들어오는 WMI 요청을 거부하고 다음과 같은 오류 메시지가 
      나타납니다.

          "원격 서버 컴퓨터가 없거나 사용할 수 없습니다." 
       

  WMI에 대한 자세한 내용

      WMI에 대한 자세한 내용은 MSDN(Microsoft Developer Network) 라이브러리의
      다음 항목을 참조하십시오.

          "About WMI(WMI 정보)"
          https://go.microsoft.com/fwlink/?LinkId=142212

          "WMI Troubleshooting(WMI 문제 해결)"
          https://go.microsoft.com/fwlink/?LinkId=142213

      Microsoft TechNet 스크립트 센터의 "Secrets of Windows Management
      Instrumentation - Troubleshooting and Tips(Windows Management
      Instrumentation - 문제 해결 및 정보)"를 참조하십시오.

          https://go.microsoft.com/fwlink/?LinkId=142214
 

참고 항목
    온라인 버전: https://go.microsoft.com/fwlink/?LinkId=142219
    Get-WmiObject
    Invoke-WmiMethod
    Register-WmiEvent
    Remove-WmiObject
    Set-WmiInstance

 




목차