2022年末、大学生になるわが子のためにWindows 11 HomeプリインストールPCを新調し、リモートトラブルシューティング環境を含めて、一通りセットアップしました。その際、セキュリティを高めるため「コア分離」の「メモリ整合性」を有効化しようとしたところ、互換性のないドライバが1つもないのにかかわらず、有効化できないという場面に遭遇しました。これは一体、どういうことなのでしょうか?
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
「コア分離(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)。
通常、互換性のないドライバが原因でHVCIを有効にできない場合は、ドライバをアンインストールすることで解決できます。それには、「デバイスマネージャー」(devmgmt.msc)の「表示」メニューから「デバイス(ドライバー別)」を選択して表示を切り替えるなどして、問題のドライバを削除し、互換性のあるより新しいドライバをインストールするか、問題のドライバで動くデバイスの使用を諦めるか、無効のまま使用するかどうかを検討します。
しかし、問題のPCには互換性のないドライバは1つも報告されていません。BIOS(ファームウェア)で仮想化機能は既定で有効になっています。そのことは、念のため再確認しました。また、Windows 11 Homeでハイパーバイザー機能を提供する「仮想マシンプラットフォーム」はインストールされていなかったので(Pro以上のエディションの場合は「Hyper-V」または「仮想マシンプラットフォーム」のいずれか)、これが原因と考えてインストールしましたが、状況は変わりません(画面3)。
なお、Windows 11では、「仮想マシンプラットフォーム」や「Hyper-V」を明示的に有効化しなくても、VBSやHVCIを有効化できるようです。これらの機能は、「Hyper-V」や「Windows Subsystem for Linuxバージョン2(WSL2)」を利用する場合に、インストールすればよいようです。
HVCI関連のレジストリ設定は、以下のキーに存在します。このキーを確認したところ、「DisableAutoenabled=1」の値が存在しました。HVCIが有効になっている別のWindows 11 PCには存在しない値です。
名前からして関係しそうなので、このレジストリを削除し、再起動してみましたが(もちろん、レジストリのエクスポートとシステムのバックアップの作成の後)、それでも状況は変わりませんでした(画面4)。
いろいろと試してみた結果、以下のドキュメントに説明されている2つの値、「Enabled=1」と「WasEnabledBy=1」を「レジストリエディター」で作成し、再起動したところ、HVCIが有効になりました(画面5、画面6)。
再び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.