PowerShellで実行中のプロセスを取得・管理する方法|Get-Processの活用術

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を活用し、より高度なプロセス管理を試してみてください!

タイトルとURLをコピーしました