Windows 11のPCがスリープから勝手に復帰するときは、マウスやネットワーク、タイマーなどの設定をいきなり無効にするのではなく、まず「何がスリープを解除したのか」を確認することが重要です。
基本的な確認順序は次のとおりです。
- Windows PowerShellを管理者として開く
- 勝手に復帰した直後なら、
powercfg /lastwakeで直前の解除元を確認する - 過去の復帰を調べる場合は、Power-Troubleshooterのイベントログを確認する
Device・Timer・Unknownなど、表示された結果に合わせて必要な設定だけ確認する
この記事では、実機で確認したDevice・Timer・Unknownの例を使いながら、解除元の確認方法と結果に応じた対処方法を順番に解説します。
Windows 11のスリープが勝手に復帰したら、まず解除元を確認する
スリープ直後に復帰した場合でも、しばらくしてから復帰した場合でも、復帰までの時間だけで原因を決めつけるのは避け、まずWindowsに記録されているスリープ解除元を確認します。
PowerShellで直前のスリープ解除元を確認する
まずWindows PowerShellでpowercfg /lastwakeを実行し、直前に何がPCをスリープから復帰させたのかを確認します。
本記事では、実機検証と操作条件をそろえるため、Windows PowerShellを管理者として開いて確認します。
Windowsキーを押します。- 「PowerShell」と入力します。
- 「Windows PowerShell」を右クリックします。
- 「管理者として実行」を選択します。
- ユーザー アカウント制御が表示されたら「はい」を選択します。
- コマンド
powercfg /lastwakeを入力してEnterキーを押します。

Microsoftの公式資料では、/lastwakeは最後のスリープ移行からシステムを解除したものに関する情報を報告するコマンドとされています。
今回の実機では、powercfg /lastwakeの結果に「電源ボタン」と表示されました。
つまり、直前は電源ボタンの操作によってPCがスリープから復帰したと記録されています。
電源ボタン以外が表示された場合は、その表示内容を手掛かりに原因を切り分けます。
直前の解除元だけで分からないときは過去の履歴を確認する
powercfg /lastwakeで確認できるのは、直前にPCがスリープから復帰したときの情報です。
そのため、勝手に復帰したあとにもう一度スリープ・復帰していると、確認したかった復帰とは別の情報が表示されることがあります。
今回の実機でも、確認時点の/lastwakeには「電源ボタン」と表示されていましたが、過去のイベントログを見ると、それ以前には別の原因で復帰した記録も残っていました。
そのため、勝手に復帰した直後なら/lastwakeを確認し、すでに別の復帰を挟んでいる場合はイベントログで過去の履歴を確認します。
今回の検証環境は、Windows 11 Home 25H2/OSビルド26200.9445です。
powercfg /aで確認すると、スタンバイ(S3)が利用可能で、Modern StandbyにあたるS0低電力アイドルは利用できない環境でした。
Microsoftは、従来型のS1~S3とModern Standbyで使用されるS0低電力アイドルを異なる電源状態として説明しています。
そのため、Modern Standby対応PCでは、本記事の実機結果と挙動が異なる可能性があります。
出典:
Powercfg のコマンドライン オプション
システム電源の状態
過去のスリープ解除原因をイベントログで確認する
/lastwakeで確認できない過去の復帰は、Windows標準の「イベント ビューアー」で調べます。
今回の実機では、Power-TroubleshooterのイベントID 1から過去のスリープ解除元を確認できました。
Power-TroubleshooterのイベントID 1に絞り込む
イベント ビューアーでは、スリープから復帰した日時と「スリープ状態の解除元」を確認します。
次の順番で確認します。
Windowsキーを押します。- 「イベント ビューアー」と入力して開きます。
- 左側の「Windows ログ」を展開します。
- 「システム」を選択します。
- 右側の「現在のログをフィルター…」をクリックします。
- 「イベント ソース」で「Microsoft-Windows-Power-Troubleshooter」を選択します。
- 「すべてのイベント ID」に
1と入力します。 - 「OK」をクリックします。
今回の実機では、この方法でPower-TroubleshooterのイベントID 1だけに絞り込めました。

