about_WMI_Cmdlets

업데이트 날짜: 2012년 8월

적용 대상: Windows PowerShell 2.0, Windows PowerShell 3.0

여기에 소개를 삽입합니다.

항목

about_WMI_cmdlets

간단한 설명

WMI(Windows Management Instrumentation) 및 Windows PowerShell®에 대한 배경 정보를 제공합니다.

자세한 설명

이 항목에서는 WMI 기술, Windows PowerShell에 대한 WMI cmdlet, WMI 기반 원격, WMI 가속기, WMI 문제 해결에 관한 정보를 제공합니다. 이 항목에서는 WMI에 대한 추가 정보 링크를 제공합니다.

WMI 정보

WMI(Windows Management Instrumentation)는 엔터프라이즈 환경에서 관리 정보를 액세스하기 위해 표준 기술을 개발하기 위한 산업 이니셔티브인 Microsoft에서 구현한 WBEM(Web-Based Enterprise Management)입니다. 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                 Description
      ------------------     ----------------------------------------------
      Get-WmiObject          Gets instances of WMI classes or information 
                             about the available classes.

      Invoke-WmiMethod       Calls WMI methods.

      Register-WmiEvent      Subscribes to a WMI event.

      Remove-WmiObject       Deletes WMI classes and instances.

      Set-WmiInstance        Creates or modifies instances of WMI classes.

샘플 명령

다음 명령은 로컬 컴퓨터의 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() on을 실행할 수 있는 검색 프로그램을 만들 수 있습니다.

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

      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를 사용하여 연결할 수 없습니다. 다음 오류 메시지가 나타날 수 있습니다.

          "Remote server machine does not exist or is unavailable"

이 오류 메시지가 나타나면 컴퓨터가 온라인 상태인지 확인합니다. 원격 컴퓨터에 ping을 시도해봅니다.

문제 2:

원격 컴퓨터의 로컬 관리자 권한을 가지고 있지 않습니다.

WMI를 원격으로 사용하려면 원격 컴퓨터의 로컬 관리자 권한을 가지고 있어야 합니다. 권한이 없는 경우 해당 컴퓨터에 액세스가 거부됩니다.

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

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

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

c. WMI 컨트롤 속성 대화 상자에서 보안 탭을 클릭합니다.

문제 3:

방화벽이 원격 컴퓨터에 액세스를 차단하고 있습니다.

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

          "Remote server machine does not exist or is unavailable"

WMI에 대한 자세한 내용

WMI에 대한 자세한 내용은 MSDN(Microsoft Developer Network) Library에서 다음 항목을 참조하세요.

"About WMI:

https://go.microsoft.com/fwlink/?LinkId=142212(영문)

"WMI Troubleshooting"

https://go.microsoft.com/fwlink/?LinkId=142213(영문)

그리고 Microsoft TechNet 스크립트 센터의 "WMI(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