PowerShellはWindows環境でシステム管理や自動化を行うのに非常に便利なツールです。その中でも、Get-Process コマンドは、現在実行中のプロセスを取得し、詳細な情報を表示するための基本的なコマンドの一つです。
タスクマネージャーを開かなくても、PowerShellを使えばプロセス情報を簡単に確認でき、フィルタリングや停止、メモリ使用量の確認など、より高度な操作も可能です。本記事では、Get-Process の基本的な使い方から応用的な活用方法まで詳しく解説します。
Get-Processコマンドとは?
Get-Process は、WindowsのPowerShellで実行中のプロセスを取得するためのコマンドレットです。
基本構文
Get-Process
このコマンドを実行すると、現在動作しているすべてのプロセスの一覧が表示されます。
出力の例
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
65 4 1204 4568 120 0.03 3980 notepad
350 15 12456 32120 1020 2.11 7896 chrome
222 9 7588 18932 850 1.05 1234 explorer
各列の説明:
- Handles:プロセスが使用しているハンドル数
- NPM(K):非ページメモリの使用量(KB)
- PM(K):ページメモリの使用量(KB)
- WS(K):ワーキングセットメモリ(KB)
- VM(M):仮想メモリサイズ(MB)
- CPU(s):CPUの使用時間(秒)
- Id:プロセスID
- ProcessName:プロセス名
特定のプロセスを取得する方法
プロセス名でフィルタリング
特定のプロセスだけを表示するには、-Name
オプションを使います。
Get-Process -Name chrome
このコマンドを実行すると、Chromeのプロセス情報だけが表示されます。
プロセスIDでフィルタリング
プロセスID(PID)を指定して情報を取得することも可能です。
Get-Process -Id 7896
このコマンドは、IDが 7896 のプロセスの詳細を表示します。
プロセスのメモリ使用量を確認する
メモリの使用状況を知るには、WS(K)
(ワーキングセット)や PM(K)
(ページメモリ)の列をチェックします。
特に、メモリ使用量の大きいプロセスを見つけるには、次のコマンドを使います。
Get-Process | Sort-Object -Property WS -Descending | Select-Object -First 10
このコマンドは、ワーキングセットメモリの使用量が多い順に並べ替え、上位10個のプロセスを表示します。
実行中のプロセスを停止する
プロセス名で停止
特定のプロセスを終了させる場合、Stop-Process コマンドを使用します。
Stop-Process -Name notepad -Force
-Force
オプションをつけることで、強制終了も可能です。
プロセスIDで停止
Stop-Process -Id 3980 -Force
このコマンドは、ID 3980 のプロセスを強制終了します。
プロセス情報を詳細に取得する
フル情報の取得
Format-List
を使うことで、詳細なプロパティを表示できます。
Get-Process -Name explorer | Format-List *
これにより、explorer.exe
の詳細情報がリスト形式で表示されます。
指定した情報のみ取得
特定の情報だけを表示する場合は、Select-Object
を使います。
Get-Process -Name chrome | Select-Object Name, Id, CPU, WS
これにより、プロセス名・ID・CPU使用率・メモリ使用量のみを表示できます。
プロセスを監視する
定期的にプロセスの状態を確認する
プロセスの状態を一定間隔でチェックするには、While
ループと組み合わせることができます。
while ($true) {
Get-Process -Name chrome
Start-Sleep -Seconds 5
}
このスクリプトは、5秒ごとに Chrome のプロセス情報を表示 し続けます。
応用編:プロセス情報をファイルに保存
プロセス情報をログファイルとして保存することも可能です。
Get-Process | Out-File -FilePath "C:\temp\process_log.txt"
このコマンドは、現在のプロセス一覧を C:\temp\process_log.txt
に保存します。
まとめ
PowerShellの Get-Process
コマンドを使うことで、実行中のプロセスを簡単に取得し、フィルタリング、メモリ使用量の確認、プロセスの停止、監視、ログの記録など、さまざまな操作が可能になります。
特に、プロセスを監視したり、自動でログを取るスクリプトを組む ことで、システム管理がより効率的になります。
PowerShellを活用し、より高度なプロセス管理を試してみてください!