如何使用 PowerShell 知道某个时间间隔内 windows 服务的 CPU 使用情况?

How can know the usage of CPU of a windows service in an interval of time with PowerShell?

我是PowerShell的初学者,如何使用PowerShell知道windows服务在一段时间内(例如一小时)的CPU使用情况? 像这样:

Get-Service | Get-counter

非常感谢

对于 CPU 用法,您需要使用 get-process commandlet,然后将进程名称映射到相应的服务。

这是过去讨论 get-process 的讨论帖之一

示例代码在这里

$Details = @()
$AllRunningServices = Get-CimInstance -class win32_service | Where-Object {$_.State -eq 'Running'}  | Select-Object ProcessId , Name 

foreach($procid in $AllRunningServices)
{
$Details += Get-Process | Where-Object {$_.Id -eq $procid.ProcessId} | Select-Object ProcessName, Id, CPU , @{Name = "serviceName" ; Expression={$procid.Name}}

}

$Details |Sort-Object -Property CPU -Descending | ft