確認したい日時のイベントをクリックすると、画面下部の「全般」に「スリープ状態の解除元」が表示されます。
今回の実機では、過去ログから次の4種類を確認できました。
| 表示 | 今回の実機例 | 次に確認する場所 |
|---|---|---|
| Power Button | 電源ボタン | 手動復帰だったか確認 |
| Device | USB Composite Device | デバイス側 |
| Timer | Maintenance Activator | スリープ解除タイマー・タスク側 |
| Unknown | Unknown | 追加確認 |
ここでは、解除元の種類を確認するところまでにします。
Deviceならデバイス側を確認します。
Timerならスリープ解除タイマーやタスク側を確認します。
このように、表示された結果によって次の確認先を変えます。
Deviceと表示された場合の確認と対処
Power-Troubleshooterの解除元にDeviceと表示された場合は、マウスやキーボード、ネットワーク機器などのデバイスが復帰に関係した可能性があります。
ただし、イベントログに表示された名前だけを見て、そのデバイスをすぐ無効化するのは避けます。
現在スリープ解除を許可されているデバイスを確認する
PowerShellで次のコマンドを実行します。
powercfg /devicequery wake_armed
Microsoftの公式資料では、wake_armedは現在システムをスリープ解除するよう構成されているデバイスを列挙する条件です。
今回の実機では、
NONE
と表示されました。
ただし、このPCでは過去にユーザー側でスリープ解除設定を変更している可能性があります。
そのため、NONEがWindows 11の初期状態という意味ではありません。
また、過去ログにはDevice - USB Composite Deviceによる復帰が残っているため、現在のwake_armedだけを見て、過去にデバイスによる復帰がなかったとは判断できません。
デバイス マネージャーの「電源の管理」を確認する
wake_armedにデバイス名が表示された場合は、次の順番で確認します。
Windowsキーを押します。- 「デバイス マネージャー」と入力して開きます。
- 該当するデバイスを探します。
- デバイスをダブルクリックします。
- 「電源の管理」タブがあれば開きます。
- 「このデバイスで、コンピューターのスタンバイ状態を解除できるようにする」の状態を確認します。
今回の実機では、Realtek Gaming 2.5GbE Family Controllerに「電源の管理」タブがありました。

このPCでは現在、「このデバイスで、コンピューターのスタンバイ状態を解除できるようにする」はオフになっています。
ただし、これは過去にユーザー側で勝手なスリープ解除を防ぐため変更した可能性があります。
Windows 11の初期設定として扱うことはできません。
そのデバイスからPCを復帰させる必要がなく、実際に原因と考えられる場合にだけ、スリープ解除の設定を無効にすることを検討します。
表示されたデバイス名だけでは判断できない場合もある
今回の過去ログには、
Device - USB Composite Device
と記録されていました。

しかし、現在のデバイス マネージャーには同名のUSB Composite Deviceが3個あり、それぞれ接続場所も異なっていました。

さらに、この3個にはいずれも「電源の管理」タブがありませんでした。
つまり、イベントログに表示されたデバイス名と、その名前のデバイスで実際にスリープ解除設定を変更できるかどうかが、必ずしも1対1で対応するとは限りません。
同名デバイスが複数ある場合や、「電源の管理」タブがない場合は、表示名だけを根拠にデバイスを無効化しないようにします。
Timerと表示された場合の確認と対処
Power-Troubleshooterの解除元にTimerと表示された場合は、指定した時刻や処理をきっかけにPCを復帰させる「スリープ解除タイマー」が関係していないか確認します。
この場合も、過去ログだけで対処を決めず、まず現在有効なスリープ解除タイマーを調べます。
powercfg /waketimersで現在のスリープ解除タイマーを確認する
PowerShellで次のコマンドを実行します。
powercfg /waketimers
Microsoftの公式資料では、/waketimersはアクティブなスリープ解除タイマーを列挙するコマンドとされています。
今回の実機では、
システムにアクティブなスリープ解除タイマーがありません。
と表示されました。
一方、過去のPower-Troubleshooterには、次のような記録が残っていました。
Timer - Windows は、スリープ状態の解除を要求した
スケジュールされたタスク 'Maintenance Activator' を実行します。

