$w32proc = Get-CimInstance Win32_Processor $baseclock = $w32proc.MaxClockSpeed while ($true) { #CPU $currentclock = (Get-Counter '\Processor Information(_Total)\Actual Frequency').CounterSamples.CookedValue $cpu = (Get-Counter '\Processor Information(_Total)\% Processor Utility').CounterSamples.CookedValue * $baseclock / $currentclock #RAM $w32os = Get-CimInstance Win32_OperatingSystem $ramtotal = $w32os.TotalVisibleMemorySize $ramfree = $w32os.FreePhysicalMemory $ramused = $ramtotal - $ramfree $ramusage = ($ramused / $ramtotal) * 100 #DISK(C:) $diskusage = 100 - (Get-Counter '\LogicalDisk(C:)\% Idle Time').CounterSamples.CookedValue #NETWORK (Kbps) $netsent = ((Get-Counter "\Network Interface(*)\Bytes Sent/sec").CounterSamples |Measure-Object -Property CookedValue -Sum).Sum * 8 / 1000 $netrecv = ((Get-Counter "\Network Interface(*)\Bytes Received/sec").CounterSamples |Measure-Object -Property CookedValue -Sum).Sum * 8 / 1000 $outstr = "CPU {0,6:N2}% RAM {1,6:N2}% DISK(C:) {2,6:N2}% NET(S) {3,8:N2} Kbps NET(R) {4,8:N2} Kbps" -f ` $cpu, $ramusage, $diskusage, $netsent, $netrecv Write-Host "`r$outstr" -NoNewLine Start-Sleep -Seconds 3 }