もくじ
📝 はじめに
パソコンが突然ブルースクリーン(STOPエラー)になったとき、
「何が原因だったのか見当がつかない」
「再起動してしまって画面の情報を控えられなかった」
と困ることはありませんか?
そんなときは、Windowsが残しているイベントログから
ブルースクリーン(クラッシュ)の痕跡を探せる場合があります。
この記事では Get-WinEvent を使って、
ログの確認手順(PowerShell版)を、初動で使いやすい形でまとめます。
- ブルースクリーンが起きた時刻を特定したい
- 予期しない再起動(Kernel-Power)との関連を確認したい
- 複数回起きているか(頻度)を確認したい
- 問い合わせ対応で「ログの証拠」を提示したい
✅ このコマンドでできること(要点)
- ブルースクリーン前後の「異常終了」ログを素早く抽出できる
- Kernel-Power(ID 41)や予期しないシャットダウン(ID 6008)を追える
- BugCheck(ブルースクリーンの手がかり)を記録しているイベントを探せる
- 結果をファイル保存して共有しやすい
✅ Get-WinEventでできること
Get-WinEvent は、Windowsイベントログを取得するコマンドです。
ブルースクリーン自体の「画面」は残りませんが、
その前後に発生する「異常終了」「強制再起動」「BugCheck」などのログが残る場合があります。
まずはSystemログを中心に、
クラッシュに関連しやすいイベントIDを絞り込んで時刻と内容を確認する
のが基本です。
🧩 基本構文
Get-WinEvent -LogName System -MaxEvents 50
直近のSystemログを確認するところから始めます。
▶ 基本的な使い方(まずこれだけ)
🔹 直近の「異常終了」候補をまとめて抽出する
Get-WinEvent -FilterHashtable @{
LogName = "System"
Id = 41, 6008, 1001
} -MaxEvents 50 |
Select-Object TimeCreated, Id, ProviderName, Message
よく使う「クラッシュ手がかり」候補をまとめて確認します。
何かしら表示されていれば、調査の入口としては十分です。
エラーが出なければ正常に実行できています。
- 41:Kernel-Power(突然の電源断/強制再起動の可能性)
- 6008:予期しないシャットダウン
- 1001:BugCheck(ブルースクリーン関連の情報が含まれることがあります)
🔹 「ブルースクリーンっぽい時刻」を特定する
Get-WinEvent -FilterHashtable @{
LogName = "System"
Id = 41, 6008
} -MaxEvents 30 |
Select-Object TimeCreated, Id
まずは時刻とIDだけに絞ることで、発生タイミングが追いやすくなります。
ここで候補の時刻が見つかれば、次にメッセージ詳細を確認します。
🛠 よく使われる指定例
🔹 直近7日など「期間」を指定して調査する
Get-WinEvent -FilterHashtable @{
LogName = "System"
Id = 41, 6008, 1001
StartTime = (Get-Date).AddDays(-7)
} |
Select-Object TimeCreated, Id, ProviderName, Message
繰り返し発生している疑いがある場合は、期間指定が便利です。
🔹 BugCheck(1001)だけを集中的に見る
Get-WinEvent -FilterHashtable @{
LogName = "System"
Id = 1001
} -MaxEvents 30 |
Select-Object TimeCreated, ProviderName, Message
1001 が出ていれば、
ブルースクリーンに近い情報が残っている可能性があります。
ただし環境によっては記録されない場合もあります。
🔹 表示を見やすく整える(最小限)
Get-WinEvent -FilterHashtable @{
LogName = "System"
Id = 41, 6008, 1001
} -MaxEvents 50 |
Select-Object TimeCreated, Id, ProviderName
まずは一覧性を優先して「時刻・ID・発生元」だけを見るのも有効です。
この結果が出ていれば、抽出自体は問題なくできています。
💼 実務でよく使う使用例(応用)
🔹 「その前後」に何が起きたかを確認する(直近ログの流れを見る)
Get-WinEvent -LogName System -MaxEvents 200 |
Select-Object TimeCreated, Id, LevelDisplayName, ProviderName, Message
異常終了候補の時刻が分かったら、その前後の流れを追うことで、
ドライバー・サービス・ディスク関連の手がかりが見える場合があります。
🔹 調査結果をファイルに保存して共有する
Get-WinEvent -FilterHashtable @{
LogName = "System"
Id = 41, 6008, 1001
StartTime = (Get-Date).AddDays(-14)
} |
Select-Object TimeCreated, Id, ProviderName, Message |
Out-File "C:\logs\bsod_trace.log"
ログファイルが出力できていれば、抽出と保存はできています。
出力先フォルダがない場合は作成してから実行してください。
- Select-Object で必要項目だけに絞って見やすくする
- Out-File で調査結果を保存し、第三者と共有する
- Where-Object でMessage内のキーワード検索(driver / disk / update など)
🧩 よくある勘違い・つまずきポイント
- ブルースクリーンの「画面そのもの」はイベントログには残らない
- 41 は原因確定ではなく「突然落ちた/強制再起動した可能性」のサインに留まる
- 1001(BugCheck)が必ず出るとは限らない(設定や状況で記録されない場合がある)
- ログがローテーションされ、古い履歴が消えている場合がある
- Where-Objectで後から絞ると遅くなることがある(可能ならFilterHashtableで絞る)
⚠ エラー・うまく動かないときの確認ポイント
- LogName が System になっているか
- イベントIDの指定が数値で正しいか(カンマ区切りなど)
- 期間指定(StartTime)が狭すぎないか
- 保存先フォルダ(例:C:\logs)が存在するか
- 管理者として実行が必要な環境ではないか
🧠 注意点
ブルースクリーンの原因は、ドライバー、ストレージ、メモリ、電源、更新、周辺機器など多岐にわたります。
イベントログは「発生時刻」と「異常終了の手がかり」を掴むのに強い一方で、
ログだけで原因を断定できない場合もあります。
まずは「いつ」「どのIDが出たか」を押さえ、
その前後のSystem/Applicationログや、必要ならダンプ解析などと組み合わせるのが現実的です。
📌 まとめ
- ブルースクリーンの痕跡はSystemログから追える場合がある
- まずは 41 / 6008 / 1001 をFilterHashtableで絞り込む
- 時刻が分かったら、その前後のログを広めに見て手がかりを探す
- 次はイベントIDの追加(例:ドライバー/ディスク関連)や、Application側の確認もすると理解が深まる
- やりたいことが曖昧な場合は検索フォームを使うと探しやすい
🔎 PowerShellコマンドを探す
やりたいことから、関連するPowerShellコマンドや記事を探せます。
- ファイルを削除したい
- 一覧を表示したい
- 文字列を検索したい
- 条件で絞り込みたい
- エラーや実行できない原因を調べたい
- ブルースクリーンが起きた時刻を調べたい(41 / 6008)
- BugCheckの記録を確認したい(1001)
- 直近のエラーだけを抽出したい(-MaxEvents と併用)
