簡體   English   中英

使用 powershell 獲取特定進程的 CPU %

[英]Get CPU % of a particular process using powershell

我想使用 powershell 命令獲取特定進程的 CPU 使用率百分比(不是處理器時間)。

示例:(Windows 8 任務管理器) 在此處輸入圖片說明

我想通過命令獲得2.9%

這是支持案例的正確答案,然后您有多個具有相同名稱的進程https://stackoverflow.com/a/34844682/483997

# To get the PID of the process (this will give you the first occurrance if multiple matches)
$proc_pid = (get-process "slack").Id[0]

# To match the CPU usage to for example Process Explorer you need to divide by the number of cores
$cpu_cores = (Get-WMIObject Win32_ComputerSystem).NumberOfLogicalProcessors

# This is to find the exact counter path, as you might have multiple processes with the same name
$proc_path = ((Get-Counter "\Process(*)\ID Process").CounterSamples | ? {$_.RawValue -eq $proc_pid}).Path

# We now get the CPU percentage
$prod_percentage_cpu = [Math]::Round(((Get-Counter ($proc_path -replace "\\id process$","\% Processor Time")).CounterSamples.CookedValue) / $cpu_cores)
Get-Process -Name PowerShell | Select CPU

這是你要找的嗎? 或者更多基於監控的東西?

param
(
   [String]
   [Parameter(Mandatory)]
   $Title
)

do
{
   $process = Get-Process -Name $Title
   $process
   Start-Sleep -Seconds 1
} while ($process)

Get-Process -Name system | 選擇 CPU

獲取 2 個實例的 CPU 時間為 (cpu2-cpu1)/(t2-t1)*100。 您將獲得以 % 為單位的 CPU 值。

Get-Process -Name system | select CPU # Get the cpu time at 2 instance as (cpu2-cpu1)/(t2-t1)*100. You will get CPU value in %.

$processName = 'OUTLOOK'
$sleep_time = 1 # value in seconds
while (1) {
  $CPU_t1 = Get-Process -Name $processName | Select CPU
  $CPU_t1_sec = $($CPU_t1.CPU)
  #Write-Host "CPU_t1: $($CPU_t1.CPU)"
  $date1 = (Get-Date)
  sleep -Seconds $sleep_time
  $CPU_t2=Get-Process -Name $processName | Select CPU
  #Write-Host "CPU_t2: $($CPU_t2.CPU)"
  $CPU_t2_sec = $($CPU_t2.CPU)
  $date2 = (Get-Date)
  $date_diff = $date2 - $date1
  $diff_time = $date_diff.seconds
  #Write-Host "TimeDiff: $diff_time"
  #compute them to get the percentage
  $CPU_Utilization = ($CPU_t2_sec - $CPU_t1_sec)/$diff_time 
  $CPU_Utilization_per = $CPU_Utilization * 100
  #Sleep $sleep_time
  Clear-Host Write-Host "CPU_Utilization_Per: $CPU_Utilization_per" 
  #Write-Host "====================="
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM