世の中の人みな困ってるみたいね。
それなので、大体の方法は載っているんだけど。
世の中に載ってる以外の原因もあったので忘備録。
コマンドプロンプト以外は、タスクバーのWindowsアイコン右クリックからの流れ。
スリープ解除している原因を探る
- イベントビューアー
- Windowsのログ
- システム
- ソースが Power-Troubleshooter のイベント
ここにいつだれが解除したのかが記録されている。
数分でスリープ解除
イベントログみて、スリープ後数分でスリープ解除している原因はネットワークアダプターだった。
- デバイスマネージャー
- ネットワークアダプター
- (自分が使ってるネットワークアダプターの名前)
- 電源の管理タブ
- このデバイスで、コンピュータのスタンバイ状態を解除できるようにする(O)
夜中に突然スリープ解除
夜中の寝静まる時間帯に勝手にスリープ解除するのは俗にいうWindowsUpdateが原因。
- コントロールパネル
- セキュリティとメンテナンス
- メンテナンス(M)スライドダウン
- 自動メンテナンスのメンテナンス設定変更
- スケジュールされたメンテナンスによるコンピューターのスリープ解除を許可する
#ウィルス対策ソフトがウィルス??
それでも忘れた頃の夜中にスリープ解除してしまう。
イベントログには、スリープ状態の解除元が不明となっている。
つまりはOSの何かではないってこと??
コマンドプロンプトで powercfg -waketimers
を実行すると、アクティブなスリープ解除タイマーを列挙してくれるらしい。(要管理者権限)
powercfg -waketimers
[SERVICE] \Device\HarddiskVolume2\Windows\System32\svchost.exe (SystemEventsBroker) によって設定されたタイマーは 5:56:40 (2016/11/27) で有効期限が切れます。
理由: Windows は、スリープ状態の解除を要求したスケジュールされたタスク 'Maintenance Activator' を実行します。
おや?悪さをしている誰かがいるね。
名前からアップデートとか実行してそう。
でもWindowsUpdateの設定は確認済みだし・・・
いましたよ。
タスクスケジューラーのMcAfee項目にある、「McAfee Auto Maintenance Task Agent」の条件に
「タスクを実行するためにスリープを解除する」のチェックボックスが有効に!!
こいつを無効にしてからのコマンド結果が変わった!
- コンピュータの管理
- システムツール
- タスクスケジューラ
- McAfee
- McAfee Auto Maintenance Task Agent のプロパティ
- 条件タブ
- [ ]タスクを実行するためにスリープを解除する
再度コマンド実行で確認。
C:\WINDOWS\system32>powercfg -waketimers
システムにアクティブなスリープ解除タイマーがありません。
お!
これでしばらく様子見。
でもこれって、スリープしてる時間ばかりだからウィルスチェックがされないのか?
しかし、McAfeeが原因だったとは・・・
でもWindows10にアップデートするまでは発生しなかった問題なんだよな~。
やっぱりWindows10がダメなのかしら??
でもWindowsでしか対応していないゲーム動かしたいし・・・
かといって、古いバージョンのWindowsを使い続けるわけにもいかないし・・・
困ったもんだ。
2017-11-16 追記
これらの設定が反映されていてもスリープ解除してしまう現象が発生していた。
ご丁寧に再起動までしてるくそっぷり。
Windows Updateがご丁寧にどやってきたので、犯人は特定できていた。
上記に記載されていた設定が戻されていた。
それとタスクスケジューラーにも新たな項目を見つけたので、そいつの設定も変更。
- タスクスケジューラー
- Microsoft
- Windows
- UpdateOrchestrator
- Rebootのプロパティ
- []タスクを実行するためにスリープを解除する
どれも定期的に設定が戻されてしまうので、時々確認するしかない。