Saturday, October 26, 2013

Get 10 CPU consuming processes

Here's a little function that finds the top 10 CPU consuming processes with a nice colorful output. Paste the below code into PowerShell.
<#
.CREATED BY:
    Matthew A. Kerfoot
.CREATED ON:
    10\25\2013
.Synopsis
   Gathers Top 10 CPU consuming processes.
.DESCRIPTION
    This function gathers all processes list them by highest CPU consumption and `
    then displays a nice colorfull display of the top 10 processes listed decending.
.EXAMPLE
   Get-TopCpu -computername localhost -color yellow
#>
Function Get-TopCpu {

            [CmdletBinding()]
    param ( [Parameter(ValueFromPipelineByPropertyName=$true,
            Position=0)]
            [string[]]$computername = $env:COMPUTERNAME,
            [string]$color = "Green"
          )

$num = 1
$Total = 10
$Cpu = Get-Process | Sort-Object CPU -Descending 
Hostname
 foreach ($_ in $Cpu) {
      If ($num -gt $Total) { break }
            write-host "$num) " -NoNewline
            write-host $_.Description  -foregroundcolor "$color" -NoNewline
            write-host " - CPU:"$_.CPU
            $num += 1 }

 Get-WmiObject win32_processor | select LoadPercentage  | fl
}
Get-TopCpu

Hit Enter a couple times and then type 'Get-TopCpu'.