Windowsパソコンが設定時間通りにスリープに入らなかったり、 スリープにしておいたはずのパソコンがいつの間にかまた立ち上がってたり することがある時に調べる方法について。
今回使ってるのはWindows7です。
スリープに入らない原因を調べる
一定時間後にスリープに入る設定をしているにも関わらず スリープに入らないのは何らかのプロセスが動いていて邪魔してる事があります。
それを調べるにはpowercfg
というコマンドが使えます。
まず、コマンドプロンプトを管理者権限で立ち上げます。
管理者権限で立ち上げるには、コマンドプロンプトを右クリックして
管理者として実行をクリックするか、
スタートメニューにcmd
と入力し、Ctrl-Shift-Enter
を押して立ち上げます。
立ち上げたら
C:\Users\user> powercfg -energy
というコマンドを実行します。
powercfg
コマンドに-energy
オプションを付けると
電源周りのチェックを行ってHTMLで結果を出力してくれます。
C:\Users\user> powercfg -energy
トレースを60秒間有効にしています...
システムの動作を監視しています...
トレースデータを分析しています...
分析が完了しました。
エネルギー効率の問題が見つかりました。
11 個のエラー
22 個の警告
18 個の情報
詳細については、C:\Users\user\energy-report.html を参照してください。
と言った感じにC:\Users\user\energy-report.html にレポートのHTMLが出力されます。(現在居るフォルダの中に出力)
出力先を変更したい場合は-output
オプションを使って
C:\Users\user> powercfg -energy -output report.html
のようにします。
今回見つかったのは
USB 中断:USB デバイスは中断していません
USB デバイスは中断状態になりませんでした。USB デバイスが使用されていないときに中断状態にならない場合、プロセッサの電源管理が行われないことがあります。
デバイス名 N-trig DuoSense Composite Root interface
ホスト コントローラー ID PCI\VEN_8086&DEV_2935
ホスト コントローラーの場所 PCI bus 0, device 29, function 1
デバイス ID USB\VID_1B96&PID_0001
ポート パス 2
な感じのUSBデバイス。
取り敢えず繋いであるUSBデバイスを外してみたらこれも消えて スリープにもきちんと時間通り入る様になりました。
他にもバックグラウンドで動いているプロセス等が原因となってる場合もあるので その場合は適時プロセスを止めるなり対処します。
スリープから勝手に復帰する原因を調べる
Windowsではシステムイベントのログをコンピューターの管理から見ることが出来ます。
コンピューターを右クリック 管理をクリックして コンピューターの管理を立ち上げる 左の枠からイベントビューアーWindowsログ システム を選択。
日付と時刻を見ると、時間が大きく開いた箇所があるので、 それを目安にスリープ復帰時のイベントを探すことが出来ます。
そこで明らかに何らかの意味あるものが探せればよいのですが、
大概Kernel-General
がソースで特に何も情報が得られないことが殆どです。
そこで、もっと情報を得るには再びpowercfg
コマンドを使います。
powercfg
に-lastwake
オプションを与えると
今回スリープから復帰した時に何が原因か調べることが出来ます。
上と同様に管理者でコマンドプロンプトを立ち上げて
C:\Users\user> powercfg -lastwake
Wake History Count - 1
Wake History [0]
Wake Source Count - 1
Wake Source [0]
Type: Wake Timer
Owner: [SERVICE] \Device\HarddiskVolume3\Program Files\TeamViewer\TeamViewer_Service.exe (TeamViewer)
Owner Supplied Reason: generic
こんな感じでWake Source
を得られます。
今回は見ての通りTeamViewer が問題です。
確かに他の端末から繋げられるよう、TeamViewerのサービスを動かしては居ますが、 特に繋げるでもないのに勝手に復帰してしまいます。
TeamViewerにはWake-On-Lanの機能がありますが、 この端末では無効にしてあります。
以前からTeamViewerは動いていたのに 突然誤動作し始めた感じなので何かのアップデートでおかしくなったのか 他の何かとの関係なのか良くわからないのですが、 今回はこの端末にTeamViewerで繋ぐことはもう殆ど無いので 単にTeamViewerのサービスを止めることにしました。
取り敢えずスリープから勝手に復帰することはなくなりました。