パソコンが急に重くなった、特定のアプリがフリーズした、謎のエラーが出た…。
そんなとき、原因を突き止めるヒントになるのが「プロセスID(PID)」という情報です。
プロセスIDが役立つ場面
- アプリがフリーズして動かない
- パソコンが重い原因を調べたい
- 複数の同じアプリを見分けたい
- エラーの原因を特定したい
- セキュリティチェックを行いたい
一見すると専門的な印象を持たれがちですが、プロセスIDは誰でも簡単に確認でき、PCトラブルの原因調査や管理に役立つ便利な機能です。
この記事では、プロセスIDとは何か、どこで見られるのか、そしてそれをどう使うのかまで、初心者にもわかりやすく解説します。
プロセスID(PID)とは何か?

プロセスとは?
Windowsでは、アプリやサービスが動作するたびに「プロセス」という単位で実行されます。
プロセスの例:
- Google Chromeを起動 → 複数のプロセスが立ち上がる
- Microsoft Wordを開く → Wordプロセスが作成される
- Windows Updateが動く → 更新プロセスが起動
- ウイルス対策ソフトが監視 → 保護プロセスが常駐
プロセスIDとは?
「プロセスID(Process ID / PID)」は、プロセスごとに一意に割り当てられる番号です。
Windows内部では、この番号でプロセスを識別・制御しています。
身近な例で理解
例1:図書館の本
- 本 = プロセス
- 管理番号 = プロセスID
- 同じタイトルの本でも、それぞれ違う管理番号
例2:会社の社員
- 社員 = プロセス
- 社員番号 = プロセスID
- 同じ部署でも、一人ひとり違う番号
プロセスIDの特徴
特徴1:一意性
- 同時に存在するプロセスに同じPIDは割り当てられない
- 重複しない番号で確実に識別
特徴2:一時性
- プロセスが終了するとPIDは解放される
- 再起動後は別のPIDが割り当てられる
特徴3:動的割り当て
- 起動順によってPIDが決まる
- 固定番号ではない
実際のPIDの例
プロセス名 PID
chrome.exe 1234
chrome.exe 1235
chrome.exe 1236
winword.exe 2468
explorer.exe 3692
注目ポイント:
- Chromeが複数のプロセスで動作(1234, 1235, 1236)
- それぞれ異なるPIDで識別される
WindowsでプロセスIDを確認する方法

方法1:タスクマネージャーを使う(推奨)
基本的な手順
- Ctrl + Shift + Esc を同時に押す
- タスクマネージャーが開く
- 「詳細」タブをクリック
- プロセス一覧が表示される
PID列が表示されていない場合
- 列のヘッダー部分を右クリック
- 「列の選択」をクリック
- 「PID(プロセスID)」にチェックを入れる
- 「OK」をクリック
表示される情報
列名 | 内容 | 例 |
---|---|---|
名前 | プロセス名 | chrome.exe |
PID | プロセスID | 1234 |
CPU | CPU使用率 | 5.2% |
メモリ | メモリ使用量 | 128,456 K |
便利な操作
並び替え:
- PID列をクリックすると番号順に並び替え
- CPU列をクリックすると使用率順に並び替え
検索・フィルタ:
- 名前列で特定のアプリを探す
- CPU・メモリ列で重いプロセスを特定
方法2:コマンドプロンプトを使う
基本コマンド
tasklist
実行方法:
- Windows + R で「ファイル名を指定して実行」を開く
- cmd と入力してEnter
- tasklist と入力してEnter
出力例
イメージ名 PID セッション名 セッション# メモリ使用量
========================= ======== ================ =========== ============
System Idle Process 0 Services 0 8 K
System 4 Services 0 272 K
chrome.exe 1234 Console 1 89,456 K
winword.exe 2468 Console 1 45,728 K
特定のプロセスを検索
tasklist | findstr chrome
結果:
chrome.exe 1234 Console 1 89,456 K
chrome.exe 1235 Console 1 67,892 K
chrome.exe 1236 Console 1 34,567 K
プロセス名でPIDを調べる
tasklist /FI "IMAGENAME eq chrome.exe"
詳細情報を表示
tasklist /v
方法3:PowerShellを使う
基本コマンド
Get-Process
実行方法:
- Windows + X を押す
- 「Windows PowerShell」をクリック
- Get-Process と入力してEnter
出力例
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
463 25 89456 91234 5.67 1234 1 chrome
312 18 67892 69876 3.21 1235 1 chrome
245 15 34567 36789 1.98 1236 1 chrome
特定のプロセスを検索
Get-Process -Name chrome
CPU使用率順に並び替え
Get-Process | Sort-Object CPU -Descending
メモリ使用量順に並び替え
Get-Process | Sort-Object WorkingSet -Descending
方法4:リソースモニターを使う
起動方法
- Ctrl + Shift + Esc でタスクマネージャーを開く
- 「パフォーマンス」タブをクリック
- 「リソースモニターを開く」をクリック
利点
- 詳細な情報が表示される
- リアルタイム監視が可能
- ファイルアクセス状況も確認できる
プロセスIDの活用シーンと具体例

