検索
連載

Windows 11 HomeプリインストールPCでは既定のはずのコア分離で「メモリ整合性」を有効化できないのはなぜか?その知識、ホントに正しい? Windowsにまつわる都市伝説(228)

2022年末、大学生になるわが子のためにWindows 11 HomeプリインストールPCを新調し、リモートトラブルシューティング環境を含めて、一通りセットアップしました。その際、セキュリティを高めるため「コア分離」の「メモリ整合性」を有効化しようとしたところ、互換性のないドライバが1つもないのにかかわらず、有効化できないという場面に遭遇しました。これは一体、どういうことなのでしょうか?

PC用表示 関連情報
Share
Tweet
LINE
Hatena
「Windowsにまつわる都市伝説」のインデックス

Windowsにまつわる都市伝説

システム要件OK、互換性のないドライバなし、なのに有効化できない謎

 「コア分離(Core isolation)」の「メモリ整合性(Memory integrity)」は、「ハイパーバイザーで強制されたコード整合性(Hypervisor-Enforced Code Integrity、HVCI)」や「ハイパーバイザーで保護されたコード整合性(Hypervisor-Protected Code Integrity、HVCI)」としても知られる(HVCIには他にもバリエーションがあります)、「Windows 10」以降が備える高度なセキュリティ機能です。

 名前が示すように、この機能は「仮想化ベースのセキュリティ(Virtualization-Based Security、VBS)」と呼ばれるハイパーバイザーの分離環境で機能し、互換性を確認できているドライバのみの実行を許可することで、悪意のあるコードが侵入して実行されてしまうことを防止するのに役立ちます。

 以下のMicrosoftのドキュメントに説明されているように、多くの場合、「Windows 11」では既定でこの機能が有効になっており、Windows 10では有効化することが推奨されています。ただし、パフォーマンスに影響する場合があるので、ハードウェアスペックの低いPCでは無効にすることで、セキュリティは弱まりますが、パフォーマンスの改善が期待できます。

 新たに購入したWindows 11 HomeプリインストールPCで「Windowsセキュリティ」アプリを開き、「デバイスセキュリティ」で既定の設定状態を確認してみると、メモリ整合性が無効になっていました。有効にしようとしましたが、「互換性のないドライバーを解決してから、もう一度スキャンしてください」と表示されました(画面1)。そして、互換性のないドライバを確認すると、そこには何もありませんでした(画面2)。

画面1
画面1 メモリ整合性を有効化できない
画面2
画面2 互換性のないドライバは1つもなかった

 通常、互換性のないドライバが原因でHVCIを有効にできない場合は、ドライバをアンインストールすることで解決できます。それには、「デバイスマネージャー」(devmgmt.msc)の「表示」メニューから「デバイス(ドライバー別)」を選択して表示を切り替えるなどして、問題のドライバを削除し、互換性のあるより新しいドライバをインストールするか、問題のドライバで動くデバイスの使用を諦めるか、無効のまま使用するかどうかを検討します。

 しかし、問題のPCには互換性のないドライバは1つも報告されていません。BIOS(ファームウェア)で仮想化機能は既定で有効になっています。そのことは、念のため再確認しました。また、Windows 11 Homeでハイパーバイザー機能を提供する「仮想マシンプラットフォーム」はインストールされていなかったので(Pro以上のエディションの場合は「Hyper-V」または「仮想マシンプラットフォーム」のいずれか)、これが原因と考えてインストールしましたが、状況は変わりません(画面3)。

画面3
画面3 「仮想化プラットフォーム」の機能を有効にしても、メモリ整合性を有効にできない状況は変わらない(注:Windows 11ではHVCIのために、この機能やHyper-Vを明示的に有効にする必要はありません)

 なお、Windows 11では、「仮想マシンプラットフォーム」や「Hyper-V」を明示的に有効化しなくても、VBSやHVCIを有効化できるようです。これらの機能は、「Hyper-V」や「Windows Subsystem for Linuxバージョン2(WSL2)」を利用する場合に、インストールすればよいようです。

怪しいレジストリの存在

 HVCI関連のレジストリ設定は、以下のキーに存在します。このキーを確認したところ、「DisableAutoenabled=1」の値が存在しました。HVCIが有効になっている別のWindows 11 PCには存在しない値です。

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity

 名前からして関係しそうなので、このレジストリを削除し、再起動してみましたが(もちろん、レジストリのエクスポートとシステムのバックアップの作成の後)、それでも状況は変わりませんでした(画面4)。

画面4
画面4 コア分離が有効な別のPCには存在しない「DisableAutoenabled」値を削除してみたものの、状況は変わらず

 いろいろと試してみた結果、以下のドキュメントに説明されている2つの値、「Enabled=1」と「WasEnabledBy=1」を「レジストリエディター」で作成し、再起動したところ、HVCIが有効になりました(画面5画面6)。

画面5
画面5 「Enabled=1」と「WasEnabledBy=1」の2つの値を手動で作成し、PCを再起動すると……
画面6
画面6 メモリ整合性(HVCI)が有効になった

 再びHVCIを無効にして再起動し、もう一度有効にしようとすると、また最初の状況が繰り返されます。しかも、レジストリ値「BlockAutoenablement=1」の有無は関係ないようです。

 さらに、仮想マシン環境にWindows 11をインストールして、「BlockAutoenablement=1」を作成してみましたが、HVCIの有効化がブロックされることはありませんでした。

 多くの謎が残ったままですが、HVCIを有効にして、しばらく様子を見てもこれといって問題は生じていないので、この設定で使用させようと思います。万が一、何かあれば、無効にすればよいだけの話ですし、いろいろと試す前に取得したフルバックアップ(システムイメージ)もあります。

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP 2008 to 2023(Cloud and Datacenter Management)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る