Úlohy služby WMI: Monitorování výkonu
K přístupu k datům o výkonu počítače a jejich aktualizaci použijte třídy WMI, které získávají data z čítačů výkonu. Další příklady najdete na webu TechNet ScriptCenter na https://www.microsoft.com/technet. Další informace naleznete v tématu Knihovny výkonu a rozhraní WMI a Monitorování dat výkonu.
Příklady skriptů uvedené v tomto tématu získávají data pouze z místního počítače. Další informace o tom, jak pomocí skriptu získat data ze vzdálených počítačů, naleznete v tématu Připojení k rozhraní WMI na vzdáleném počítači.
Následující postup popisuje, jak spustit skript.
Spuštění skriptu
- Zkopírujte kód a uložte ho do souboru s příponou .vbs, například název_souboru.vbs. Ujistěte se, že textový editor nepřidá do souboru .txt příponu.
- Otevřete okno příkazového řádku a přejděte do adresáře, do kterého jste soubor uložili.
- Na příkazovém řádku zadejte cscript filename.vbs.
- Pokud nemáte přístup k protokolu událostí, zkontrolujte, jestli používáte příkazový řádek se zvýšenými oprávněními. Některé protokoly událostí, jako je protokol událostí zabezpečení, můžou být chráněné řízením uživatelských přístupů (UAC).
Poznámka
Ve výchozím nastavení cscript zobrazí výstup skriptu v okně příkazového řádku. Vzhledem k tomu, že skripty rozhraní WMI můžou vytvářet velké objemy výstupu, můžete chtít výstup přesměrovat na soubor. Na příkazovém řádku zadejte cscript filename.vbs > outfile.txt a přesměrujte výstup skriptu název_souboru.vbs do outfile.txt.
Následující tabulka uvádí příklady skriptů, které lze použít k získání různých typů dat z místního počítače.
Jak můžu... | Třídy nebo metody služby WMI | ||
---|---|---|---|
... získat ve skriptu data čítače výkonu, která vidím v nástroji Perfmon? | Použijte třídy, které mají názvy začínající "Win32_PerfFormattedData", například Win32_PerfFormattedData_PerfProc_Process. Vlastnosti s názvy jako PageFileBytes odpovídají čítačům výkonu, které vidíte v nástroji Perfmon. Třídy "Win32_PerfFormattedData" vypočítají konečné hodnoty čítačů za vás. |
||
... Získat průběžná data o výkonu pro jeden proces, diskovou jednotku a další data? | Použijte Win32_PerfFormattedData_PerfProc_Process nebo odpovídající naformátovanou třídu čítače výkonu a metodu SWbemObjectEx.Refresh_. Další informace naleznete v tématu Skriptování pomocí SWbemObject. V jazyce C++ použijte IWbemConfigureRefresher::AddObjectByPath a IWbemRefresher::Refresh. Další informace najdete v tématu Monitorování dat výkonu. Následující skript se spustí, dokud se počítač nerestartuje, služba WMI se zastaví nebo se skript zastaví. Pokud chcete skript zastavit ručně, ukončete proces pomocí Správce úloh. Pokud ji chcete programově zastavit, použijte metodu Terminate ve třídě Win32_Process.
|
||
... získat průběžná data o výkonu pro všechny procesy bez opakovaného dotazování? | Použijte třídy, které mají názvy začínající "Win32_PerfFormattedData" a objekt SWbemRefresher. Držitel obnovy uchovává objekty, takže kolekci nemusíte opakovaně získávat. K výpočtu dat o výkonu je potřeba minimálně dvě hodnoty, protože většina čítačů je čítačů rychlosti. Při prvním zobrazení obnovených dat jsou prázdná. Následující skript poběží po neomezenou dobu, dokud se počítač nerestartuje, služba WMI se zastaví nebo se skript zastaví. Pokud chcete skript zastavit ručně, ukončete proces pomocí Správce úloh. Pokud ji chcete programově zastavit, použijte metodu Terminate ve třídě Win32_Process.
|
||
... získat a vypočítat údaje o výkonu pro procesy ve Windows 2000? | Použijte třídy "Win32_PerfRawData", například Win32_PerfRawData_PerfProc_Process. Získejte data vlastností, například PercentProcessorTime, dvakrát pro konkrétní proces. Vyhledejte vzorec zadaný v CounterType kvalifikátoru pro vlastnost a vypočtěte. CounterType v daném příkladu je PERF_100NSEC_TIMER_INV. Další informace najdete v tématu Monitorování dat výkonu. Následující skript poběží po neomezenou dobu, dokud se počítač nerestartuje, služba WMI se zastaví nebo se skript zastaví. Pokud chcete skript zastavit ručně, ukončete proces pomocí Správce úloh. Pokud ji chcete programově zastavit, použijte metodu Terminate ve třídě Win32_Process.
|