You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写PowerShell程序统计15分钟内CPU平均使用率

统计15分钟内CPU平均使用率的PowerShell实现

你的示例命令只能获取单次CPU使用率,要统计15分钟的平均使用率,需要定时重复采样,再计算所有采样值的平均值。以下是完整实现脚本:

# 配置采样参数
$monitorDurationMinutes = 15
$sampleIntervalSeconds = 10  # 可按需调整采样频率,数值越小精度越高
$totalSampleCount = ($monitorDurationMinutes * 60) / $sampleIntervalSeconds

# 存储所有CPU使用率采样结果
$cpuUsageData = @()

Write-Host "开始采集15分钟内的CPU使用率,采样间隔$sampleIntervalSeconds秒..."

for ($count = 1; $count -le $totalSampleCount; $count++) {
    # 获取当前CPU平均使用率(用Get-CimInstance替代已弃用的Get-WmiObject)
    $currentUsage = Get-CimInstance Win32_Processor | Measure-Object -Property LoadPercentage -Average | Select-Object -ExpandProperty Average
    $cpuUsageData += $currentUsage

    # 显示采集进度
    $progressRate = [math]::Round(($count / $totalSampleCount) * 100, 2)
    Write-Host "进度: $progressRate% | 当前CPU使用率: $currentUsage%"

    # 最后一次采样无需等待
    if ($count -lt $totalSampleCount) {
        Start-Sleep -Seconds $sampleIntervalSeconds
    }
}

# 计算并输出最终平均使用率
$averageCpu = [math]::Round(($cpuUsageData | Measure-Object -Average).Average, 2)
Write-Host "`n15分钟内CPU平均使用率: $averageCpu%"

# 将结果写入文件
$averageCpu | Out-File "c:\RM.txt" -Encoding utf8

关键说明

  • 采样间隔调整:如果需要更高精度,可以把$sampleIntervalSeconds改为5秒;如果想降低资源占用,可改为30秒
  • 替代命令:用Get-CimInstance代替Get-WmiObject,因为后者已被PowerShell官方弃用,兼容性更好
  • 权限注意:写入C盘根目录可能需要管理员权限,若报错可将输出路径改为用户目录(比如$HOME\RM.txt)

内容的提问来源于stack exchange,提问作者user21446047

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:19:55