Toegang tot prestatiegegevens in script
WMI-scripts hebben toegang tot de vooraf geïnstalleerde WMI-Prestatiemeteritems, op de lokale computer of op afstand. Hoewel scripts gegevens kunnen ophalen uit niet-berekende klassen, zoals Win32_PerfRawData_PerfOS_Memoryof opgemaakte klassen, Win32_PerfFormattedData_PerfOS_Memory, kunnen de opgemaakte gegevensklassen eenvoudiger worden gebruikt.
Voor het bewaken van prestatiegegevens met de prestatiemeteritemsklassen is het gebruik van een vernieuwingsfunctie vereist. Gebruik de SWbemRefresher object om een of meer prestatieobjecten op te slaan om te worden vernieuwd, of ververs een enkel object met de SWbemObjectEx.Refresh aanroep. Zie WMI-gegevens vernieuwen in scriptsvoor meer informatie.
Door de eigenschap SWbemRefresher.AutoReconnect in te stellen op TRUE-, wordt WMI automatisch opnieuw verbonden met een externe provider als de verbinding is verbroken, zodat u niet hoeft te controleren op de verbindingsstatus.
Zoals wordt weergegeven in het volgende voorbeeldscript voor scriptcode, moet u een eerste vernieuwingsaanroep uitvoeren om een beginwaarde op te halen voor het object dat u vernieuwt. Volgende vernieuwingsoproepen bevatten vervolgens gegevens.
Notitie
Wanneer een script toegang heeft tot WMI-prestatiemeteritemgegevens van een externe computer, kan het script alleen worden uitgevoerd onder het huidige aangemelde gebruikersaccount. WMI biedt geen ondersteuning voor een SWbemLocator.ConnectServer aanroep die verschillende gebruikersreferenties doorgeeft. Daarom moet het account dat de externe computer aanroept, al over de juiste bevoegdheden op die computer beschikken.
In het volgende voorbeeld van scriptcode ziet u hoe u een SWbemRefresher--object gebruikt om de gegevens in prestatiemeteritems bij te werken. Zie Toegang tot vooraf geïnstalleerde WMI-prestatieklassenvoor meer informatie over het gebruik van prestatiemeteritems in 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
Voorbeeld
In het volgende voorbeeld van scriptcode ziet u dat u een eerste vernieuwingsaanroep moet uitvoeren om een beginwaarde voor het vernieuwde object op te halen. Volgende vernieuwingsoproepen bevatten vervolgens gegevens.
In het volgende voorbeeld van scriptcode ziet u hoe u een SWbemRefresher--object gebruikt om de gegevens in prestatiemeteritems bij te werken. Zie Toegang tot vooraf geïnstalleerde WMI-prestatieklassenvoor meer informatie over het gebruik van prestatiemeteritems in 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
Verwante onderwerpen