【Get-Process】PowerShell で実行中のプロセス一覧を表示する

スポンサーリンク
TEST

1. 基本

1.1. プロセス一覧を表示

Get-Process コマンドレットを使って実行中のプロセス一覧を表示することができます。

PS> Get-Process

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
   1552      79   161072      48668      15.02   3328   1 ApplicationFrameHost
    124       8     1588        312              4192   0 armsvc
    901      57    36028      14160      10.27  15856   1 AudibleRT.WindowsPhone
    169      10     6516      11724       2.86  18892   0 audiodg
   2082      67   149312      34520      21.27   3776   1 Calculator
    293      16    22904       5900       1.34   1188   1 chrome
    323      19    50832       8252       3.98   1396   1 chrome
    291      16    26660      43200       0.73   2232   1 chrome
    286      16    37372       8016       2.06   2740   1 chrome
    290      17     8376       9420      95.25   3932   1 chrome
<以下、略>

1.2. 各項目の意味を確認する

Get-Process | Get-Member で各項目の意味を確認できます。

PS> Get-Process | Get-Member


   TypeName: System.Diagnostics.Process

Name                       MemberType     Definition
----                       ----------     ----------
Handles                    AliasProperty  Handles = Handlecount
Name                       AliasProperty  Name = ProcessName
NPM                        AliasProperty  NPM = NonpagedSystemMemorySize64
PM                         AliasProperty  PM = PagedMemorySize64
SI                         AliasProperty  SI = SessionId
VM                         AliasProperty  VM = VirtualMemorySize64
WS                         AliasProperty  WS = WorkingSet64
Disposed                   Event          System.EventHandler Disposed(System.Object, System.EventArgs)
ErrorDataReceived          Event          System.Diagnostics.DataReceivedEventHandler ErrorDataReceived(System.Object, System.Diagnostics.DataReceivedEventArgs)
Exited                     Event          System.EventHandler Exited(System.Object, System.EventArgs)
OutputDataReceived         Event          System.Diagnostics.DataReceivedEventHandler OutputDataReceived(System.Object, System.Diagnostics.DataReceivedEventArgs)
<以下、略>

2. 応用

2.1. 表示項目を指定してプロセスを表示する

書式

Get-Process | Format-Table <項目1,項目2,項目3,…>

例えば ProcessName、ID、WS、VM、NPM を表示させたい場合は下記のようにします。

PS> Get-Process | Format-Table ProcessName,ID,WS,VM,NPM

ProcessName                Id        WS            VM    NPM
-----------                --        --            --    ---
AggregatorHost           5640   2465792 2203376902144   6112
ApplicationFrameHost     4228  27492352 2203745464320  29912
AppVShNotify            28596   9043968 2203426131968   8888
armsvc                  24992   1970176      71626752   9776
chrome                   5596  83501056 3428781932544  20032
chrome                   6956  40476672 3428650110976  16840
chrome                   8208 106844160 3428696936448  19488
chrome                   8616  91688960 3428695482368  19016
chrome                  11600  11116544 2255271419904  17400
chrome                  12716  30400512 3428653514752  18128
chrome                  12748 193052672 3428660736000  17792
chrome                  12780  69541888 3428730200064  19152
chrome                  13184  58355712 3428652236800  17520
chrome                  14068  61124608 3428673806336  18064
chrome                  14356 141934592 3428727779328  19760
chrome                  14616  96194560 3428689133568  19424
chrome                  15132 535576576 2255971078144 163592
chrome                  15168   2445312 2237840265216   9784

この場合各項目のリソース使用量はバイト単位になっています。KBに変更したい場合は1024で割ってください。MBにしたい場合はさらに1024で割ってください。

2.2. 特定のプロセスを表示

特定のプロセスを表示するには下記のように指定します。

書式

Get-Process -Name <プロセス名>

例えばメモ帳(notepad)のプロセスを抜き出して表示させたい場合は、次のようにコマンドを実行します。

PS> Get-Process -Name notepad

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
    247      14     4180       2536       1.19   4784   1 notepad
    246      14     4056       2540       0.47   8116   1 notepad

2.3. リソースの使用量の小さい順に並び替える

リソースの使用量の小さい順に並び替えたい場合は下記のように指定します。

書式

Get-Process | Sort-Object <項目>

例えばWSが小さい順に並べ替えたい場合は、次のようにコマンドを実行します。