つまり今回のPCでは、過去にTimerによる復帰は記録されていたものの、確認時点では有効なスリープ解除タイマーはありませんでした。
そのため、/waketimersで現在有効なスリープ解除タイマーが確認できなくても、過去にTimerによる復帰がなかったという意味にはなりません。
現在のタスクが確認できた場合だけ設定を調べる
/waketimersに具体的なタスク名などが表示された場合は、その情報を手掛かりにタスク スケジューラを確認します。
Windowsのタスク スケジューラには、タスクの実行時にPCをスリープから解除するWakeToRunという設定があります。
今回の実機では、過去ログにMaintenance Activatorと記録されていましたが、現在は/waketimersに表示されず、タスク スケジューラでも同名のタスクを確認できませんでした。
そのため、過去ログにMaintenance Activatorと表示されていたという理由だけで、同名のタスクを無効化すべきとは判断できません。
現在有効なスリープ解除タイマーや対象タスクが確認できた場合にだけ、その設定変更を検討するのが基本です。
過去ログの名前だけを頼りに、複数のタスクやスリープ解除タイマーをまとめて無効にするのは避けます。
Unknownと表示された場合に確認すること
Power-TroubleshooterにUnknownと表示された場合は、そのイベントだけでは具体的な解除元を特定できません。
今回の実機でも、
スリープ状態の解除元: Unknown
という記録がありました。

この場合は、次の3点を追加確認します。
powercfg /lastwake
powercfg /waketimers
powercfg /devicequery wake_armed
それぞれ、直前の解除元、現在有効なスリープ解除タイマー、現在スリープ解除を許可されているデバイスを確認するコマンドです。
具体的なデバイスやスリープ解除タイマーが見つかった場合は、それぞれDeviceまたはTimerの確認へ進みます。
一方、/lastwakeにも手掛かりがなく、/waketimersにも現在有効なスリープ解除タイマーがなく、wake_armedにも該当しそうなデバイスがない場合は、この記事の範囲で原因を特定できないこともあります。
その場合は、Unknownを「Windowsの不具合」「USB機器」「特定のデバイス」などと決めつけません。
次に症状が発生した直後に/lastwakeを確認し、その時点のPower-Troubleshooterも記録しておく方が、原因を切り分けやすくなります。
Unknownでは、原因を特定できないときに無理に設定変更へ進まないことも重要です。
原因が分かったら必要な設定だけ変更して再発を確認する
解除元を確認して原因候補を絞れたら、関係する設定を1つずつ変更します。
マウス、キーボード、LAN、USB、スリープ解除タイマーなどをまとめて無効にすると、症状が止まってもどの変更が効いたのか判断しにくくなります。
設定を変更したあとの基本的な確認手順は次のとおりです。
- 原因候補に関係する設定を1つだけ変更します。
- PCをもう一度スリープさせます。
- 勝手に復帰するか確認します。
- 再発した場合は、できるだけその直後に
powercfg /lastwakeを確認します。 - 必要に応じてPower-Troubleshooterの新しいイベントも確認します。
この流れなら、前回と同じ解除元なのか、それとも別の原因が表示されたのかを比較できます。
基本は、解除元を確認する → 原因候補を絞る → 設定を1つ変更する → 再発するか確認するという流れです。
また、一度スリープさせて勝手に復帰しなかっただけで、「原因はこれだった」と断定しない方がよい場合もあります。
スリープ解除タイマーやスケジュールされた処理のように、特定の条件や時刻でだけ発生するものもあるためです。
しばらく通常どおり使用し、再発した場合はもう一度解除元を確認します。
まとめ
Windows 11のPCがスリープから勝手に復帰するときは、原因候補を最初から決めつけず、実際の解除元を確認してから対処するのがポイントです。
症状が発生した直後なら、まずpowercfg /lastwakeで直前の解除元を確認します。
すでに別のスリープ・復帰を挟んでいる場合や、/lastwakeだけでは分からない場合は、Power-TroubleshooterのイベントID 1で過去の履歴を確認します。
今回の実機では、Power Button、Device、Timer、Unknownの4種類を確認できました。
結果ごとの主な確認先は次のとおりです。
| 解除元 | 主な確認先 |
|---|---|
| Device | powercfg /devicequery wake_armed、デバイス マネージャー |
| Timer | powercfg /waketimers、必要に応じてタスク スケジューラ |
| Unknown | /lastwake、/waketimers、wake_armedを追加確認 |
| Power Button | 手動操作による復帰だったか確認 |
現在wake_armedや/waketimersでスリープ解除を許可されたデバイスや有効なスリープ解除タイマーが確認できなくても、過去にそれらが原因で復帰していなかったとは限りません。
原因候補が絞れたら、関係する設定だけを1つずつ変更し、再びスリープして再発するか確認します。
今回の診断フローをまとめると、次の順番です。
解除元を確認する
→ 必要なら過去の履歴を確認する
→ 表示された解除元に応じて確認先を分ける
→ 関係する設定だけ変更する
→ 再発するか確認する

