stephanlinke

[PRTG] Get Processes

Feb 1st, 2016
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. param($target)
  2. $Processes = get-process -ComputerName $target | Group-Object -Property ProcessName
  3. Write-Host '<?xml version="1.0" encoding="UTF-8"?><prtg>'
  4. Write-Host (@"
  5.            <result>
  6.                <channel>{0}</channel>
  7.                <value>{1}</value>
  8.                <Unit>Count</Unit>
  9.            </result>
  10. "@ -f "Running processes",$Processes.Count)
  11. foreach($Process in $Processes)
  12. {
  13.     $Obj = New-Object psobject
  14.     $Obj | Add-Member -MemberType NoteProperty -Name Name -Value $Process.Name
  15.     $Obj | Add-Member -MemberType NoteProperty -Name CPU -Value ($Process.Group | Measure-Object PercentProcessorTime -Sum).Sum
  16.    
  17.     Write-Host (@"
  18.            <result>
  19.                <channel>{0}</channel>
  20.                <value>{1}</value>
  21.                <Unit>BytesMemory</Unit>
  22.            </result>
  23. "@ -f $Obj.Name,$Obj.CPU)
  24. }
  25. Write-Host ("<Text>{0} processes are currently running</Text></prtg>" -f $Processes.Count);
Advertisement
Add Comment
Please, Sign In to add comment