Forum Discussion
Alan2022
Oct 19, 2022Iron Contributor
Server Get Counter Performance Monitoring
Dear All,
Just Sharing.
# Create Report Array
$report = @()
# Target Computer
$Computer = "server01"
# List of Performance Counter
$CounterCPU = "\Processor(_Total)\% Processor Time"
$CounterMem = "\Memory\Available MBytes"
$CounterPD = "\PhysicalDisk(0 c:)\Avg. Disk sec/Transfer"
$CounterLDR = "\LogicalDisk(c:)\Avg. Disk sec/Read"
$CounterLDW = "\LogicalDisk(c:)\Avg. Disk sec/Write"
# Get Perform Values
$cpu = [math]::round((Get-Counter -Counter $CounterCPU -ComputerName $Computer -MaxSamples 1).CounterSamples.CookedValue, 0)
$memory = [math]::round((Get-Counter -Counter $CounterMem -ComputerName $Computer -MaxSamples 1).CounterSamples.CookedValue /1024, 3)
$pd = [math]::round((Get-Counter -Counter $CounterPD -ComputerName $Computer -MaxSamples 1).CounterSamples.CookedValue * 1000, 0)
$ldr = [math]::round((Get-Counter -Counter $CounterLDR -ComputerName $Computer -MaxSamples 1).CounterSamples.CookedValue * 1000, 0)
$ldw = [math]::round((Get-Counter -Counter $CounterLDW -ComputerName $Computer -MaxSamples 1).CounterSamples.CookedValue * 1000, 0)
# Creating Report Header
$reportdetails = "" | Select "CPU % Processor Time", "Available Memory(GB)", "Disk Latency(ms)", "Disk Latency Read(ms)", "Disk Latency Write(ms)", DateTime
$reportdetails."CPU % Processor Time" = $cpu
$reportdetails."Available Memory(GB)" = $memory
$reportdetails."Disk Latency(ms)" = $pd
$reportdetails."Disk Latency Read(ms)" = $ldr
$reportdetails."Disk Latency Write(ms)" = $ldw
$reportdetails.DateTime = Get-Date
$report+=$reportdetails
# View Reports
$report | Export-Excel "$($env:USERPROFILE)\Desktop\$($Computer)_perfmon.xlsx" -TableName Table1 -AutoSize
Write-Host "Finished..." No RepliesBe the first to reply