活用例1:フリーズしたアプリの強制終了
問題の状況
例: Google Chromeがフリーズして、通常の方法では終了できない
解決手順
手順1:PIDを特定
- タスクマネージャーを開く
- 「詳細」タブでchrome.exeを探す
- PIDを確認(例:1234, 1235, 1236)
手順2:コマンドで強制終了
taskkill /PID 1234 /F
taskkill /PID 1235 /F
taskkill /PID 1236 /F
または一括終了:
taskkill /IM chrome.exe /F
/F オプションの意味
- 通常終了:プロセスに終了を要求
- /F(強制終了):プロセスを強制的に停止
活用例2:リソース消費の監視
重いプロセスの特定
手順:
- タスクマネージャーで「CPU」列をクリック
- 使用率の高いプロセスを確認
- PIDと合わせて詳細を調査
複数プロセスの比較
例:複数のChromeプロセス
名前 PID CPU メモリ
chrome.exe 1234 15.2% 89,456 K ← メインプロセス
chrome.exe 1235 3.1% 67,892 K ← タブプロセス
chrome.exe 1236 1.8% 34,567 K ← 拡張機能プロセス
分析:
- PID 1234が最もリソースを消費
- 特定のタブや拡張機能が原因の可能性
活用例3:セキュリティチェック
怪しいプロセスの調査
チェックポイント:
- 不明なプロセス名
- 異常に高いリソース使用
- 複数の同名プロセス
調査方法:
Get-Process | Where-Object {$_.ProcessName -eq "suspicious.exe"}
プロセスの実行場所確認
手順:
- タスクマネージャーで対象プロセスを右クリック
- 「ファイルの場所を開く」をクリック
- 実行ファイルの場所を確認
正常な場所の例:
- C:\Program Files\
- C:\Windows\System32\
- C:\Program Files (x86)\
注意が必要な場所:
- C:\Users[ユーザー名]\AppData\Temp\
- C:\Windows\Temp\
- 不明な一時フォルダ
活用例4:エラー調査とログ分析
イベントログでの調査
手順:
- Windows + R で「eventvwr」と入力
- イベントビューアーが開く
- エラーログを確認
- プロセスIDでフィルタリング
ログの例
エラー時刻: 2024/06/03 14:30:25
プロセスID: 1234
プロセス名: chrome.exe
エラー内容: アクセス違反が発生しました
活用方法:
- PID 1234のChromeプロセスで問題発生
- 特定のタブや操作が原因の可能性
- 同時刻の他のログも確認
活用例5:パフォーマンス最適化
メモリ使用量の監視
# メモリ使用量Top10のプロセス
Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 10
長時間実行プロセスの特定
# 実行時間の長いプロセス
Get-Process | Where-Object {$_.StartTime -lt (Get-Date).AddHours(-24)}
高度な活用テクニック
プロセスの親子関係を調べる
PowerShellでの確認
Get-WmiObject Win32_Process | Select-Object Name, ProcessId, ParentProcessId
親プロセスからの起動確認
# 特定のプロセスの子プロセスを表示
$parentPID = 1234
Get-WmiObject Win32_Process | Where-Object {$_.ParentProcessId -eq $parentPID}
プロセスの実行時間を確認
Get-Process | Select-Object Name, Id, StartTime, @{Name="RunTime";Expression={(Get-Date) - $_.StartTime}}
リアルタイムでプロセスを監視
# 5秒ごとにプロセス一覧を更新
while ($true) {
Clear-Host
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10
Start-Sleep 5
}
便利なツールとソフトウェア
Process Explorer(Microsoft公式)
特徴
- 詳細なプロセス情報
- プロセスツリー表示
- ファイルハンドル表示
- DLL使用状況
入手方法
- Microsoft公式サイトからダウンロード
- 解凍してそのまま実行可能
- インストール不要
Process Monitor
特徴
- ファイルアクセス監視
- レジストリアクセス監視
- ネットワーク活動監視
システム内蔵ツール
perfmon(パフォーマンスモニター)
perfmon
resmon(リソースモニター)
resmon
注意点とPID使用時のコツ

