Como el PowerShell puede crear Objetos de .NET Framework , Recomendaría el PerformanceCounter clase para esta tarea
Esta clase puede ser problemática para trabajar, pero proporciona la mayoría de las funciones que necesita.
Para obtener una lista de categorías puede obtener simplemente llamar a la estática GetCategories()
método:
[System.Diagnostics.PerformanceCounterCategory]::GetCategories()
Para empezar, escribí una pequeña demostración:
$pc_prc = new-object System.Diagnostics.PerformanceCounter("Processor", "% Processor Time", "_Total")
$pc_ram = new-object System.Diagnostics.PerformanceCounter("Memory", "Available MBytes")
while(1) {
$time = get-date
echo ======================
echo $time
echo ======================
$pc_prc_value = $pc_prc.NextValue()
$pc_ram_value = $pc_ram.NextValue()
echo " + Processor Load: $pc_prc_value %"
echo " + Available Memory: $pc_ram_value MB"
sleep 1
}
Nota que el PerformanceCounter
clase no admite los datos de temperatura de la CPU de recuperación ya que ese procedimiento depende en gran medida de la arquitectura.
Revisa esta pregunta tan para más información.