Windowsの力強いセキュリティ機能でVMware上の仮想マシンが起動不能になったので解決した | とらぶろ

とらぶろ

問題ごとが起こるので解決するブログ

もくじ

本文

起こったこと

ある日、いつものようにVMware Workstation 14 Playerを起動し仮想マシンを立ち上げようとしたら、見慣れないダイアログが現れた。

そしてOKボタンを押しても仮想マシンは立ち上がらず、元のようこそ画面へ戻ってしまう。
何回か試しても症状変わらず、VMware Workstation 14 Playerを再起動しても症状変わらず、Windowsを再起動しても症状変わらず。
これは本格的に対策が必要だと考え、色々やってみることにした。

やってみたこと

ダイアログに従う

とりあえず、さっき見たダイアログに書いてあることを改めてじっくりと読んでみる。そして見慣れない文言である『Device/Credential Guard』について調べてみた。

Device Guard
Device Guard は、Windows 10 Enterprise の新しい仮想化ベースのセキュリティを使用して、(後略)
Credential Guard
Windows 10 Enterprise で導入された Credential Guard では、仮想化ベースのセキュリティを使って、(後略)

どうやらこれらは両方ともWindows 10 Enterpriseで新たに導入された「仮想化ベースのセキュリティ」のようだ。きっとこれが、仮想マシンを扱うVMware Workstation 14 Playerと何かしら競合を起こしている、ということなのだろう。
しかしながら、いま問題となっているデバイスのOSは確かにWindows 10ではあるものの、EnterpriseではなくHomeなのである。そして先日まで問題なく仮想マシンは起動できていたのだ。本当にこれが原因なのだろうか、と疑問を抱きながらもダイアログに記載されたリンクを辿り、VMwareのナレッジベース(英語)に従ってみる。
結論から言うと、問題は解決しなかった。

  1. Disable the group policy setting that was used to enable Credential Guard. 
  2. Go to Control Panel > Uninstall a Program > Turn Windows features on or off to turn off Hyper-V
  3. Select Do not restart
  4. Delete the related EFI variables by launching a command prompt on the host machine using an Administrator account and run these commands: 
  5. Restart the host. 
  6. Accept the prompt on the boot screen to disable Device Guard or Credential Guard. 

まず、Windows 10 Homeにはグループポリシーエディタであるgpedit.mscがインストールされていないので上記項目1.が実行できない。次に、Hyper-Vもインストールされておらず、そもそも『Windowsの機能の有効化または無効化』の一覧に項目が表示されないので、上記項目2.および3.も実行できない。
一応、項目4.以降は実行することができた。しかしその後、再び仮想マシンを立ち上げようとしても症状変わらず。
やはりこのナレッジはWindows 10 Enterpriseのものであり、私の症状とは違うものらしい。

最近の出来事を思い出す

そういえば最近、Windows 10の機能アップグレードがあった。その影響で今回の問題が発生したという可能性はある。機能アップグレード後、仮想マシンを立ち上げたことはあっただろうか。
機能アップグレードといえば、Windows Defenderに新機能が追加されていた。そのあたりを少しいじった記憶があるので、今回の件と関係があるかもしれない。
設定を確認すると、実にそれっぽい感じである。

「仮想化ベースのセキュリティ」。先ほど出てきたキーワードと同じだ。
ならばこれをオフにすれば問題は解決するのではないか、と考えたが、どういうわけかオンオフスイッチがグレーアウトされている。「この設定は管理者によって管理されています。」と言われても、このデバイスはドメインに参加しておらず、現在ローカル管理者としてログインしている。他に管理者などいるはずもないのだが、どうにかする方法はパッと見当たらない。
ちなみに「詳細情報」のリンクを辿ると出てくる説明ページ(英語)に大した情報はなかった。さらに余談だが、URL中の/en-us/を/ja-jp/に書き換えると日本語の説明ページを読むことができるものの、情報量は同じだ。当然だが。

どうにかしようとする

上述の設定をオフする方法はないものか、と検索をすると、まさにそのものというQ&Aを発見した。

質問

windows10 1803 メモリ整合性ON→OFF設定変更不可能【Ver1803】

surfacePro3 windows10 1803においてメモリ整合性ONに設定後、IE11の表示が遅くなった。管理者権限を有しているが、メモリ整合性の設定変更(OFF)ができない。なぜなのか教えていただきたい。

ここで教えていただいていた下記の方法を試してみることにする。

方法 : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity の中の Enabled を 0 に変更する 

レジストリの編集なので、Windowsの再起動後でなければ反映されないかと思ったが、試しにWindows Defenderの設定を再確認してみた。

驚いたことに反映されていた。だが有効化するにはやはり再起動が必要とのことなので、Windowsを再起動してまたまた設定確認。

ちゃんとオフになっていた。そしてこの状態でなら、VMware Workstation 14 Playerで仮想マシンが無事に立ち上がることも確認できた。
問題解決。やれやれ。

まとめ

  • Windows Defenderの「デバイス セキュリティ - コア分離 - メモリ整合性」と、VMware Workstation 14 Playerは共存できない
  • Windows Defenderの「デバイス セキュリティ - コア分離 - メモリ整合性」をオンにすると、オフにする為にレジストリの編集が必要である
  • とにかく情報は英語である

おまけ

気軽な気持ちで「メモリ整合性」をオンにするとこうなる。

この時点でもうスイッチがグレーアウトしてしまい、元に戻せない。