重要な注意点
注意点1:PIDは再起動で変わる
例:
起動前: PID なし
起動後: PID 1234 ← 初回起動
再起動: PID 2468 ← 変更される
対策:
- 使用前に必ず最新のPIDを確認
- 古いPIDに依存したスクリプトに注意
注意点2:システムプロセスに注意
重要なシステムプロセス:
- System (PID: 4)
- csrss.exe (クライアントサーバーランタイム)
- winlogon.exe (ログオンプロセス)
- explorer.exe (Windows Explorer)
危険性:
- 誤って終了するとシステムが不安定になる
- 強制終了は慎重に行う
注意点3:権限の制限
現象:
- 一部のプロセスが表示されない
- 管理者権限が必要なプロセスがある
解決策:
- 管理者として実行
- UAC(ユーザーアカウント制御)を確認
安全な使用のためのコツ
コツ1:事前確認を徹底
確認項目:
- プロセス名が正しいか
- 実行場所が正常か
- システムプロセスでないか
- 必要なプロセスでないか
コツ2:段階的なアプローチ
手順:
- 通常の終了を試す
- タスクマネージャーから終了
- コマンドラインで強制終了
- システム再起動(最終手段)
コツ3:ログとバックアップ
記録する情報:
- 操作前のプロセス一覧
- 実行したコマンド
- 結果と影響
よくある問題と解決法
問題1:PIDが見つからない
原因:
- プロセスがすでに終了
- 権限不足で表示されない
- フィルタリングで除外
解決策:
# 全プロセスを表示(管理者権限)
Get-Process -IncludeUserName
問題2:強制終了できない
原因:
- システムプロセス
- 権限不足
- プロセスの依存関係
解決策:
# より強力な強制終了
wmic process where processid=1234 delete
問題3:同名プロセスの区別
解決策:
# 詳細情報で区別
Get-Process chrome | Select-Object Id, MainWindowTitle, Path
セキュリティ上の考慮事項

悪意のあるプロセスの特徴
典型的な特徴
- ランダムな名前(例:abc123.exe)
- システムプロセスに偽装(例:svchost.exe の偽物)
- 異常な場所から実行(例:Tempフォルダ)
- 高いネットワーク活動
- 異常なリソース消費
確認方法
# ネットワーク接続を確認
netstat -ano | findstr PID番号
正常プロセスとの見分け方
システムプロセスの正常な場所
プロセス名 正常な場所
svchost.exe C:\Windows\System32\
explorer.exe C:\Windows\
winlogon.exe C:\Windows\System32\
デジタル署名の確認
# デジタル署名を確認
Get-AuthenticodeSignature "C:\Windows\System32\svchost.exe"
トラブルシューティング実例
実例1:メモリリークの調査
問題の症状
- メモリ使用量が徐々に増加
- システムが重くなる
- 特定のアプリが原因と思われる
調査手順
# 1時間ごとのメモリ使用量を記録
$logFile = "C:\temp\memory_log.txt"
while ($true) {
$timestamp = Get-Date -Format "yyyy/MM/dd HH:mm:ss"
$processes = Get-Process | Sort-Object WorkingSet -Descending | Select-Object -First 5
"$timestamp" | Out-File $logFile -Append
$processes | Out-File $logFile -Append
"---" | Out-File $logFile -Append
Start-Sleep 3600 # 1時間待機
}
実例2:CPU使用率が高い原因の特定
調査コマンド
# CPU使用率の高いプロセスを継続監視
Get-Counter "\Process(*)\% Processor Time" |
Select-Object -ExpandProperty CounterSamples |
Where-Object {$_.CookedValue -gt 10} |
Sort-Object CookedValue -Descending
実例3:不審なネットワーク通信の調査
手順
- ネットワーク接続を確認
netstat -ano
- PIDと対応するプロセスを確認
tasklist /FI "PID eq 1234"
- プロセスの詳細を調査
Get-Process -Id 1234 | Select-Object *
まとめ:プロセスIDは”見えない助っ人”
Windowsの「プロセスID(PID)」は、普段は意識しないけれど、トラブル時や高度な操作に欠かせない存在です。
重要なポイント
✅ タスクマネージャーやコマンドで簡単に確認できる
✅ 強制終了やリソース監視、トラブル調査に活躍
✅ 再起動で変わるため、常に最新のPIDを確認するのがポイント
✅ システムプロセスの操作は慎重に
コメント