ハイパーバイザの存在をWMI経由で検出することができます。それから、VMを検出するのではなく、物理マシンを検出する
select * from Win32_ComputerSystem
、HypervisorPresent
を読んで、trueの場合、それが存在しています。
等価VMICコマンド:
ComputerSystem get HypervisorPresent
これは、VMwareやVirtualBoxのおよびHyper-Vの下で稼動しているシステムのための "真" を与えます。
問題は、Hyper-Vがインストールされているとき、つまり仮想化されたシステムの外部にある物理マシン上で実行されているときに「真」となることです。
だから、私の質問はこれです:
は、システムがHyper-Vのがインストールされていても、実際の物理マシンであるかどうかを検出することが何とか可能ですか?
Hyper-Vサービス/役割がインストールされているかどうかを確認するアイデアはありましたが、Hyper-Vでネスト化された仮想化を実行できるので十分ではありません。