PS> Get-Process | Sort-Object WS

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
      0       0       60          8                 0   0 Idle
   5888       0       52         20                 4   0 System
     57       4     1088        392               620   0 smss
     37       6     2080        708              1180   0 fontdrvhost
    128       9     3476       1140              4136   0 ThinkPadKBSvc
    148      12     1384       1256               928   0 wininit
    148      43     1700       1268              4092   0 svchost
    144       7     1280       1288              4156   0 svchost
    136       9     1288       1328              4692   0 jhi_service
    117       8     1532       1444              2880   0 svchost
    272       8     1304       1512              2332   0 svchost
    172       9     1944       1540              4844   0 svchost
    151      10     1340       1636              4176   0 SsWiaRestartSvc
<以下、略>

2.4. リソースの使用量の大きい順に並び替える

リソースの使用量の大きい順に並び替えたい場合は下記のように指定します。

書式

Get-Process | Sort-Object <項目> -Descending

例えばWSが大きい順に並べ替えたい場合は、次のようにコマンドを実行します。

PS> Get-Process | Sort-Object WS -Descending

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
   2268     120   500344     510692   5,329.94  15132   1 chrome
   1241      65   524096     480220   4,667.17  15316   1 chrome
      0       0     4100     346144              2552   0 Memory Compression
    500      25   237488     277004     835.95  25864   1 chrome
   5325     152   257572     220420   1,444.16   8328   1 explorer
   2060      90   113856     187916      27.55  12468   1 EXCEL
    269      17   299120     185068     423.70  12748   1 chrome
   1174     110   260760     182756             19612   0 MsMpEng
   1484     131   176128     178632      30.92   9412   1 SearchHost
    376      20   157376     163764     195.98  28116   1 chrome
    417      20    80888     135672       3.53   5868   1 chrome
   2044     107   203532     126012              1436   1 dwm
    326      19    73296     119508       2.92   2656   1 chrome
    353      20    58788     115204       1.58  22500   1 chrome
    346      20    66628     115116       3.88  21576   1 chrome
<以下、略>

2.5. プロセスを起動しているユーザーを表示する

書式

Get-Process -IncludeUserName

プロセスを起動しているユーザーを表示したい場合は次のようにコマンドを実行します。

PS> Get-Process  -IncludeUserName

Handles      WS(K)   CPU(s)     Id UserName               ProcessName
-------      -----   ------     -- --------               -----------
     91       2392     0.11   5640 NT AUTHORITY\SYSTEM    AggregatorHost
    458      27712    29.42   4228 WEB01\Administrator    ApplicationFrameHost
    158       8832     0.02  28596 WEB01\Administrator    AppVShNotify
    130       1924     0.02  24992 NT AUTHORITY\SYSTEM    armsvc
    327     124444     3.14   2656 WEB01\Administrator    chrome
    412      79612     1.08   7556 WEB01\Administrator    chrome
    341     104460     3.39   8208 WEB01\Administrator    chrome
    374     109516     7.63   8616 WEB01\Administrator    chrome
    253      10888   486.98  11600 WEB01\Administrator    chrome
    280      29248    22.11  12716 WEB01\Administrator    chrome
    269     188456   425.73  12748 WEB01\Administrator    chrome
    325      68304     2.13  12780 WEB01\Administrator    chrome
   2302     512720 5,355.81  15132 WEB01\Administrator    chrome
    262       2388     0.78  15168 WEB01\Administrator    chrome
<以下、略>

2.6. プロセス IDを指定してプロセスを表示する

書式

Get-Process -Id <PID>

例えばPID 2772のプロセスを表示したい場合は次のようにコマンドを実行します。

PS> Get-Process -Id 2772

Handles  NPM(K)    PM(K)      WS(K)     CPU(s)     Id  SI ProcessName
-------  ------    -----      -----     ------     --  -- -----------
    730      34    39000      73768      49.42   2772   1 Taskmgr

2.7. プロセスの実行ファイルを表示する

書式

Get-Process -Name <プロセス名> -FileVersionInfo
Get-Process -Id <PID> -FileVersionInfo

プロセス名が「taskmgr」の実行ファイルを表示したい場合は下記のようにコマンドを実行します。

PS> Get-Process -Name taskmgr -FileVersionInfo

ProductVersion   FileVersion      FileName
--------------   -----------      --------
10.0.22000.1210  10.0.22000.12... C:\WINDOWS\system32\taskmgr.exe

プロセスIDを指定することもできます。プロセスIDが「2772」の実行ファイルを表示したい場合は下記のようにコマンドを実行します。

PS> Get-Process -ID 2772 -FileVersionInfo

ProductVersion   FileVersion      FileName
--------------   -----------      --------
10.0.22000.1210  10.0.22000.12... C:\WINDOWS\system32\taskmgr.exe

以上。

メモリの仕組みやボトルネック解析を学びたい人には下記の本をお勧めしておきます。

コメント