WMI 스크립팅 형식 라이브러리 사용

WMI 스크립팅 형식 라이브러리를 사용하여 Microsoft Visual Studio 및 Windows 스크립트 호스트 WSF 파일에서 WMI 스크립팅 API 메서드를 호출할 수 있습니다.

Microsoft Visual Studio에서 WMI 스크립팅 형식 라이브러리 사용

참고

Visual InterDev 6.0 기능은 Microsoft Visual Studio .NET에 통합되었습니다.

 

다음 절차에서는 IDE(통합 개발 환경)가 WbemScripting 형식 라이브러리를 인식할 수 있도록 하는 방법을 설명합니다.

WMI 스크립팅 형식 라이브러리를 프로젝트 참조에 추가하는 방법

  1. 프로젝트 메뉴에서 참조 추가를 선택합니다.

  2. 참조 추가 상자의 COM 탭에서 Microsoft WMI 스크립팅 V1.2 라이브러리를 선택합니다.

  3. 참조 목록에 적합한 옵션이 표시되지 않으면 참조 상자에서 찾아보기를 사용하여 추가합니다. 찾아보기를 사용하면 WbemScripting 형식 라이브러리를 찾을 수 있는 참조 추가 상자가 열립니다.

    WbemScripting 형식 라이브러리는 %windir%\System32\Wbem 디렉터리의 Wbemdisp.tlb 파일에 있습니다.

  4. 파일을 선택하고 열기를 클릭합니다. Microsoft WMI 스크립팅 V1.2 라이브러리가 참조 목록에 표시됩니다. 목록에서 이 항목 옆에 있는 상자를 선택해야 합니다.

Windows 스크립트 호스트 2.0에서 WMI 스크립팅 형식 라이브러리 사용

Visual Basic, Scripting Edition 또는 기타 스크립팅 언어로 작성된 스크립트와 달리 WbemScripting.SWbemLocator에 대한 참조를 Windows 스크립트 호스트 WSF 파일에 포함할 수 있습니다. 이렇게 하면 값 대신 상수 이름을 사용할 수 있습니다. 예를 들어 인증을 설정할 때 값 6이 아닌 WbemAuthenticationLevelPktPrivacy를 사용합니다.

스크립트는 다음 방법을 사용하여 WMI 형식 라이브러리용 스크립팅 API와 연결할 수 있습니다.

  • VBScript 메서드 CreateObjectGetObject에서 WbemScripting GUID를 지정합니다.

    그러면 WMI 개체 집합에 연결하도록 Windows 스크립트 호스트에 알립니다.

    다음 VBScript 코드 예제는 새로운 SWbemDateTime 개체를 만듭니다.

    Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
    
  • 새 개체 또는 기존 개체를 가져올 때 모니커 문자열 "winmgmts:"를 사용합니다.

    다음 VBScript 코드 예제에서는 "winmgmts:" 모니커를 사용하여 Handle 속성이 0인 Win32_Process 인스턴스를 가져옵니다. Handle은 이 클래스의 키 속성입니다.

    Set Process = GetObject("winmgmts:Win32_Process.Handle=0")
    
  • WSH 2.0 XML 파일 형식의 <참조> 태그를 사용하여 WMI 형식 라이브러리를 참조합니다. <참조> 태그를사용하는 경우 태그에는 값이 WMI 형식 라이브러리의 GUIDuuid 특성이나 만들 수 있는 WMI 스크립팅 개체의 PROGID 값인 개체 특성(권장)이 있어야 합니다.

    다음 VBScript 코드 예제에서는 "WbemScripting" 의 PROGID를 사용합니다. 스크립트를 실행하려면 .wsf 확장자를 사용하여 파일에 텍스트를 저장합니다.

    <?xml version="1.0" encoding="US-ASCII"?>
    <job>
    <reference object="WbemScripting.SWbemLocator"/>
    <script language="VBScript">
        set service = GetObject("winmgmts:")
        ' Following line uses a symbolic 
        ' constant from the WMI type library
        service.Security_.impersonationLevel = _
            wbemImpersonationLevelDelegate
    </script>
    </job>
    
  • <개체> 태그를 사용하여 WMI 스크립팅 개체를 만듭니다. 이름 값이 만들려는 WMI 스크립팅 개체를 참조하는 id 특성과 WMI 스크립팅 개체의 PROID와 동일한 progid 특성을 지정할 수 있습니다.

    다음 WSH 스크립트는 호스트 이름과 로컬 컴퓨터의 프로세서 수를 표시합니다. 스크립트를 실행하려면 .wsf 확장자를 사용하여 파일에 텍스트를 저장합니다.

    <?xml version="1.0" encoding="US-ASCII"?>
    <job>
     <object id="objSWbemLocator" progid="WbemScripting.SWbemLocator"/>
     <script language="VBScript">
    
      strComputer = "."
      Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
      Set colSettings = objSWbemServices.ExecQuery("Select * From Win32_ComputerSystem")
      For Each objComputer in colSettings
       Wscript.Echo "System Name: " & objComputer.Name
       Wscript.Echo "Number of Processors: " & objComputer.NumberOfProcessors
      Next
    
     </script>
    </job>
    

WMI에서의 스크립팅

WMI용 스크립팅 API