[記事公開日]2026/01/26
PowerShellで「電源が落ちた原因」を調べる方法(Event ID 41 / 6008 実践)
突然のシャットダウン・フリーズ後の再起動を「ログ根拠」で切り分ける。Kernel-Power 41 と Unexpected Shutdown 6008 を起点に、原因の範囲を詰める実務手順。
イベントログ
電源断
切り分け
「作業中に突然電源が落ちた」「気づいたら再起動していた」「フリーズして強制電源OFFした」――
こうした症状は、体感だけでは原因が絞れません。
ただしWindowsは、電源断や異常終了の痕跡をイベントログに残します。
この記事では、Event ID 41(Kernel-Power) と Event ID 6008(Unexpected Shutdown) を起点に、
PowerShellでログを収集して原因の範囲を詰める方法を、現場向けに整理します。
※Event ID 41 / 6008 は「突然落ちた事実」を示すログであり、必ずしも直接原因(電源ユニット故障など)を断定するものではありません。
本記事は「原因を断定する」のではなく、ログから原因の候補を狭めるための手順です。
もくじ
- 1 1. まず知っておくべき:41 と 6008 の違い
- 2 2. 最短で確認:41 / 6008 を直近から拾う(PowerShell)
- 3 3. 「原因の手掛かり」は前後10分に出やすい(前後ログをまとめて拾う)
- 4 4. 実務でよく見る「セット」:41/6008 + 1001(BugCheck)+ WHEA
- 5 5. ストレージ起因を疑う:disk/Ntfs/stor* をまとめて拾う
- 6 6. 「ドライバが落としている」系を疑う:特に表示・ネットワーク
- 7 7. 実務向け:41/6008 の「周辺ログ」を一括でまとめる(コピペ用)
- 8 8. よくあるパターン別:ログから見える「原因の方向性」
- 9 9. 仕上げ:調査の最短ルート(迷ったらこの順)
- 10 まとめ
1. まず知っておくべき:41 と 6008 の違い
- Event ID 41(Kernel-Power):Windowsが「正常なシャットダウンを経ずに再起動した」ことを検知したログ
- Event ID 6008:Windowsが「前回のシャットダウンは予期しないものだった」ことを記録するログ
多くのケースで 41 と 6008 は同じタイミング周辺に出ます。
ただし、41が出た=電源ユニット故障のように短絡的に決めるのは危険です。
重要なのは、41/6008 の前後に何が起きているかをログで追うことです。
もし「電源が落ちた直後から起動しない」「焦げ臭い」「異音がする」「ACアダプタが異常に熱い」などがある場合は、
ログ調査より先に安全を優先してください(通電を止めて点検)。
2. 最短で確認:41 / 6008 を直近から拾う(PowerShell)
まずは「いつ落ちたか」を確定します。時刻が確定すると、前後ログを追いやすくなります。
2-1. Systemログから 41 / 6008 を直近50件
Get-WinEvent -FilterHashtable @{
LogName = "System"
Id = 41, 6008
} -MaxEvents 50 |
Select-Object TimeCreated, Id, ProviderName, LevelDisplayName, Message |
Sort-Object TimeCreated -Descending
表示された TimeCreated が「落ちた(再起動した)タイミングの目安」です。ここから前後を掘ります。
2-2. 直近7日など期間を絞る(ログが多いPC向け)
Get-WinEvent -FilterHashtable @{
LogName = "System"
Id = 41, 6008
StartTime = (Get-Date).AddDays(-7)
} -MaxEvents 200 |
Select-Object TimeCreated, Id, ProviderName, Message |
Sort-Object TimeCreated -Descending
3. 「原因の手掛かり」は前後10分に出やすい(前後ログをまとめて拾う)
41/6008 は「結果のログ」なので、原因はその直前に出ることが多いです。
まずは、落ちた時刻を中心に前後10分のSystemログをまとめて確認します。
下の $t に、41/6008 の TimeCreated(落ちた時刻)を入れてください。
前後10分のログをまとめて取り出します(必要なら 5分/30分に変更してください)。
# 例:落ちた時刻を指定(41/6008 の TimeCreated を入れる)
$t = Get-Date "2026-01-26 10:20:00"
$from = $t.AddMinutes(-10)
$to = $t.AddMinutes(10)
Get-WinEvent -FilterHashtable @{
LogName = "System"
StartTime = $from
EndTime = $to
} |
Select-Object TimeCreated, Id, ProviderName, LevelDisplayName, Message |
Sort-Object TimeCreated
ここで見るべきは、例えば以下のような「兆候ログ」です。
- ディスク系(disk / storahci / stornvme / iaStor* / Ntfs / volmgr)
- 電源・ACPI系(Kernel-Power / ACPI)
- ドライバ停止・再起動(Display / nvlddmkm / amdkmdag など環境依存)
- WHEA(ハードウェアエラー:WHEA-Logger)
- BugCheck(ブルースクリーン痕跡:Event ID 1001 など)
4. 実務でよく見る「セット」:41/6008 + 1001(BugCheck)+ WHEA
4-1. ブルースクリーンの痕跡(BugCheck:ID 1001)を確認
画面が見えなくても、再起動が速い設定だと「落ちたように見える」ことがあります。
その場合、Systemログに BugCheck の痕跡が残ることがあります。
Get-WinEvent -FilterHashtable @{
LogName = "System"
Id = 1001
} -MaxEvents 50 |
Select-Object TimeCreated, ProviderName, Message |
Sort-Object TimeCreated -Descending
4-2. ハードウェアエラー(WHEA-Logger)を確認
CPU/メモリ/PCIe/ストレージなどのハード系の異常は、WHEAとして残ることがあります。
Get-WinEvent -FilterHashtable @{
LogName = "System"
ProviderName = "Microsoft-Windows-WHEA-Logger"
} -MaxEvents 50 |
Select-Object TimeCreated, Id, LevelDisplayName, Message |
Sort-Object TimeCreated -Descending
WHEAが多発する場合、ソフトの問題というより「ハード/設定(OC・電圧・メモリ)」側の疑いが濃くなります。
5. ストレージ起因を疑う:disk/Ntfs/stor* をまとめて拾う
電源断に見えて、実はストレージの応答遅延やI/Oエラーからフリーズ→強制電源OFF、という流れも多いです。
まずは、落ちた時刻周辺にストレージ系のログが出ていないか確認します。
Get-WinEvent -FilterHashtable @{
LogName = "System"
ProviderName = "disk","storahci","stornvme","nvme","iaStorA","iaStorAC","Ntfs","volmgr","partmgr","storport"
} -MaxEvents 200 |
Select-Object TimeCreated, ProviderName, Id, LevelDisplayName, Message |
Sort-Object TimeCreated -Descending
ここで「リセット」「タイムアウト」「再試行」「不良ブロック」などの文言が出るなら、
電源系だけでなくストレージ/ドライバも疑う価値があります。
6. 「ドライバが落としている」系を疑う:特に表示・ネットワーク
画面が真っ暗になって操作不能→電源長押し、というケースは、GPUドライバや周辺ドライバが起点になっている場合があります。
まずは落ちた時刻周辺で、重大エラー・警告が出ていないか拾います。
前後時間を指定して「Error/Warning」を拾うと、原因候補が見えやすいです。
$t = Get-Date "2026-01-26 10:20:00"
$from = $t.AddMinutes(-10)
$to = $t.AddMinutes(10)
Get-WinEvent -FilterHashtable @{
LogName = "System"
StartTime = $from
EndTime = $to
} |
Where-Object { $_.LevelDisplayName -in @("Error","Warning","Critical") } |
Select-Object TimeCreated, Id, ProviderName, LevelDisplayName, Message |
Sort-Object TimeCreated
7. 実務向け:41/6008 の「周辺ログ」を一括でまとめる(コピペ用)
「調査ログをまとめて提出したい」「報告書用に貼りたい」場合、対象IDをまとめて抜くのが楽です。
まずは代表的なものをセットで拾います(必要に応じて追加してください)。
# よく見るセット:電源断(41/6008)+BugCheck(1001)+サービス系(7000番台)
# ※環境により追加:WHEA / disk / stor* / Ntfs
Get-WinEvent -FilterHashtable @{
LogName = "System"
Id = 41, 6008, 1001, 7000, 7001, 7009, 7011, 7023, 7024, 7031, 7034
} -MaxEvents 300 |
Select-Object TimeCreated, Id, ProviderName, LevelDisplayName, Message |
Sort-Object TimeCreated -Descending
8. よくあるパターン別:ログから見える「原因の方向性」
8-1. 41/6008 しか出ない(前兆ログが薄い)
- 電源ボタン長押し、ACアダプタ抜け、コンセント/タップ不良など「物理的な電源断」の可能性
- 電源系(PSU/ACアダプタ/DCジャック/バッテリー)不安定の可能性
- 瞬断に近い落ち方だとログが残りにくい
物理電源断が疑わしい場合、ログだけで詰めきれないことがあります。
「別コンセント」「別ACアダプタ」「バッテリー運用/AC運用の切り分け」など、現物切り分けが重要です。
8-2. BugCheck(1001)が近い時間にある
- 「落ちた」のではなくブルースクリーン→自動再起動の可能性
- ミニダンプが取れていれば解析で原因を詰められる
8-3. WHEAが出る
- CPU/メモリ/PCIe周りのハード/設定由来の可能性
- 過熱、電圧不足、メモリ不良、拡張カードなども候補
8-4. disk/Ntfs/stor* が出る
- ストレージ応答遅延→フリーズ→強制電源OFFの流れ
- ドライバ(AHCI/NVMe/IRST)や接触不良も含めて疑う
9. 仕上げ:調査の最短ルート(迷ったらこの順)
- Systemログから 41/6008 の TimeCreated を確定
- その時刻の前後10分の Systemログをまとめて確認
- BugCheck(1001)と WHEA を確認
- ストレージ系(disk/Ntfs/stor*)の有無を確認
- サービス失敗(7000番台)やドライバ系の重大ログを確認
➡️ 関連記事(タイトル順)
- PowerShellで起動時間が遅い原因を調べる方法(イベントログでボトルネック特定)
- PowerShellで接続された外付けストレージ履歴を確認する方法(USB/外付けHDD/SSD/SDカード)
- PowerShellでブルースクリーン履歴を確認する方法(STOPコード/再起動痕跡)
- PowerShellでバッテリー劣化を数値で確認する方法(ノートPC)
- PowerShellでネットワーク切断履歴を調べる方法(有線・Wi-Fi共通)
- PowerShellでドライバーエラーを一覧表示する方法(デバイス不調の切り分け)
- PowerShellで「電源が落ちた原因」を調べる方法(Event ID 41 / 6008 実践)
- PowerShellでWindowsアップデート失敗履歴を確認する方法(原因の手掛かりをログで掴む)
- PowerShellでUSB抜き差し履歴を確認する方法(接続・切断・認識不良の痕跡)
- PowerShellでSSD / HDDの異常兆候を調べる方法(SMART的観点)
