我想过滤我的输出。如果我得到以下脚本的结果。我怎样才能得到specifix过程? -这是我的建议,但确实有效:
Function Get-CPUProcess
{
$properties=@(
@{Name="Name"; Expression = {$_.name}},
@{Name="PID"; Expression = {$_.IDProcess}},
@{Name="CPU (%)"; Expression = {$_.PercentProcessorTime}},
@{Name="Memory (MB)"; Expression = {[Math]::Round(($_.workingSetPrivate / 1mb),2)}}
@{Name="Disk (MB)"; Expression = {[Math]::Round(($_.IODataOperationsPersec / 1mb),2)}}
@{Name="Path";Expression = {(Get-Process -Id $_.IDProcess).Path}}
)
$ProcessCPU = Get-WmiObject -class Win32_PerfFormattedData_PerfProc_Process |
Select-Object $properties |
Sort-Object "CPU (%)" -desc |
Select-Object -First 5 |
Format-Table -AutoSize
$ProcessCPU
}
Get-CPUProcess -Filter {processname -like "firefox*"} | select * | Out-File C:\filename.txt
答案 0 :(得分:1)
天真的方法看起来像:
$properties=@(
@{Name="Name"; Expression = {$_.name}},
@{Name="PID"; Expression = {$_.IDProcess}},
@{Name="CPU (%)"; Expression = {$_.PercentProcessorTime}},
@{Name="Memory (MB)"; Expression = {[Math]::Round(($_.workingSetPrivate / 1mb),2)}}
@{Name="Disk (MB)"; Expression = {[Math]::Round(($_.IODataOperationsPersec / 1mb),2)}}
@{Name="Path";Expression = {(Get-Process -Id $_.IDProcess).Path}}
)
$ProcessCPU = Get-WmiObject -class Win32_PerfFormattedData_PerfProc_Process |
Select-Object $properties |
Sort-Object "CPU (%)" -desc |
Select-Object -First 5 |
Format-Table -AutoSize
$ProcessCPU
如果性能至关重要,请在选择前5个项目后加入Get-Process:
$properties=@(
@{Name="Name"; Expression = {$_.name}},
@{Name="PID"; Expression = {$_.IDProcess}},
@{Name="CPU (%)"; Expression = {$_.PercentProcessorTime}},
@{Name="Memory (MB)"; Expression = {[Math]::Round(($_.workingSetPrivate / 1mb),2)}}
@{Name="Disk (MB)"; Expression = {[Math]::Round(($_.IODataOperationsPersec / 1mb),2)}}
)
$ProcessCPU = Get-WmiObject -class Win32_PerfFormattedData_PerfProc_Process |
Select-Object $properties |
Sort-Object "CPU (%)" -desc |
Select-Object -First 5
$ProcessCPU | select *,@{Name="Path";Expression = {(Get-Process -Id $_.PID).Path}} | Format-Table