다음을 통해 공유


스크립트에서 성능 데이터 액세스

WMI 스크립트는 로컬 컴퓨터에서 또는 원격으로 미리 설치된 WMI 성능 카운터 클래스에 액세스할 수 있습니다. 스크립트는 Win32_PerfRawData_PerfOS_Memory와 같은 계산되지 않은 클래스나 형식이 지정된 클래스인 Win32_PerfFormattedData_PerfOS_Memory에서 데이터를 가져올 수 있지만 형식이 지정된 데이터 클래스는 사용하기가 더 쉽습니다.

성능 카운터 클래스로 성능 데이터를 모니터링하려면 리프레셔를 사용해야 합니다. SWbemRefresher 개체를 사용하여 새로 고침을 위한 하나 이상의 성능 개체를 저장하거나 SWbemObjectEx.Refresh 호출로 단일 개체를 새로 고칩니다. 자세한 내용은 스크립트에서 WMI 데이터 새로고침을 참조하세요.

SWbemRefresher.AutoReconnect 속성을 TRUE로 설정하면 WMI는 연결이 끊어진 경우 자동으로 원격 공급자에 다시 연결하므로 연결 상태를 확인할 필요가 없습니다.

다음 스크립트 코드 예제 스크립트에 표시된 것처럼 새로 고치는 개체의 시작 값을 가져오려면 초기 새로 고침 호출을 만들어야 합니다. 후속 새로 고침 호출에는 데이터가 포함됩니다.

참고

스크립트가 원격 컴퓨터에서 WMI 성능 카운터 데이터에 액세스하는 경우 스크립트는 현재 로그온한 사용자 계정에서만 실행할 수 있습니다. WMI는 다른 사용자 자격 증명을 전달하는 SWbemLocator.ConnectServer 호출을 지원하지 않습니다. 따라서 원격 컴퓨터를 호출하는 계정에는 이미 해당 컴퓨터에 대한 적절한 권한이 있어야 합니다.

 

다음 스크립트 코드 예제는 SWbemRefresher 개체를 사용하여 성능 카운터 개체의 데이터를 업데이트하는 방법을 보여줍니다. WMI에서 성능 카운터 사용에 대한 자세한 내용은 WMI 사전 설치된 성능 클래스에 액세스를 참조하세요.

' Get raw and cooked data performance counter instances for the
" wscript process running this script

set RawProc = GetObject("winmgmts:Win32_PerfRawdata_Perfproc_process.name='wscript'")
set CookedProc = GetObject("winmgmts:Win32_Perfformatteddata_Perfproc_process.name='wscript'")

' Display the same property in raw and cooked form in a loop
for I = 1 to 6
    Wscript.Echo "wscript process raw PageFaultsPerSec = & RawProc.PageFaultsPerSec _
                 & " cooked PageFaultsPerSec= " & CookedProc.PageFaultsPerSec 

' Wait 2 seconds
    Wscript.Sleep 2000
    
    ' Refresh the object
    RawProc.Refresh_
    CookedProc.Refresh_
next

다음 스크립트 코드 예제는 새로 고친 개체의 시작 값을 가져오기 위해 초기 새로 고침 호출을 수행해야 함을 보여줍니다. 후속 새로 고침 호출에는 데이터가 포함됩니다.

다음 스크립트 코드 예제는 SWbemRefresher 개체를 사용하여 성능 카운터 개체의 데이터를 업데이트하는 방법을 보여줍니다. WMI에서 성능 카운터 사용에 대한 자세한 내용은 WMI 사전 설치된 성능 클래스에 액세스를 참조하세요.

' Get raw and cooked data performance counter instances for the
" wscript process running this script

set RawProc = GetObject("winmgmts:" _
                        & "Win32_PerfRawdata_Perfproc_process." _
                        & "name='wscript'")
set CookedProc = GetObject("winmgmts:" _ 
                & "Win32_Perfformatteddata_Perfproc_process." _
                & "name='wscript'")

' Display the same property in raw and cooked form in a loop
for I = 1 to 6
    Wscript.Echo "wscript process raw PageFaultsPerSec = " _
                 & RawProc.PageFaultsPerSec _
                 & " cooked PageFaultsPerSec= " _
                 & CookedProc.PageFaultsPerSec 

' Wait 2 seconds
    Wscript.Sleep 2000
    
    ' Refresh the object
    RawProc.Refresh_
    CookedProc.Refresh_
next

성능 카운터 클래스

WMI 작업: 성능 모니터링

성능 데이터 모니터링