ゴマちゃんフロンティア

アザラシが大好きなエンジニアの開発日記です

【Windows10】電源オプションが正常に表示されない現象と格闘した件について

time 2016/11/19

というわけで、今回は自分のPCでちょっとしたトラブルがあったので、そのお話になります。
いつの間にか電源オプションの項目が正常に表示されなくなり、電源プランの変更や作成も「お使いの電源プランの情報が利用できません」と言われてしまいます。

shot2ss20161119215938247

shot2ss20161119215958327

shot2ss20161119220006969

結論から言うと、レジストリの値がおかしかったのが原因だったようです。
powrprof.dllというファイルを見に行っているようですが、そのファイルパスが変になっていました。

以下、自分が試したことを書いていきます!
参考になれば幸いです。

レジストリを変更した場合、最悪OSが起動できなくなってしまいます。
一切の責任は負いかねますので、変更する際は自己責任で!

試したこと

電源プランの設定を初期化

ぐぐるとよく出るのは、コマンドプロンプトから電源プランの設定を初期化する方法。
以下のコマンドでいけるみたいです。

powercfg -restoredefaultschemes

自分の場合はこれでは解決しませんでした。
powercfg /lで電源プランの一覧を表示すると、下のように普通に表示されるので、完全に逝っているわけではなさそうでした。

既存の電源設定 (* アクティブ)
-----------------------------------
電源設定の GUID: 381b4222-f694-41f0-9685-ff5bb260df2e   *
電源設定の GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
電源設定の GUID: a1841308-3541-4fab-bc81-f71556f20b4a

「Power」サービスの確認

お次はサービス「Power」の確認。
これが無効になっていたりすると表示されないみたいです。

・・・が、

shot2ss20161119224820063

元気に (?) 動いておりました!
ぐぐった感じでは、電源プランのメッセージ「RCPサーバーを利用できません」といった旨が表示されている場合はこの可能性が高いかもです。

レジストリ修正

以下のサイトで (Windows7ですが) 似たような事例が紹介されておりました。

http://jutememo.blogspot.jp/2013/01/windows-7-cpu.html

ということでレジストリを疑ってみることに。
弄る前に復元ポイントは必ず作成しておきましょう。

自分の場合、以下のレジストリ直下のキーに原因がありました。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes

ここに2つの値が保存されており、powrprof.dllへのファイルパスが登録されているわけですが・・・

shot2ss20161119225936089

空白部分は自分のユーザ名なので消してありますが、Users\Music\Windows~というなかなかぶっ飛んだパスになっておりました。
これを現在powrprof.dllがあるパスに修正したところ、上手く表示されるようになりました!
カスタムプランも問題なく作れます。

shot2ss20161119231901938

思えば Windows7→10 にアップグレードしたとき、幾つかのプログラムが「Music」フォルダ直下に移動したという珍現象が起きましたが、それの影響なのかもしれません。
また、プラン作成時に「指定されたファイルが見つかりません」と言われたので、それも怪しかったです。
何故アップグレード時に Music に移動したのかは永遠の謎ですが・・・。

しかしこれで終わりではなく、この記事を書いている過程で上で紹介した「電源プランの初期化」コマンドを実行したところ、また Music 下を参照するようになってしまいました。
どうやらデフォルト設定のキーも逝っているため、初期化では解決しなかったようです。
ということで、以下のレジストリ直下のキーも修正しました。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\User\Default\PowerSchemes

まとめ

そんなわけで、電源オプションが表示されない現象を頑張って調べてみました。
元々は高速スタートアップを無効化しようと始めた作業ですが、レジストリまで弄る厄介な作業になってしまいました。
ともかく正常に直ってよかったです。

重ねてになりますが、壊れても責任は負いかねますので、試す場合は自己責任でお願いします!

コメント

  • SurfacePro3を使用しており、Windows8.1からWindows10にアップグレードをしたところ、スリープモードへの移行ができなくなってしまい困っております。

    上記の記事を参考にさせていただき改善を試みようと考えております。
    記載されておられる「現在powrprof.dllがあるパスに修正したところ上手く表示されるようになりました!」との内容ですが、私のPCではPowerSchemesの一階層下のフォルダのDescriptionのデータの中身が下記となります。

    @%SystemRoot%\system32\powrprof.dll,-14,Automatically balances performance with energy consumption on capable hardware.

    このファイルパスが正しいものかの判断がつきません。
    変更箇所がお分かりであれば、お力添えいただけると幸いです。

    MYB  2020年3月22日 12:12 AM

    • MYBさん

      私のマシンのレジストリを確認したところ、記載いただいたものと同様の文字列が設定されていました。
      Surfaceを使ったことがないので何とも言えませんが、「C:\Windows\System32」の下にpowrprof.dllがあれば、パス自体は問題ないように思えます。

      それ以外で本記事の「試したこと」を行っても改善しない場合、私もちょっと分からないです…。
      お力添えできず申し訳ありません。

      riberunn  2020年3月22日 11:56 AM

  • riberunnさん

    ご返信有難うございました。
    再度確認いたしましたが、「C:\Windows\System32」の下にpowrprof.dllが間違いなく存在しておりましたのでパスは問題ないですね。

    もしお分かりであればですが、下記はどこに問題があるかと思われますか?

    コマンドプロンプトで下記①コマンドを試した際②の結果となります。

    ①powercfg/availablesleepstates

    ②操作を実行できません。予期しないエラー (0x2) が発生しました: 指定されたファイルが見つかりません。

    MYB  2020年3月23日 6:44 PM

    • MYBさん

      「電源プランの設定を初期化」のコマンドを実行しても同様のエラーが発生するでしょうか?
      恐らくレジストリに起因する問題かと思うので、素直にWindowsをクリーンインストールし直したほうが早いかもしれません。

      riberunn  2020年3月24日 1:00 AM

down

コメントする