[Windows] スリープ関連ツールが使えない場合の解決方法 – Win32_Processorが使えなくなったのを修復する

Windows10においてスリープをコントロールするツールが使えなくなって久しく,実害が生じてきたので本気で解決策を調べた

Windowsのスリープ問題 (Sleeping Issue)は,スリープ機能が付加されてから,多数のユーザーから問題視されてきた.僕もその一人.その解決策として多数のツールがネットに挙げられている.

感謝すべきは,僕の望む機能を持つツールである,SleepTool612(TM) やSupcon(TM)の2つである.この両方ともWindows10をインストールしたころから正常に動かなくなった.SleepToolのCPU使用率やネットワーク量など,すべてのモニタリング値がZero (0)になったままだった.

PCのデータを内蔵のHDDやローカルネットワーク上のNASなどにバックアップしている際に,バックアップが完了する前にPCがスリープしてしまう問題が看過できなくなったというか許せなくなった.スリープ機能を外すことは,僕の省エネ理念から反するので省エネの利を取っていたのでした.

新たなツールを探す

今回,これらツールがWindows10に対応していないと思っていたため,最近,最も新しいレビュー(Review)からツールを探そうとしたが,SleepToolやSupconに勝るツールは,今現在も外国には存在しないようだ.

9 best tools to prevent your PC from sleeping or locking


https://windowsreport.com/prevent-computer-from-sleeping-locking/

VBS (Visual Basic Script)でもいいからツールを作るか

そこで,自分でツールを作ろうとい一念発起しネット情報をあさり始めた.開発環境のVisual Studioをインストール,CPU情報をとるにはWMI Win32_ProcessorなるAPIを使用することも分かった.調べてくいくと”WMI Win32_Processorが使えない 2016-0418″を発見した.サイトの筆者によれば,問題が発生したのは,Windows7からWondows10にアップデートしてらかのようで,僕と一緒のようだ.WMI Win32_Processorの代替APIを使用した対応策の記載があったが,自己PCには有効ではなかった.

解決策を見つけた

自前ツールを作成と意気込んでいたものの,対策に行き詰っていると,英語圏のサイトに”win32_processor.LoadPercentage null ?”という質問が上がっていた.

PowerShellにて以下を実行.そのリターンが本来は,CPU使用率であるはずが,名も煮返されない(NULL)とのこと.

get-wmiobject win32_processor | select LoadPercentage

対策は,以下の通りシンプルのものだった.

回答はシンプルでした.

PowerShellにて以下の2行を実行.

lodctr /S:[backup filename] ← レジストリのバックアップをしておく
lodctr /R ← パフォーマンスカウンタの再構築

その結果,SleepToolのモニタリング値は,すべてあるべき観測される数値を示すように改善された.

完結.ツール作者の皆様,今後も使わせていただきます.ありがとございます.

編集履歴
2019/07/06 はりきり(Mr)
2019/09/13 追記・文言整備 (表題をわかりやすく)