[登録されているタグ]

[記事公開日]2026/01/26

PowerShellで「電源が落ちた原因」を調べる方法(Event ID 41 / 6008 実践)

突然のシャットダウン・フリーズ後の再起動を「ログ根拠」で切り分ける。Kernel-Power 41 と Unexpected Shutdown 6008 を起点に、原因の範囲を詰める実務手順。

PowerShell
イベントログ
電源断
切り分け

「作業中に突然電源が落ちた」「気づいたら再起動していた」「フリーズして強制電源OFFした」――
こうした症状は、体感だけでは原因が絞れません。
ただしWindowsは、電源断や異常終了の痕跡をイベントログに残します。
この記事では、Event ID 41(Kernel-Power)Event ID 6008(Unexpected Shutdown) を起点に、
PowerShellでログを収集して原因の範囲を詰める方法を、現場向けに整理します。

※Event ID 41 / 6008 は「突然落ちた事実」を示すログであり、必ずしも直接原因(電源ユニット故障など)を断定するものではありません。
本記事は「原因を断定する」のではなく、ログから原因の候補を狭めるための手順です。

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. 仕上げ:調査の最短ルート(迷ったらこの順)

  1. Systemログから 41/6008 の TimeCreated を確定
  2. その時刻の前後10分の Systemログをまとめて確認
  3. BugCheck(1001)と WHEA を確認
  4. ストレージ系(disk/Ntfs/stor*)の有無を確認
  5. サービス失敗(7000番台)やドライバ系の重大ログを確認

➡️ 関連記事(タイトル順)

すべてを開く | すべてを閉じる

ページ上部へ戻る