Tugas WMI: Pemantauan Performa

Gunakan kelas WMI yang mendapatkan data dari penghitung kinerja untuk mengakses dan menyegarkan data tentang performa komputer. Untuk contoh lain, lihat TechNet ScriptCenter di https://www.microsoft.com/technet. Untuk informasi selengkapnya, lihat Pustaka Performa dan WMI dan Memantau Data Performa.

Contoh skrip yang ditampilkan dalam topik ini hanya mendapatkan data dari komputer lokal. Untuk informasi selengkapnya tentang cara menggunakan skrip untuk mendapatkan data dari komputer jarak jauh, lihat Menyambungkan ke WMI di Komputer Jarak Jauh.

Prosedur berikut menjelaskan cara menjalankan skrip.

Untuk menjalankan skrip

  1. Salin kode dan simpan dalam file dengan ekstensi .vbs, seperti filename.vbs. Pastikan editor teks Anda tidak menambahkan ekstensi .txt ke file.
  2. Buka jendela prompt perintah dan navigasikan ke direktori tempat Anda menyimpan file.
  3. Ketik filename.vbscscript pada prompt perintah.
  4. Jika Anda tidak dapat mengakses log peristiwa, periksa untuk melihat apakah Anda menjalankan dari prompt perintah Yang ditingkatkan. Beberapa Log Peristiwa, seperti Log Peristiwa Keamanan, dapat dilindungi oleh Kontrol Akses Pengguna (UAC).

Catatan

Secara default, cscript menampilkan output skrip di jendela prompt perintah. Karena skrip WMI dapat menghasilkan output dalam jumlah besar, Anda mungkin ingin mengalihkan output ke file. Ketik filename.vbs > cscript outfile.txt pada prompt perintah untuk mengalihkan output skrip filename.vbs ke outfile.txt.

Tabel berikut ini mencantumkan contoh skrip yang bisa digunakan untuk mendapatkan berbagai jenis data dari komputer lokal.

Bagaimana Caranya... Kelas atau metode WMI
... mendapatkan data penghitung kinerja yang dapat saya lihat di utilitas Perfmon dalam skrip? Gunakan kelas yang memiliki nama yang dimulai dengan "Win32_PerfFormattedData", misalnya Win32_PerfFormattedData_PerfProc_Process. Properti dengan nama seperti PageFileBytes sesuai dengan penghitung kinerja yang Anda lihat di Perfmon. Kelas "Win32_PerfFormattedData" menghitung nilai akhir penghitung untuk Anda.
... mendapatkan data performa yang sedang berlangsung untuk satu proses, drive disk, dan data lainnya? Gunakan Win32_PerfFormattedData_PerfProc_Process atau Kelas Penghitung Kinerja berformat yang sesuai dan metode SWbemObjectEx.Refresh_ . Untuk informasi selengkapnya, lihat Pembuatan Skrip dengan SWbemObject.
Di C++, gunakan IWbemConfigureRefresher::AddObjectByPath dan IWbemRefresher::Refresh. Untuk informasi selengkapnya, lihat Memantau Data Performa.
Skrip berikut berjalan hingga komputer dimulai ulang, WMI dihentikan, atau skrip dihentikan. Untuk menghentikan skrip secara manual, gunakan Task Manager untuk menghentikan proses. Untuk menghentikannya secara terprogram, gunakan metode Hentikan di kelas Win32_Process .

VB
strComputer = "." Atur objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") set PerfProcess = objWMIService.Get(_ "Win32_PerfFormattedData_PerfProc_Process.Name='Idle'")

Sementara (True) PerfProcess.Refresh_
Wscript.Echo PerfProcess.PercentProcessorTime Wscript.Sleep 1000 Wend

... mendapatkan data performa yang sedang berlangsung untuk semua proses tanpa polling berulang?

Gunakan kelas yang memiliki nama yang dimulai dengan "Win32_PerfFormattedData" dan objek SWbemRefresher . Penyegaran menyimpan objek sehingga Anda tidak perlu mendapatkan koleksi berulang kali. Minimal dua nilai diperlukan untuk menghitung data performa karena sebagian besar penghitung adalah penghitung tarif. Pertama kali Anda menampilkan data penyegaran, data tersebut kosong.

Skrip berikut berjalan tanpa batas waktu sampai komputer di-boot ulang, WMI dihentikan, atau skrip dihentikan. Untuk menghentikan skrip secara manual, gunakan Task Manager untuk menghentikan proses. Untuk menghentikannya secara terprogram, gunakan metode Hentikan di kelas Win32_Process .

VB
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") set objRefresher = CreateObject("WbemScripting.Swbemrefresher") Atur objProcessor = objRefresher.AddEnum _ (objWMIService, _ "Win32_PerfFormattedData_PerfOS_Processor"). ObjectSet

While (True) objRefresher.Refresh For each RefreshItem in objRefresher For each objProcess in RefreshItem.ObjectSet Wscript.Echo objProcess.GetObjectText_ Next Next Wscript.Sleep 5000 Wend

... mendapatkan dan menghitung data performa untuk proses di Windows 2000?

Gunakan kelas "Win32_PerfRawData", seperti Win32_PerfRawData_PerfProc_Process. Dapatkan data properti, seperti PercentProcessorTime, dua kali untuk proses tertentu. Cari rumus yang ditentukan dalam kualifikasi CounterType untuk properti dan hitung. CounterType dalam contoh adalah PERF_100NSEC_TIMER_INV. Untuk informasi selengkapnya, lihat Memantau Data Performa.

Skrip berikut berjalan tanpa batas waktu sampai komputer di-boot ulang, WMI dihentikan, atau skrip dihentikan. Untuk menghentikan skrip secara manual, gunakan Task Manager untuk menghentikan proses. Untuk menghentikannya secara terprogram, gunakan metode Hentikan di kelas Win32_Process .

VB
strComputer = "." Atur objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2")

While (True) Set object1 = objWMIService.Get( _ "Win32_PerfRawData_PerfOS_Processor.Name='_Total'") N1 = object1.PercentProcessorTime D1 = object1.TimeStamp_Sys100NS Wscript.Sleep(1000) set object2 = objWMIService.Get( _ "Win32_PerfRawData_PerfOS_Processor.Name='_Total'") N2 = object2.PercentProcessorTime D2 = object2.TimeStamp_Sys100NS ' CounterType - PERF_100NSEC_TIMER_INV ' Formula - (1- ((N2 - N1) / (D2 - D1))) x 100 PercentProcessorTime = (1 - ((N2 - N1)/(D2-D1)))*100 Wscript.Echo "% Processor Time=" , PercentProcessorTime Wend

Tugas WMI untuk Skrip dan Aplikasi

Contoh Aplikasi WMI C++

TechNet ScriptCenter