2013-07-25 67 views
4

我需要在特定进程运行时获取系统的页面错误和磁盘IO。获取磁盘IO性能计数器

我可以得到页面错误,但没能获得磁盘IO:

$arrayDIO = @() 
$arrayPf = @() 
$cmdProcess = start-process cmd -passthru 
    while (-not $cmdProcess.HasExited) { 
     $arrayDIO += %{ (Get-WmiObject Win32_PerfFormattedData_PerfProc_Process).IOWriteOperationsPerSec } 
     $arrayPf += %{ (Get-WmiObject Win32_PerfFormattedData_PerfOS_memory).PageFaultsPerSec } 
    sleep 2 
    } 
$arrayPf | Measure-Object -Average -Maximum -Minimum | Out-File -Filepath C:\Details.txt 
$arrayDIO | Measure-Object -Average -Maximum -Minimum | Out-File -Filepath C:\Details.txt -append 

回答

8

不是GET-WmiObject可以,使用内置的命令用于获取性能数据,获取柜台

Get-Counter '\Process(*)\IO Data Operations/sec'

Get-Counter '\Memory\Page Faults/sec'