Surface Pro 3 に Visual Studio をインストールするとスリープメニューが消える場合がある
表題のとおりです。
Surface Pro 3 に Visual Studio をインストールする場合、セットアップ内容によっては 電源のメニューから「スリープ」が消えてしまう場合があります。なぜこのケースで出ているかというと、Connected Stanby 改め InstantGo (変更) と Hyper-V の組み合わせがあるからです。
コマンドプロンプで
Powercfg /a
と打つと、今のスタンバイモードの対応や対応するスリープモードを確認することができます。
前提と状況
- Surface Pro 3 は Windows 8 の小電力技術
Connected StanbyInstantGo に対応しています。 - (確か)ドライバーもこれ用に対応したものが使われていたかと思います。
- スリープ等のメニューもここに紐づいています。
ここに、Visual Studio を入れた場合、問題が起きる場合があります。それが Hype-V です。
- Visual Studio をインストールする
- Windows Phone のエミュレーターなど Hyper-V を使うものが、Hyper-VをONにする
- Hyper-V 自体のドライバ類は InstantGo に対応していない。追記
- PC全体としてInstantGoが使えなくなる。追記
(例えば)ネットワークであればホストOSとHyper-Vの環境で共有するために)仮想ネットワークドライバーがインストールされ実際のネットワーク アダプタとブリッジ接続を作る形になる。Connected Stanby InstantGo 用のアダプタが直接作用しなり、Connected Stanby InstantGo が使えなくなる変更- 結果として、サスペンドが消える
そんな流れです。ということで、根本の直接部分はわかりませんが、対応策としては Hyper-V を Off にすること。使うときにONにするしかないですね。
対処方法
コマンドプロンプトを管理者モードで起動して、以下のコマンドで Hyper-V をOFf にすることができます。
bcdedit /set hypervisorlaunchtype off
もし、HyperーV を使う必要があるときは、以下のコマンドで起動します。
bcdedit /set hypervisorlaunchtype auto
この辺はもう少し対応してほしいところですね。
以下追記
とくに、Windows Phone の開発をされる方は、こういう、バッチを作っておくと便利かも。
開発開始用:Hyper-V をONにして再起動
bcdedit /set hypervisorlaunchtype auto
shutdown /f /r /t 0
開発完了後:Hyper-V をOFFにして再起動
bcdedit /set hypervisorlaunchtype off
shutdown /f /r /t 0
以下追記2
とくに、バッチだと管理が面倒なので、起動時にHyper-V をON/OFF で起動するメニューを作りました。
コマンドプロンプトを管理者モードで起動します。
対処方法2:Hyper-Vの起動を制御する、起動メニューを作る
bcdedit Enter
と打つと現状の設定が表示されます。一番下にある hypervisorlaunchtype がHyper-Vの起動時のON/OFFの設定です。
いまはONになってしまっているので、このhypervisorlaunchtype を Off にしておきましょう。
bcdedit /set {current} hypervisorlaunchtype off
これで通常起動は Hyper-VがOffで起動するようになりました。
今度は、Hyper-V が ON になる起動メニューを作ります。まずこの設定をコピーして新しいメニューを作ります。
bcdedit /copy {current} /d “メニューの名前”
コピーされたこのIDが次に必要ですので、コマンドプロンプト右クリックで「範囲指定」を選んで、{・・・} を選んで、最後にEnterを押します。
続けてコピーした設定のHyper-V をONにします。先ほどと同じですが、ON ではなくauto です。そして {current} ではなく上記のIDを使います。
bcdedit /set {・・・} hypervisorlaunchtype auto
bcdedit Enter で確認します。
これで起動メニューができました。
ただしこの選択肢が長いのももったいないので、選択する時間は3秒にします。
bcdedit /timeout 3
これで、起動時に hyper-V のON/OFF設定を選べます。Windows Phone の開発をするときには、いったん再起動して、with Hyper-V で起動するとよいでしょう。