Câu trả lời:
Vì PowerShell có thể tạo Đối tượng .NET Framework , tôi muốn giới thiệu lớp PerformanceCorer cho tác vụ này.
Lớp này có thể gây rắc rối khi làm việc, nhưng cung cấp hầu hết các chức năng bạn cần.
Đối với Danh sách các danh mục bạn có thể nhận được chỉ cần gọi GetCategories()
phương thức tĩnh :
[System.Diagnostics.PerformanceCounterCategory]::GetCategories()
Để giúp bạn bắt đầu, tôi đã viết một minh chứng nhỏ:
$pc_prc = new-object System.Diagnostics.PerformanceCounter("Processor", "% Processor Time", "_Total")
$pc_ram = new-object System.Diagnostics.PerformanceCounter("Memory", "Available MBytes")
while(1) {
$time = get-date
echo ======================
echo $time
echo ======================
$pc_prc_value = $pc_prc.NextValue()
$pc_ram_value = $pc_ram.NextValue()
echo " + Processor Load: $pc_prc_value %"
echo " + Available Memory: $pc_ram_value MB"
sleep 1
}
Lưu ý rằng PerformanceCounter
lớp không hỗ trợ dữ liệu nhiệt độ CPU truy xuất vì quy trình đó phụ thuộc nhiều vào kiến trúc.
Kiểm tra Câu hỏi SO này để biết thêm thông tin.