Forum Discussion

Alan2022's avatar
Alan2022
Iron Contributor
Oct 19, 2022

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