All pastes #972409 Raw Edit

Untitled

public text v1 · immutable
#972409 ·published 2008-04-05 12:23 UTC
rendered paste body
+++
PS C:\> ps | unique

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
     94       7    11688       9828    49             500 audiodg
     31       4     1500       4460    57     0,02   2096 conime
    495      10     2664       4772   111             552 csrss
    152      15    67184      94684   173     7,55   2100 dwm
...
+++

Tegyük csoportokba a processeket a ProcessName property szeint (ez az alapértelmezett csoportosító property):
+++
PS C:\> ps | group

Count Name                      Group
----- ----                      -----
    1 System.Diagnostics.Pro... {audiodg}
    1 System.Diagnostics.Pro... {conime}
...
    2 System.Diagnostics.Pro... {iexplore, iexplore}
...
    1 System.Diagnostics.Pro... {NMBgMonitor}
    1 System.Diagnostics.Pro... {NMIndexingService}
    1 System.Diagnostics.Pro... {NMIndexStoreSvr}
    1 System.Diagnostics.Pro... {OUTLOOK}
    1 System.Diagnostics.Pro... {powershell}
    2 System.Diagnostics.Pro... {rundll32, rundll32}
...
    1 System.Diagnostics.Pro... {spoolsv}
   13 System.Diagnostics.Pro... {svchost, svchost, svchost, svchost...}
    1 System.Diagnostics.Pro... {System}
    2 System.Diagnostics.Pro... {taskeng, taskeng}
    1 System.Diagnostics.Pro... {TOTALCMD}
...
+++

A Microsoft által írt futú programoknak számoljuk ki az összes és az átlagos memóriahasználatát:
+++
PS C:\> ps |? {$_.Company -ne $null -and $_.Company.StartsWith("Microsoft")} | Measure-Object -Average -Sum -Property WorkingSet


Count    : 16
Average  : 30749184
Sum      : 491986944
Maximum  :
Minimum  :
Property : WorkingSet
+++

Azért kell vizsgálni a Company property nem nullságát, mert nonadmin nem kérheti le ezt az értéket.

Kombinált példa: csoportosítsuk azokat a processeket, amelyekből több van, majd a csoportok átlagos és összes memóriahasználatát írjuk ki táblázatos formában:
+++
PS C:\> ps | group |? {$_.Count -gt 1} |% {$_.Group | Measure-Object -Sum -Average -Property WorkingSet} | ft Count,Average, Sum

                                  Count                                 Average                                     Sum
                                  -----                                 -------                                     ---
                                      2                                 9160704                                18321408
                                      2                                59123712                               118247424
                                      2                                 5644288                                11288576
                                      2                                25597952                                51195904
                                     13                        19103428,9230769                               248344576
                                      2                                 9789440                                19578880
+++

Persze miért ne lehetne külső programokat behívni?

Kombináljuk a wget-es feed-lekérést az xml konverzióval és feldolgozással:
+++
PS C:\> ([xml](wget http://feeds.feedburner.com/HUP -q -O -)).rss.channel.Item | select title

title
-----
Linux hajtja majd az Intel MID-jeit
...
+++