Private/Helper/Get-CPUUsage.ps1
<#
Copyright © 2024 Integris. For internal company use only. All rights reserved. #> FUNCTION Get-CPUUsage { <# .SYNOPSIS Calculates the average CPU usage over a specified period. .DESCRIPTION This function measures the CPU usage percentage over a given number of seconds and returns the average value. .PARAMETER Seconds The duration in seconds for which the CPU usage is measured. Default is 5 seconds. .EXAMPLE Get-CPUUsage -Seconds 10 .NOTES The function uses Get-Counter to retrieve CPU usage data and averages the values over the specified period. #> param( [Parameter()] [int]$Seconds = 5 ) [int]$Count = 0 [int]$CPUUsageTotal = 0 $Now = Get-Date WHILE ((Get-Date) -le ($Now).AddSeconds($Seconds)) { $CPUUsageTotal += (Get-Counter '\Processor(_Total)\% Processor Time').CounterSamples.CookedValue $Count++ Start-Sleep -Milliseconds 250 } return [int]($CPUUsageTotal / $Count) } |