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. 表示項目を指定してプロセスを表示する
例えば 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. 特定のプロセスを表示
特定のプロセスを表示するには下記のように指定します。
例えばメモ帳(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. リソースの使用量の小さい順に並び替える
リソースの使用量の小さい順に並び替えたい場合は下記のように指定します。
例えば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. リソースの使用量の大きい順に並び替える
リソースの使用量の大きい順に並び替えたい場合は下記のように指定します。
例えば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. プロセスを起動しているユーザーを表示する
プロセスを起動しているユーザーを表示したい場合は次のようにコマンドを実行します。
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を指定してプロセスを表示する
例えば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. プロセスの実行ファイルを表示する
プロセス名が「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
以上。
メモリの仕組みやボトルネック解析を学びたい人には下記の本をお勧めしておきます。
コメント